初始化提交
This commit is contained in:
317
config.example.toml
Normal file
317
config.example.toml
Normal file
@@ -0,0 +1,317 @@
|
||||
[app]
|
||||
video_source = "pexels" # "pexels" or "pixabay"
|
||||
|
||||
# 是否隐藏配置面板
|
||||
hide_config = false
|
||||
|
||||
# Azure TTS V1(edge_tts) 单次流式请求超时时间,单位秒。
|
||||
# 网络异常、服务端限流或 voice 与文本语言不匹配时,edge_tts 可能长期卡住。
|
||||
# 默认 30 秒可避免 WebUI 任务无反馈;慢网络或代理环境可适当调大。
|
||||
# 设置为 0 表示禁用超时。
|
||||
edge_tts_timeout = 30
|
||||
|
||||
# 是否校验外部 API 和素材下载的 TLS 证书。
|
||||
# 默认必须开启,避免 Pexels/Pixabay API key 和下载素材被中间人攻击篡改。
|
||||
# 只有在企业代理或自签证书环境明确需要时,才临时改为 false。
|
||||
tls_verify = true
|
||||
|
||||
# Pexels API Key
|
||||
# Register at https://www.pexels.com/api/ to get your API key.
|
||||
# You can use multiple keys to avoid rate limits.
|
||||
# For example: pexels_api_keys = ["123adsf4567adf89","abd1321cd13efgfdfhi"]
|
||||
# 特别注意格式,Key 用英文双引号括起来,多个Key用逗号隔开
|
||||
pexels_api_keys = []
|
||||
|
||||
# Pixabay API Key
|
||||
# Register at https://pixabay.com/api/docs/ to get your API key.
|
||||
# You can use multiple keys to avoid rate limits.
|
||||
# For example: pixabay_api_keys = ["123adsf4567adf89","abd1321cd13efgfdfhi"]
|
||||
# 特别注意格式,Key 用英文双引号括起来,多个Key用逗号隔开
|
||||
pixabay_api_keys = []
|
||||
|
||||
# 支持的提供商 (Supported providers):
|
||||
# openai
|
||||
# moonshot (月之暗面)
|
||||
# azure
|
||||
# qwen (通义千问)
|
||||
# deepseek
|
||||
# gemini
|
||||
# ollama
|
||||
# g4f (disabled by default; set enable_g4f=true only after accepting its risks)
|
||||
# oneapi
|
||||
# cloudflare
|
||||
# minimax
|
||||
# mimo (Xiaomi MiMo)
|
||||
# ernie (文心一言)
|
||||
# modelscope (魔搭社区)
|
||||
# litellm (100+ providers via LiteLLM gateway)
|
||||
llm_provider = "openai"
|
||||
|
||||
########## Pollinations AI Settings
|
||||
# Visit https://pollinations.ai/ to learn more
|
||||
# API Key is optional - leave empty for public access
|
||||
pollinations_api_key = ""
|
||||
# Default base URL for Pollinations API
|
||||
pollinations_base_url = "https://pollinations.ai/api/v1"
|
||||
# Default model for text generation
|
||||
pollinations_model_name = "openai-fast"
|
||||
|
||||
########## Ollama Settings
|
||||
# No need to set it unless you want to use your own proxy
|
||||
ollama_base_url = ""
|
||||
# Check your available models at https://ollama.com/library
|
||||
ollama_model_name = ""
|
||||
|
||||
########## OpenAI API Key
|
||||
# Get your API key at https://platform.openai.com/api-keys
|
||||
# 也可以填写兼容 OpenAI Chat Completions 协议的供应商密钥,
|
||||
# 例如 OpenRouter 这类提供自定义 base_url 的平台。
|
||||
openai_api_key = ""
|
||||
# No need to set it unless you want to use your own proxy
|
||||
# 如果使用兼容 OpenAI 接口的平台,请在这里填写对应的 base_url。
|
||||
openai_base_url = ""
|
||||
# Check your available models at https://platform.openai.com/account/limits
|
||||
# 如果使用兼容供应商,请填写该平台要求的模型 ID。
|
||||
openai_model_name = "gpt-4o-mini"
|
||||
|
||||
########## Moonshot API Key
|
||||
# Visit https://platform.moonshot.cn/console/api-keys to get your API key.
|
||||
moonshot_api_key = ""
|
||||
moonshot_base_url = "https://api.moonshot.cn/v1"
|
||||
moonshot_model_name = "moonshot-v1-8k"
|
||||
|
||||
########## OneAPI API Key
|
||||
# Visit https://github.com/songquanpeng/one-api to get your API key
|
||||
oneapi_api_key = ""
|
||||
oneapi_base_url = ""
|
||||
oneapi_model_name = ""
|
||||
|
||||
########## G4F
|
||||
# g4f relies on reverse-engineered third-party endpoints and is not recommended
|
||||
# for production. Prefer official APIs, OpenAI-compatible providers, LiteLLM,
|
||||
# Ollama, or local inference.
|
||||
# If you still need it, install the optional dependency with:
|
||||
# uv sync --extra g4f
|
||||
enable_g4f = false
|
||||
# Visit https://github.com/xtekky/gpt4free to get more details
|
||||
# Supported model list: https://github.com/xtekky/gpt4free/blob/main/g4f/models.py
|
||||
g4f_model_name = "gpt-3.5-turbo"
|
||||
|
||||
########## Azure API Key
|
||||
# Visit https://learn.microsoft.com/zh-cn/azure/ai-services/openai/ to get more details
|
||||
# API documentation: https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference
|
||||
azure_api_key = ""
|
||||
azure_base_url = ""
|
||||
azure_model_name = "gpt-35-turbo" # replace with your model deployment name
|
||||
azure_api_version = "2024-02-15-preview"
|
||||
|
||||
########## Gemini API Key
|
||||
gemini_api_key = ""
|
||||
gemini_model_name = "gemini-2.5-flash"
|
||||
|
||||
########## Grok API Key
|
||||
grok_api_key = ""
|
||||
grok_model_name = "grok-4.3"
|
||||
grok_base_url = "https://api.x.ai/v1"
|
||||
|
||||
########## Qwen API Key
|
||||
# Visit https://dashscope.console.aliyun.com/apiKey to get your API key
|
||||
# Visit below links to get more details
|
||||
# https://tongyi.aliyun.com/qianwen/
|
||||
# https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction
|
||||
qwen_api_key = ""
|
||||
qwen_model_name = "qwen-max"
|
||||
|
||||
|
||||
########## MiniMax API Key
|
||||
# Visit https://platform.minimax.io to get your API key
|
||||
# MiniMax API is OpenAI-compatible
|
||||
# Available models: MiniMax-M2.7 (default), MiniMax-M2.7-highspeed
|
||||
minimax_api_key = ""
|
||||
minimax_base_url = "https://api.minimax.io/v1"
|
||||
minimax_model_name = "MiniMax-M2.7"
|
||||
|
||||
########## Xiaomi MiMo API Key
|
||||
# Xiaomi MiMo API is OpenAI-compatible.
|
||||
# Visit https://platform.xiaomimimo.com/docs/zh-CN/quick-start/first-api-call to get more details.
|
||||
mimo_api_key = ""
|
||||
mimo_base_url = "https://api.xiaomimimo.com/v1"
|
||||
mimo_model_name = "mimo-v2.5-pro"
|
||||
# Xiaomi MiMo TTS uses the same API key and base_url as MiMo LLM.
|
||||
mimo_tts_model_name = "mimo-v2.5-tts"
|
||||
# Optional natural language style prompt for MiMo TTS.
|
||||
mimo_tts_style_prompt = "请用自然、清晰、适合短视频旁白的语气朗读。"
|
||||
|
||||
########## DeepSeek API Key
|
||||
# Visit https://platform.deepseek.com/api_keys to get your API key
|
||||
deepseek_api_key = ""
|
||||
deepseek_base_url = "https://api.deepseek.com"
|
||||
deepseek_model_name = "deepseek-chat"
|
||||
|
||||
|
||||
########## ModelScope API Key
|
||||
# Visit https://modelscope.cn/docs/model-service/API-Inference/intro to get your API key
|
||||
# And note that you need to bind your Alibaba Cloud account before using the API.
|
||||
modelscope_api_key = ""
|
||||
modelscope_base_url = "https://api-inference.modelscope.cn/v1/"
|
||||
modelscope_model_name = "Qwen/Qwen3-32B"
|
||||
|
||||
########## LiteLLM (AI Gateway — 100+ providers)
|
||||
# LiteLLM routes to any LLM provider via a unified interface.
|
||||
# Use this for providers not directly supported above: Anthropic (native API),
|
||||
# AWS Bedrock, Google Vertex AI, Cohere, Mistral, Together AI, etc.
|
||||
# Visit https://docs.litellm.ai/docs/providers for the full list.
|
||||
#
|
||||
# LiteLLM reads provider API keys from environment variables automatically:
|
||||
# OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, AWS_ACCESS_KEY_ID, etc.
|
||||
# Set the appropriate env var for your chosen provider before running.
|
||||
#
|
||||
# Model name in LiteLLM format: "provider/model-name"
|
||||
# Examples: "openai/gpt-4o", "anthropic/claude-sonnet-4-20250514",
|
||||
# "bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0",
|
||||
# "gemini/gemini-2.5-flash", "ollama/llama3"
|
||||
litellm_model_name = "openai/gpt-4o-mini"
|
||||
|
||||
# Subtitle Provider, "edge" or "whisper"
|
||||
# If empty, the subtitle will not be generated
|
||||
subtitle_provider = "edge"
|
||||
|
||||
#
|
||||
# ImageMagick
|
||||
#
|
||||
# Once you have installed it, ImageMagick will be automatically detected, except on Windows!
|
||||
# On Windows, for example "C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI\magick.exe"
|
||||
# Download from https://imagemagick.org/archive/binaries/ImageMagick-7.1.1-29-Q16-x64-static.exe
|
||||
|
||||
# imagemagick_path = "C:\\Program Files (x86)\\ImageMagick-7.1.1-Q16\\magick.exe"
|
||||
|
||||
|
||||
#
|
||||
# FFMPEG
|
||||
#
|
||||
# 通常情况下,ffmpeg 会被自动下载,并且会被自动检测到。
|
||||
# 但是如果你的环境有问题,无法自动下载,可能会遇到如下错误:
|
||||
# RuntimeError: No ffmpeg exe could be found.
|
||||
# Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
|
||||
# 此时你可以手动下载 ffmpeg 并设置 ffmpeg_path,下载地址:https://www.gyan.dev/ffmpeg/builds/
|
||||
|
||||
# Under normal circumstances, ffmpeg is downloaded automatically and detected automatically.
|
||||
# However, if there is an issue with your environment that prevents automatic downloading, you might encounter the following error:
|
||||
# RuntimeError: No ffmpeg exe could be found.
|
||||
# Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
|
||||
# In such cases, you can manually download ffmpeg and set the ffmpeg_path, download link: https://www.gyan.dev/ffmpeg/builds/
|
||||
|
||||
# ffmpeg_path = "C:\\Users\\harry\\Downloads\\ffmpeg.exe"
|
||||
#########################################################################################
|
||||
|
||||
# 当视频生成成功后,API服务提供的视频下载接入点,默认为当前服务的地址和监听端口
|
||||
# 比如 http://127.0.0.1:8080/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4
|
||||
# 如果你需要使用域名对外提供服务(一般会用nginx做代理),则可以设置为你的域名
|
||||
# 比如 https://xxxx.com/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4
|
||||
# endpoint="https://xxxx.com"
|
||||
|
||||
# When the video is successfully generated, the API service provides a download endpoint for the video, defaulting to the service's current address and listening port.
|
||||
# For example, http://127.0.0.1:8080/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4
|
||||
# If you need to provide the service externally using a domain name (usually done with nginx as a proxy), you can set it to your domain name.
|
||||
# For example, https://xxxx.com/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4
|
||||
# endpoint="https://xxxx.com"
|
||||
endpoint = ""
|
||||
|
||||
|
||||
# Video material storage location
|
||||
# material_directory = "" # Indicates that video materials will be downloaded to the default folder, the default folder is ./storage/cache_videos under the current project
|
||||
# material_directory = "/user/harry/videos" # Indicates that video materials will be downloaded to a specified folder
|
||||
# material_directory = "task" # Indicates that video materials will be downloaded to the current task's folder, this method does not allow sharing of already downloaded video materials
|
||||
|
||||
# 视频素材存放位置
|
||||
# material_directory = "" #表示将视频素材下载到默认的文件夹,默认文件夹为当前项目下的 ./storage/cache_videos
|
||||
# material_directory = "/user/harry/videos" #表示将视频素材下载到指定的文件夹中
|
||||
# material_directory = "task" #表示将视频素材下载到当前任务的文件夹中,这种方式无法共享已经下载的视频素材
|
||||
|
||||
material_directory = ""
|
||||
|
||||
# Used for state management of the task
|
||||
enable_redis = false
|
||||
redis_host = "localhost"
|
||||
redis_port = 6379
|
||||
redis_db = 0
|
||||
redis_password = ""
|
||||
|
||||
# 文生视频时的最大并发任务数
|
||||
max_concurrent_tasks = 5
|
||||
|
||||
# 并发任务已满后的最大排队任务数,超过后接口返回 429,避免匿名请求无限堆积
|
||||
max_queued_tasks = 100
|
||||
|
||||
|
||||
[whisper]
|
||||
# Only effective when subtitle_provider is "whisper"
|
||||
|
||||
# Run on GPU with FP16
|
||||
# model = WhisperModel(model_size, device="cuda", compute_type="float16")
|
||||
|
||||
# Run on GPU with INT8
|
||||
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
|
||||
|
||||
# Run on CPU with INT8
|
||||
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
|
||||
|
||||
# recommended model_size: "large-v3"
|
||||
model_size = "large-v3"
|
||||
# if you want to use GPU, set device="cuda"
|
||||
device = "CPU"
|
||||
compute_type = "int8"
|
||||
|
||||
|
||||
[proxy]
|
||||
### Use a proxy to access the Pexels API
|
||||
### Format: "http://<username>:<password>@<proxy>:<port>"
|
||||
### Example: "http://user:pass@proxy:1234"
|
||||
### Doc: https://requests.readthedocs.io/en/latest/user/advanced/#proxies
|
||||
|
||||
# http = "http://10.10.1.10:3128"
|
||||
# https = "http://10.10.1.10:1080"
|
||||
|
||||
[azure]
|
||||
# Azure Speech API Key
|
||||
# Get your API key at https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/SpeechServices
|
||||
speech_key = ""
|
||||
speech_region = ""
|
||||
|
||||
[siliconflow]
|
||||
# SiliconFlow API Key
|
||||
# Get your API key at https://siliconflow.cn
|
||||
api_key = ""
|
||||
|
||||
[ui]
|
||||
# UI related settings
|
||||
# 是否隐藏日志信息
|
||||
# Whether to hide logs in the UI
|
||||
hide_log = false
|
||||
|
||||
# 字幕位置设置 (Subtitle position settings)
|
||||
# 可选值 (Available values): "top", "center", "bottom", "custom"
|
||||
# subtitle_position = "custom"
|
||||
# 自定义位置,表示离顶部的百分比 (0-100),仅当 subtitle_position = "custom" 时生效
|
||||
# Custom position as percentage from top (0-100), only effective when subtitle_position = "custom"
|
||||
# custom_position = 70.0
|
||||
|
||||
########## Upload-Post (Cross-post to TikTok/Instagram)
|
||||
# Upload-Post allows you to automatically cross-post generated videos to TikTok and Instagram.
|
||||
# Visit https://upload-post.com to create an account and get your API key.
|
||||
# API Documentation: https://docs.upload-post.com
|
||||
|
||||
# Enable/disable Upload-Post integration
|
||||
upload_post_enabled = false
|
||||
|
||||
# Your Upload-Post API key
|
||||
upload_post_api_key = ""
|
||||
|
||||
# Your Upload-Post username
|
||||
upload_post_username = ""
|
||||
|
||||
# Platforms to cross-post to (options: "tiktok", "instagram")
|
||||
upload_post_platforms = ["tiktok", "instagram"]
|
||||
|
||||
# Automatically cross-post videos after generation (if false, you'll need to call the API manually)
|
||||
upload_post_auto_upload = false
|
||||
Reference in New Issue
Block a user