[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://:@:" ### 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