| 1 | [app] |
| 2 | video_source = "pexels" # "pexels" or "pixabay" |
| 3 | |
| 4 | # 是否隐藏配置面板 |
| 5 | hide_config = false |
| 6 | |
| 7 | # Azure TTS V1(edge_tts) 单次流式请求超时时间,单位秒。 |
| 8 | # 网络异常、服务端限流或 voice 与文本语言不匹配时,edge_tts 可能长期卡住。 |
| 9 | # 默认 30 秒可避免 WebUI 任务无反馈;慢网络或代理环境可适当调大。 |
| 10 | # 设置为 0 表示禁用超时。 |
| 11 | edge_tts_timeout = 30 |
| 12 | |
| 13 | # 是否校验外部 API 和素材下载的 TLS 证书。 |
| 14 | # 默认必须开启,避免 Pexels/Pixabay API key 和下载素材被中间人攻击篡改。 |
| 15 | # 只有在企业代理或自签证书环境明确需要时,才临时改为 false。 |
| 16 | tls_verify = true |
| 17 | |
| 18 | # Pexels API Key |
| 19 | # Register at https://www.pexels.com/api/ to get your API key. |
| 20 | # You can use multiple keys to avoid rate limits. |
| 21 | # For example: pexels_api_keys = ["123adsf4567adf89","abd1321cd13efgfdfhi"] |
| 22 | # Use straight ASCII double quotes around each key. Smart quotes copied from rich text will break TOML parsing. |
| 23 | # 请使用英文半角双引号包裹每个 Key;从富文本复制来的弯引号会导致 TOML 解析失败。 |
| 24 | # 特别注意格式,Key 用英文双引号括起来,多个Key用逗号隔开 |
| 25 | pexels_api_keys = [] |
| 26 | |
| 27 | # Pixabay API Key |
| 28 | # Register at https://pixabay.com/api/docs/ to get your API key. |
| 29 | # You can use multiple keys to avoid rate limits. |
| 30 | # For example: pixabay_api_keys = ["123adsf4567adf89","abd1321cd13efgfdfhi"] |
| 31 | # Use straight ASCII double quotes around each key. Smart quotes copied from rich text will break TOML parsing. |
| 32 | # 请使用英文半角双引号包裹每个 Key;从富文本复制来的弯引号会导致 TOML 解析失败。 |
| 33 | # 特别注意格式,Key 用英文双引号括起来,多个Key用逗号隔开 |
| 34 | pixabay_api_keys = [] |
| 35 | |
| 36 | # Coverr API Key |
| 37 | # Register at https://coverr.co/developers?ctx=header_navigation to get your API key instantly. |
| 38 | # Free tier (Demo) is limited to 50 requests/hour — sufficient for a few |
| 39 | # video tasks per hour. Upgrade to Pro/Ultimate subscription for 2000/hour. |
| 40 | # Coverr provides free HD/4K stock videos (subject to Coverr license terms, |
| 41 | # see https://coverr.co/license), mostly 16:9 landscape; if |
| 42 | # you generate 9:16 short-form videos, prefer Pexels/Pixabay as primary |
| 43 | # and use Coverr to widen the catalog for landscape/cinematic content. |
| 44 | # You can use multiple keys to avoid rate limits. |
| 45 | # For example: coverr_api_keys = ["123adsf4567adf89","abd1321cd13efgfdfhi"] |
| 46 | # Use straight ASCII double quotes around each key. Smart quotes copied from rich text will break TOML parsing. |
| 47 | # 请使用英文半角双引号包裹每个 Key;从富文本复制来的弯引号会导致 TOML 解析失败。 |
| 48 | # 特别注意格式,Key 用英文双引号括起来,多个Key用逗号隔开 |
| 49 | coverr_api_keys = [] |
| 50 | |
| 51 | # TwelveLabs API Key (optional) — https://twelvelabs.io |
| 52 | # TwelveLabs (可选) 视频理解 / 多模态嵌入集成。 |
| 53 | # Enables two opt-in features: |
| 54 | # * Marengo (multimodal embeddings) semantically reorders the auto-generated |
| 55 | # search terms by relevance to your video subject, so the most on-topic |
| 56 | # B-roll is downloaded first when the timeline budget is tight. |
| 57 | # * Pegasus (video understanding) can QA / describe a clip from its URL. |
| 58 | # Leave empty to keep MoneyPrinterTurbo's behavior completely unchanged. |
| 59 | # Configure a TwelveLabs API key from the TwelveLabs dashboard (https://twelvelabs.io) and install the |
| 60 | # optional dependency with `uv sync --extra twelvelabs`. |
| 61 | # Register at https://playground.twelvelabs.io to get your API key. |
| 62 | # You can use multiple keys to avoid rate limits. |
| 63 | # For example: twelvelabs_api_keys = ["tlk_123adsf4567","tlk_abd1321cd13ef"] |
| 64 | # 请使用英文半角双引号包裹每个 Key;从富文本复制来的弯引号会导致 TOML 解析失败。 |
| 65 | twelvelabs_api_keys = [] |
| 66 | |
| 67 | # Reorder search terms by Marengo relevance before downloading footage. |
| 68 | # Requires twelvelabs_api_keys above. Ignored in "match materials to script" |
| 69 | # mode, where term order is intentionally the script's narrative order. |
| 70 | twelvelabs_rerank_terms = false |
| 71 | |
| 72 | # Optional model overrides (defaults shown). |
| 73 | # twelvelabs_marengo_model = "marengo3.0" |
| 74 | # twelvelabs_pegasus_model = "pegasus1.5" |
| 75 | |
| 76 | # 支持的提供商 (Supported providers): |
| 77 | # openai |
| 78 | # aihubmix (OpenAI-compatible AI model gateway) |
| 79 | # aimlapi (OpenAI-compatible multi-model AI API) |
| 80 | # moonshot (月之暗面) |
| 81 | # azure |
| 82 | # qwen (通义千问) |
| 83 | # deepseek |
| 84 | # gemini |
| 85 | # ollama |
| 86 | # g4f (disabled by default; set enable_g4f=true only after accepting its risks) |
| 87 | # oneapi |
| 88 | # cloudflare |
| 89 | # minimax |
| 90 | # evolink (OpenAI-compatible multi-model AI gateway) |
| 91 | # volcengine (VolcEngine Ark OpenAI-compatible API) |
| 92 | # mimo (Xiaomi MiMo) |
| 93 | # ernie (文心一言) |
| 94 | # modelscope (魔搭社区) |
| 95 | # litellm (100+ providers via LiteLLM gateway) |
| 96 | llm_provider = "openai" |
| 97 | |
| 98 | ########## Pollinations AI Settings |
| 99 | # Visit https://pollinations.ai/ to learn more |
| 100 | # API Key is optional - leave empty for public access |
| 101 | pollinations_api_key = "" |
| 102 | # Base URL for Pollinations API. |
| 103 | # Leave empty to use the default endpoint (https://text.pollinations.ai/openai). |
| 104 | # Note: the old "https://pollinations.ai/api/v1" endpoint no longer accepts |
| 105 | # requests (returns 405 Method Not Allowed), so only set this if you have a |
| 106 | # working custom endpoint. |
| 107 | pollinations_base_url = "" |
| 108 | # Default model for text generation |
| 109 | pollinations_model_name = "openai-fast" |
| 110 | |
| 111 | ########## Ollama Settings |
| 112 | # No need to set it unless you want to use your own proxy |
| 113 | ollama_base_url = "" |
| 114 | # Check your available models at https://ollama.com/library |
| 115 | ollama_model_name = "" |
| 116 | |
| 117 | ########## OpenAI API Key |
| 118 | # Get your API key at https://platform.openai.com/api-keys |
| 119 | # 也可以填写兼容 OpenAI Chat Completions 协议的供应商密钥, |
| 120 | # 例如 OpenRouter 这类提供自定义 base_url 的平台。 |
| 121 | openai_api_key = "" |
| 122 | # No need to set it unless you want to use your own proxy |
| 123 | # 如果使用兼容 OpenAI 接口的平台,请在这里填写对应的 base_url。 |
| 124 | openai_base_url = "" |
| 125 | # Check your available models at https://platform.openai.com/account/limits |
| 126 | # 如果使用兼容供应商,请填写该平台要求的模型 ID。 |
| 127 | openai_model_name = "gpt-4o-mini" |
| 128 | |
| 129 | ########## AIHubMix API Key |
| 130 | # AIHubMix is OpenAI-compatible and can use one API key to access multiple models. |
| 131 | # Visit https://aihubmix.com/?aff=CEve to register and get your API key. |
| 132 | aihubmix_api_key = "" |
| 133 | aihubmix_base_url = "https://aihubmix.com/v1" |
| 134 | aihubmix_model_name = "gpt-5.4-mini" |
| 135 | |
| 136 | ########## AIML API Key |
| 137 | # AIML API is OpenAI-compatible and can use one API key to access multiple model families. |
| 138 | # Visit https://aimlapi.com/app/keys to create your API key. |
| 139 | aimlapi_api_key = "" |
| 140 | aimlapi_base_url = "https://api.aimlapi.com/v1" |
| 141 | aimlapi_model_name = "openai/gpt-4o-mini" |
| 142 | |
| 143 | ########## Moonshot API Key |
| 144 | # Visit https://platform.moonshot.cn/console/api-keys to get your API key. |
| 145 | moonshot_api_key = "" |
| 146 | moonshot_base_url = "https://api.moonshot.cn/v1" |
| 147 | moonshot_model_name = "moonshot-v1-8k" |
| 148 | |
| 149 | ########## OneAPI API Key |
| 150 | # Visit https://github.com/songquanpeng/one-api to get your API key |
| 151 | oneapi_api_key = "" |
| 152 | oneapi_base_url = "" |
| 153 | oneapi_model_name = "" |
| 154 | |
| 155 | ########## G4F |
| 156 | # g4f relies on reverse-engineered third-party endpoints and is not recommended |
| 157 | # for production. Prefer official APIs, OpenAI-compatible providers, LiteLLM, |
| 158 | # Ollama, or local inference. |
| 159 | # If you still need it, install the optional dependency with: |
| 160 | # uv sync --extra g4f |
| 161 | enable_g4f = false |
| 162 | # Visit https://github.com/xtekky/gpt4free to get more details |
| 163 | # Supported model list: https://github.com/xtekky/gpt4free/blob/main/g4f/models.py |
| 164 | g4f_model_name = "gpt-3.5-turbo" |
| 165 | |
| 166 | ########## Azure API Key |
| 167 | # Visit https://learn.microsoft.com/zh-cn/azure/ai-services/openai/ to get more details |
| 168 | # API documentation: https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference |
| 169 | azure_api_key = "" |
| 170 | azure_base_url = "" |
| 171 | azure_model_name = "gpt-35-turbo" # replace with your model deployment name |
| 172 | azure_api_version = "2024-02-15-preview" |
| 173 | |
| 174 | ########## Gemini API Key |
| 175 | gemini_api_key = "" |
| 176 | gemini_model_name = "gemini-2.5-flash" |
| 177 | |
| 178 | ########## Grok API Key |
| 179 | grok_api_key = "" |
| 180 | grok_model_name = "grok-4.3" |
| 181 | grok_base_url = "https://api.x.ai/v1" |
| 182 | |
| 183 | ########## Groq API Key |
| 184 | # Visit https://console.groq.com/keys to get your api keys |
| 185 | # API documentation: https://console.groq.com/docs/api-reference |
| 186 | # Available models: https://console.groq.com/docs/api-reference#models-list |
| 187 | groq_api_key = "" |
| 188 | groq_model_name = "llama-3.3-70b-versatile" |
| 189 | groq_base_url = "https://api.groq.com/openai/v1" |
| 190 | |
| 191 | ########## Qwen API Key |
| 192 | # Visit https://dashscope.console.aliyun.com/apiKey to get your API key |
| 193 | # Visit below links to get more details |
| 194 | # https://tongyi.aliyun.com/qianwen/ |
| 195 | # https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction |
| 196 | qwen_api_key = "" |
| 197 | qwen_model_name = "qwen-max" |
| 198 | |
| 199 | |
| 200 | ########## MiniMax API Key |
| 201 | # Visit https://platform.minimax.io or https://platform.minimaxi.com to get your API key |
| 202 | # MiniMax API is OpenAI-compatible |
| 203 | # Available models: MiniMax-M3 (default), MiniMax-M2.7, MiniMax-M2.7-highspeed |
| 204 | # If your API key returns 401 on api.minimax.io, try the China endpoint: https://api.minimaxi.com/v1 |
| 205 | minimax_api_key = "" |
| 206 | minimax_base_url = "https://api.minimax.io/v1" |
| 207 | minimax_model_name = "MiniMax-M3" |
| 208 | |
| 209 | ########## EvoLink API Key |
| 210 | # EvoLink is an OpenAI-compatible gateway for language models. |
| 211 | # Visit https://evolink.ai/dashboard/keys to get your API key. |
| 212 | # API documentation: https://docs.evolink.ai/en/api-manual/language-series |
| 213 | # Available models include gpt-5.5, gpt-5.4, gpt-5.2, deepseek-v4-flash, deepseek-v4-pro, gemini-3.1-pro, and doubao-seed-2.0-pro. |
| 214 | evolink_api_key = "" |
| 215 | evolink_base_url = "https://direct.evolink.ai/v1" |
| 216 | evolink_model_name = "gpt-5.5" |
| 217 | |
| 218 | ########## VolcEngine Ark API Key |
| 219 | # VolcEngine Ark provides an OpenAI-compatible Chat Completions API. |
| 220 | # Create an API key in the VolcEngine Ark console and use a model ID that is |
| 221 | # enabled for your account. |
| 222 | volcengine_api_key = "" |
| 223 | volcengine_base_url = "https://ark.cn-beijing.volces.com/api/v3" |
| 224 | volcengine_model_name = "doubao-seed-2-1-turbo-260628" |
| 225 | |
| 226 | ########## Xiaomi MiMo API Key |
| 227 | # Xiaomi MiMo API is OpenAI-compatible. |
| 228 | # Visit https://platform.xiaomimimo.com/docs/zh-CN/quick-start/first-api-call to get more details. |
| 229 | mimo_api_key = "" |
| 230 | mimo_base_url = "https://api.xiaomimimo.com/v1" |
| 231 | mimo_model_name = "mimo-v2.5-pro" |
| 232 | # Xiaomi MiMo TTS uses the same API key and base_url as MiMo LLM. |
| 233 | mimo_tts_model_name = "mimo-v2.5-tts" |
| 234 | # Optional natural language style prompt for MiMo TTS. |
| 235 | mimo_tts_style_prompt = "请用自然、清晰、适合短视频旁白的语气朗读。" |
| 236 | |
| 237 | ########## DeepSeek API Key |
| 238 | # Visit https://platform.deepseek.com/api_keys to get your API key |
| 239 | deepseek_api_key = "" |
| 240 | deepseek_base_url = "https://api.deepseek.com" |
| 241 | deepseek_model_name = "deepseek-chat" |
| 242 | |
| 243 | |
| 244 | ########## ModelScope API Key |
| 245 | # Visit https://modelscope.cn/docs/model-service/API-Inference/intro to get your API key |
| 246 | # And note that you need to bind your Alibaba Cloud account before using the API. |
| 247 | modelscope_api_key = "" |
| 248 | modelscope_base_url = "https://api-inference.modelscope.cn/v1/" |
| 249 | modelscope_model_name = "Qwen/Qwen3-32B" |
| 250 | |
| 251 | ########## LiteLLM (AI Gateway — 100+ providers) |
| 252 | # LiteLLM routes to any LLM provider via a unified interface. |
| 253 | # Use this for providers not directly supported above: Anthropic (native API), |
| 254 | # AWS Bedrock, Google Vertex AI, Cohere, Mistral, Together AI, etc. |
| 255 | # Visit https://docs.litellm.ai/docs/providers for the full list. |
| 256 | # |
| 257 | # LiteLLM reads provider API keys from environment variables automatically: |
| 258 | # OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, AWS_ACCESS_KEY_ID, etc. |
| 259 | # Set the appropriate env var for your chosen provider before running. |
| 260 | # |
| 261 | # Model name in LiteLLM format: "provider/model-name" |
| 262 | # Examples: "openai/gpt-4o", "anthropic/claude-sonnet-4-20250514", |
| 263 | # "bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0", |
| 264 | # "gemini/gemini-2.5-flash", "ollama/llama3" |
| 265 | litellm_model_name = "openai/gpt-4o-mini" |
| 266 | |
| 267 | # Subtitle Provider, "edge" or "whisper" |
| 268 | # If empty, the subtitle will not be generated |
| 269 | subtitle_provider = "edge" |
| 270 | |
| 271 | # |
| 272 | # ImageMagick |
| 273 | # |
| 274 | # Once you have installed it, ImageMagick will be automatically detected, except on Windows! |
| 275 | # On Windows, for example "C:\Program Files (x86)\ImageMagick-7.1.1-Q16-HDRI\magick.exe" |
| 276 | # Download from https://imagemagick.org/archive/binaries/ImageMagick-7.1.1-29-Q16-x64-static.exe |
| 277 | |
| 278 | # imagemagick_path = "C:\\Program Files (x86)\\ImageMagick-7.1.1-Q16\\magick.exe" |
| 279 | |
| 280 | |
| 281 | # |
| 282 | # FFMPEG |
| 283 | # |
| 284 | # 通常情况下,ffmpeg 会被自动下载,并且会被自动检测到。 |
| 285 | # 但是如果你的环境有问题,无法自动下载,可能会遇到如下错误: |
| 286 | # RuntimeError: No ffmpeg exe could be found. |
| 287 | # Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable. |
| 288 | # 此时你可以手动下载 ffmpeg 并设置 ffmpeg_path,下载地址:https://www.gyan.dev/ffmpeg/builds/ |
| 289 | |
| 290 | # Under normal circumstances, ffmpeg is downloaded automatically and detected automatically. |
| 291 | # However, if there is an issue with your environment that prevents automatic downloading, you might encounter the following error: |
| 292 | # RuntimeError: No ffmpeg exe could be found. |
| 293 | # Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable. |
| 294 | # In such cases, you can manually download ffmpeg and set the ffmpeg_path, download link: https://www.gyan.dev/ffmpeg/builds/ |
| 295 | |
| 296 | # ffmpeg_path = "C:\\Users\\harry\\Downloads\\ffmpeg.exe" |
| 297 | |
| 298 | # 视频编码器。默认 libx264 最稳定;高级用户可以尝试硬件编码器提升速度。 |
| 299 | # 如果当前 FFmpeg 或硬件驱动不支持所选编码器,程序会自动回退到 libx264。 |
| 300 | # 可选值: "libx264", "h264_nvenc", "h264_amf", "h264_qsv", "h264_mf", "h264_videotoolbox" |
| 301 | # video_codec = "libx264" |
| 302 | |
| 303 | # Video encoder. libx264 is the safest default; advanced users can try hardware encoders. |
| 304 | # If the selected encoder is not supported by the current FFmpeg or driver, the app falls back to libx264. |
| 305 | # Available values: "libx264", "h264_nvenc", "h264_amf", "h264_qsv", "h264_mf", "h264_videotoolbox" |
| 306 | # video_codec = "libx264" |
| 307 | ######################################################################################### |
| 308 | |
| 309 | # 当视频生成成功后,API服务提供的视频下载接入点,默认为当前服务的地址和监听端口 |
| 310 | # 比如 http://127.0.0.1:8080/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4 |
| 311 | # 如果你需要使用域名对外提供服务(一般会用nginx做代理),则可以设置为你的域名 |
| 312 | # 比如 https://xxxx.com/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4 |
| 313 | # endpoint="https://xxxx.com" |
| 314 | |
| 315 | # 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. |
| 316 | # For example, http://127.0.0.1:8080/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4 |
| 317 | # 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. |
| 318 | # For example, https://xxxx.com/tasks/6357f542-a4e1-46a1-b4c9-bf3bd0df5285/final-1.mp4 |
| 319 | # endpoint="https://xxxx.com" |
| 320 | endpoint = "" |
| 321 | |
| 322 | |
| 323 | # Video material storage location |
| 324 | # material_directory = "" # Indicates that video materials will be downloaded to the default folder, the default folder is ./storage/cache_videos under the current project |
| 325 | # material_directory = "/user/harry/videos" # Indicates that video materials will be downloaded to a specified folder |
| 326 | # 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 |
| 327 | |
| 328 | # 视频素材存放位置 |
| 329 | # material_directory = "" #表示将视频素材下载到默认的文件夹,默认文件夹为当前项目下的 ./storage/cache_videos |
| 330 | # material_directory = "/user/harry/videos" #表示将视频素材下载到指定的文件夹中 |
| 331 | # material_directory = "task" #表示将视频素材下载到当前任务的文件夹中,这种方式无法共享已经下载的视频素材 |
| 332 | |
| 333 | material_directory = "" |
| 334 | |
| 335 | # Used for state management of the task. |
| 336 | # Redis is expected to be private to this app. Do not expose it to untrusted |
| 337 | # writers, because task state is deserialized for compatibility with existing |
| 338 | # records. |
| 339 | enable_redis = false |
| 340 | redis_host = "localhost" |
| 341 | redis_port = 6379 |
| 342 | redis_db = 0 |
| 343 | redis_password = "" |
| 344 | |
| 345 | # 文生视频时的最大并发任务数 |
| 346 | max_concurrent_tasks = 5 |
| 347 | |
| 348 | # 并发任务已满后的最大排队任务数,超过后接口返回 429,避免匿名请求无限堆积 |
| 349 | max_queued_tasks = 100 |
| 350 | |
| 351 | |
| 352 | [whisper] |
| 353 | # Only effective when subtitle_provider is "whisper" |
| 354 | |
| 355 | # Run on GPU with FP16 |
| 356 | # model = WhisperModel(model_size, device="cuda", compute_type="float16") |
| 357 | |
| 358 | # Run on GPU with INT8 |
| 359 | # model = WhisperModel(model_size, device="cuda", compute_type="int8_float16") |
| 360 | |
| 361 | # Run on CPU with INT8 |
| 362 | # model = WhisperModel(model_size, device="cpu", compute_type="int8") |
| 363 | |
| 364 | # recommended model_size: "large-v3" |
| 365 | model_size = "large-v3" |
| 366 | # if you want to use GPU, set device="cuda" |
| 367 | device = "CPU" |
| 368 | compute_type = "int8" |
| 369 | |
| 370 | |
| 371 | [proxy] |
| 372 | ### Use a proxy to access the Pexels API |
| 373 | ### Format: "http://<username>:<password>@<proxy>:<port>" |
| 374 | ### Example: "http://user:pass@proxy:1234" |
| 375 | ### Doc: https://requests.readthedocs.io/en/latest/user/advanced/#proxies |
| 376 | |
| 377 | # http = "http://10.10.1.10:3128" |
| 378 | # https = "http://10.10.1.10:1080" |
| 379 | |
| 380 | [azure] |
| 381 | # Azure Speech API Key |
| 382 | # Get your API key at https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/SpeechServices |
| 383 | speech_key = "" |
| 384 | speech_region = "" |
| 385 | |
| 386 | [siliconflow] |
| 387 | # SiliconFlow API Key |
| 388 | # Get your API key at https://siliconflow.cn |
| 389 | api_key = "" |
| 390 | |
| 391 | [elevenlabs] |
| 392 | # ElevenLabs API Key |
| 393 | # Get your API key at https://elevenlabs.io/app/settings/api-keys |
| 394 | # Mark voices as favorites in the ElevenLabs voice library to make them appear here. |
| 395 | api_key = "" |
| 396 | # Model: eleven_multilingual_v2 | eleven_flash_v2_5 | eleven_v3 |
| 397 | model_id = "eleven_multilingual_v2" |
| 398 | |
| 399 | [ui] |
| 400 | # UI related settings |
| 401 | # 是否隐藏日志信息 |
| 402 | # Whether to hide logs in the UI |
| 403 | hide_log = false |
| 404 | |
| 405 | # 字幕位置设置 (Subtitle position settings) |
| 406 | # 可选值 (Available values): "top", "center", "bottom", "custom" |
| 407 | # subtitle_position = "custom" |
| 408 | # 自定义位置,表示离顶部的百分比 (0-100),仅当 subtitle_position = "custom" 时生效 |
| 409 | # Custom position as percentage from top (0-100), only effective when subtitle_position = "custom" |
| 410 | # custom_position = 70.0 |
| 411 | |
| 412 | ########## Upload-Post (Cross-post to TikTok/Instagram/YouTube Shorts) |
| 413 | # Upload-Post allows you to automatically cross-post generated videos to TikTok, Instagram and YouTube Shorts. |
| 414 | # Visit https://upload-post.com to create an account and get your API key. |
| 415 | # API Documentation: https://docs.upload-post.com |
| 416 | |
| 417 | # Enable/disable Upload-Post integration |
| 418 | upload_post_enabled = false |
| 419 | |
| 420 | # Your Upload-Post API key |
| 421 | upload_post_api_key = "" |
| 422 | |
| 423 | # Your Upload-Post username |
| 424 | upload_post_username = "" |
| 425 | |
| 426 | # Platforms to cross-post to (options: "tiktok", "instagram", "youtube") |
| 427 | upload_post_platforms = ["tiktok", "instagram"] |
| 428 | |
| 429 | # Automatically cross-post videos after generation (if false, you'll need to call the API manually) |
| 430 | upload_post_auto_upload = false |
| 431 | |
| 432 | # YouTube Shorts privacy status (options: "public", "unlisted", "private") |
| 433 | upload_post_youtube_privacy_status = "public" |
| 434 | |
| 435 | # Chatterbox TTS (self-hosted, OpenAI-compatible) ########################## |
| 436 | # Chatterbox (https://github.com/resemble-ai/chatterbox, MIT) is an open-source, |
| 437 | # locally hosted TTS model with zero-shot voice cloning — a self-hostable |
| 438 | # alternative to ElevenLabs. Run a server that exposes an OpenAI-compatible |
| 439 | # endpoint at POST {base_url}/audio/speech (e.g. devnen/Chatterbox-TTS-Server |
| 440 | # or travisvn/chatterbox-tts-api), then set base_url below. In the WebUI pick |
| 441 | # "Chatterbox TTS" as the TTS server, or via the API pass a voice_name like |
| 442 | # "chatterbox:<voice>". Subtitles use the full-text fallback (no word-level |
| 443 | # timestamps); set subtitle_provider = "whisper" for tighter sync. |
| 444 | [chatterbox] |
| 445 | # Defaults target travisvn/chatterbox-tts-api running locally on port 4123. |
| 446 | base_url = "http://127.0.0.1:4123/v1" |
| 447 | api_key = "" |
| 448 | model_id = "chatterbox" |
| 449 | # Voices exposed by your server; shown in the WebUI dropdown as chatterbox:<name> |
| 450 | voices = ["default-Female"] |
| 451 |