| 1 | # ───────────────────────────────────────────────────────────── |
| 2 | # Image Generation Configuration / 图片生成配置 |
| 3 | # ───────────────────────────────────────────────────────────── |
| 4 | |
| 5 | # This file is an optional fallback config source for image_gen.py. |
| 6 | # Current process environment variables take precedence over this file. |
| 7 | # 当前文件是 image_gen.py 的可选 fallback 配置来源。 |
| 8 | # 当前进程环境变量优先于这个文件。 |
| 9 | # |
| 10 | # Resolution order (only the FIRST existing file is read; keys are NOT merged across files): |
| 11 | # 1. ./.env in your current working directory |
| 12 | # 2. <skill-dir>/.env (skill install, e.g. ~/.agents/skills/ppt-master/.env) |
| 13 | # 3. <repo-root>/.env (when running from a clone) |
| 14 | # 4. ~/.ppt-master/.env (user-level config) |
| 15 | # 查找顺序(只读第一个存在的文件,多个 .env 之间不合并): |
| 16 | # 1. 当前工作目录下的 ./.env |
| 17 | # 2. skill 安装目录下的 .env(如 ~/.agents/skills/ppt-master/.env) |
| 18 | # 3. 仓库根目录下的 .env(仅在 clone 模式下) |
| 19 | # 4. ~/.ppt-master/.env(用户级配置) |
| 20 | |
| 21 | # Active backend (required) / 当前启用后端(必需) |
| 22 | # Recommended core backends: openai / gemini / qwen / zhipu / volcengine |
| 23 | # 推荐核心后端:openai / gemini / qwen / zhipu / volcengine |
| 24 | # IMAGE_BACKEND=openai |
| 25 | |
| 26 | # You may also provide the same variables directly via the current process environment. |
| 27 | # 也可以不写 .env,而是直接通过当前运行进程的环境变量提供同样的配置。 |
| 28 | |
| 29 | # IMPORTANT: |
| 30 | # - IMAGE_API_KEY / IMAGE_MODEL / IMAGE_BASE_URL are no longer supported. |
| 31 | # - Use provider-specific keys only. |
| 32 | # 重要: |
| 33 | # - 不再支持 IMAGE_API_KEY / IMAGE_MODEL / IMAGE_BASE_URL。 |
| 34 | # - 请只使用各提供商自己的变量。 |
| 35 | |
| 36 | # ───────────────────────────────────────────────────────────── |
| 37 | # Example: OpenAI / OpenAI 示例 (recommended / 推荐) |
| 38 | # ───────────────────────────────────────────────────────────── |
| 39 | # IMAGE_BACKEND=openai |
| 40 | # OPENAI_API_KEY=sk-xxx |
| 41 | # OPENAI_MODEL=gpt-image-2 |
| 42 | # OPENAI_BASE_URL=http://127.0.0.1:3000/v1 |
| 43 | # OpenAI-compatible providers may need these compatibility knobs. |
| 44 | # OpenAI-compatible 第三方平台可按需开启以下兼容参数。 |
| 45 | # OPENAI_SIZE_PRESET=auto |
| 46 | # OPENAI_RESPONSE_FORMAT=auto |
| 47 | # OPENAI_QUALITY=auto |
| 48 | # Allowed values: png / jpeg / webp |
| 49 | # OPENAI_OUTPUT_FORMAT=png |
| 50 | # jpeg/webp only, 0-100 |
| 51 | # OPENAI_OUTPUT_COMPRESSION=80 |
| 52 | # gpt-image-2: auto / opaque |
| 53 | # OPENAI_BACKGROUND=auto |
| 54 | # auto / low |
| 55 | # OPENAI_MODERATION=auto |
| 56 | |
| 57 | # ───────────────────────────────────────────────────────────── |
| 58 | # Example: Gemini / Gemini 示例 |
| 59 | # ───────────────────────────────────────────────────────────── |
| 60 | # IMAGE_BACKEND=gemini |
| 61 | # GEMINI_API_KEY=your-gemini-api-key |
| 62 | # GEMINI_MODEL=gemini-3.1-flash-image-preview |
| 63 | # GEMINI_BASE_URL=https://your-proxy-url.com |
| 64 | |
| 65 | # ───────────────────────────────────────────────────────────── |
| 66 | # Example: MiniMax / MiniMax 示例 |
| 67 | # ───────────────────────────────────────────────────────────── |
| 68 | # IMAGE_BACKEND=minimax |
| 69 | # MINIMAX_API_KEY=your-minimax-key |
| 70 | # MINIMAX_MODEL=image-01 |
| 71 | # Default China endpoint / 默认国内地址 |
| 72 | # MINIMAX_BASE_URL=https://api.minimaxi.com/v1/image_generation |
| 73 | # Optional overseas endpoint / 可选海外地址 |
| 74 | # MINIMAX_BASE_URL=https://api.minimax.io/v1/image_generation |
| 75 | |
| 76 | # ───────────────────────────────────────────────────────────── |
| 77 | # Example: Qwen / 通义生图示例 |
| 78 | # ───────────────────────────────────────────────────────────── |
| 79 | # IMAGE_BACKEND=qwen |
| 80 | # QWEN_API_KEY=your-dashscope-key |
| 81 | # QWEN_MODEL=qwen-image-2.0-pro |
| 82 | # QWEN_BASE_URL=https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis |
| 83 | |
| 84 | # ───────────────────────────────────────────────────────────── |
| 85 | # Example: Zhipu / 智谱生图示例 |
| 86 | # ───────────────────────────────────────────────────────────── |
| 87 | # IMAGE_BACKEND=zhipu |
| 88 | # ZHIPU_API_KEY=your-zhipu-key |
| 89 | # ZHIPU_MODEL=glm-image |
| 90 | # ZHIPU_BASE_URL=https://open.bigmodel.cn/api/paas/v4/images/generations |
| 91 | |
| 92 | # ───────────────────────────────────────────────────────────── |
| 93 | # Example: Volcengine / 火山引擎示例 |
| 94 | # ───────────────────────────────────────────────────────────── |
| 95 | # IMAGE_BACKEND=volcengine |
| 96 | # VOLCENGINE_API_KEY=your-volcengine-key |
| 97 | # VOLCENGINE_MODEL=doubao-seedream-4-5-251128 |
| 98 | # VOLCENGINE_BASE_URL=https://operator.las.cn-beijing.volces.com/api/v1/images/generations |
| 99 | |
| 100 | # ───────────────────────────────────────────────────────────── |
| 101 | # Extended / Experimental backends |
| 102 | # 扩展 / 实验后端 |
| 103 | # ───────────────────────────────────────────────────────────── |
| 104 | # STABILITY_API_KEY=your-stability-key |
| 105 | # STABILITY_MODEL=stable-image-core |
| 106 | # STABILITY_BASE_URL=https://api.stability.ai |
| 107 | # |
| 108 | # BFL_API_KEY=your-bfl-key |
| 109 | # BFL_MODEL=flux-pro-1.1-ultra |
| 110 | # BFL_BASE_URL=https://api.bfl.ai |
| 111 | # |
| 112 | # IDEOGRAM_API_KEY=your-ideogram-key |
| 113 | # IDEOGRAM_MODEL=ideogram-v3 |
| 114 | # IDEOGRAM_BASE_URL=https://api.ideogram.ai |
| 115 | # |
| 116 | # MINIMAX_API_KEY=your-minimax-key |
| 117 | # MINIMAX_MODEL=image-01 |
| 118 | # Default China endpoint / 默认国内地址 |
| 119 | # MINIMAX_BASE_URL=https://api.minimaxi.com/v1/image_generation |
| 120 | # Optional overseas endpoint / 可选海外地址 |
| 121 | # MINIMAX_BASE_URL=https://api.minimax.io/v1/image_generation |
| 122 | # |
| 123 | # SILICONFLOW_API_KEY=your-siliconflow-key |
| 124 | # SILICONFLOW_MODEL=Qwen/Qwen-Image |
| 125 | # SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/images/generations |
| 126 | # |
| 127 | # FAL_KEY=your-fal-key |
| 128 | # FAL_MODEL=fal-ai/imagen3/fast |
| 129 | # FAL_BASE_URL=https://fal.run |
| 130 | # |
| 131 | # REPLICATE_API_TOKEN=r8_xxx |
| 132 | # REPLICATE_MODEL=black-forest-labs/flux-1.1-pro |
| 133 | # REPLICATE_BASE_URL=https://api.replicate.com/v1/predictions |
| 134 | # |
| 135 | # OPENROUTER_API_KEY=sk-or-v1-xxx |
| 136 | # OPENROUTER_MODEL=google/gemini-3.1-flash-image-preview |
| 137 | # OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 |
| 138 | # |
| 139 | # OpenAI-compatible example: Agnes AI / OpenAI-compatible 示例:Agnes AI |
| 140 | # IMAGE_BACKEND=openai |
| 141 | # OPENAI_API_KEY=your-agnes-key |
| 142 | # OPENAI_MODEL=agnes-image-2.1-flash |
| 143 | # OPENAI_BASE_URL=https://apihub.agnes-ai.com/v1 |
| 144 | # OPENAI_SIZE_PRESET=gpt-image-2 |
| 145 | # OPENAI_RESPONSE_FORMAT=omit |
| 146 | # OPENAI_QUALITY=omit |
| 147 | # |
| 148 | # IMAGE_BACKEND=modelscope |
| 149 | # MODELSCOPE_API_KEY=your-modelscope-key |
| 150 | # MODELSCOPE_MODEL=Tongyi-MAI/Z-Image-Turbo |
| 151 | # MODELSCOPE_BASE_URL=https://api-inference.modelscope.cn/v1 |
| 152 | |
| 153 | # ───────────────────────────────────────────────────────────── |
| 154 | # Multi-provider example / 多提供商共存示例 |
| 155 | # ───────────────────────────────────────────────────────────── |
| 156 | # IMAGE_BACKEND=openai |
| 157 | # OPENAI_API_KEY=sk-xxx |
| 158 | # OPENAI_MODEL=gpt-image-2 |
| 159 | # OPENAI_OUTPUT_FORMAT=png |
| 160 | # GEMINI_API_KEY=your-gemini-api-key |
| 161 | # GEMINI_MODEL=gemini-3.1-flash-image-preview |
| 162 | # |
| 163 | # Switch providers by changing IMAGE_BACKEND only. |
| 164 | # 切换提供商时,只改 IMAGE_BACKEND 即可。 |
| 165 | |
| 166 | # ───────────────────────────────────────────────────────────── |
| 167 | # Audio narration TTS (notes_to_audio.py) / 旁白音频 TTS |
| 168 | # ───────────────────────────────────────────────────────────── |
| 169 | # edge-tts is the default narration backend and needs no API key. |
| 170 | # Use cloud providers only when you want high-quality or cloned voices — |
| 171 | # all four (ElevenLabs / MiniMax / Qwen / CosyVoice) accept a cloned voice_id. |
| 172 | # Clone the voice in the provider's console first, then pass --voice-id to |
| 173 | # notes_to_audio.py. See workflows/stages/generate-audio.md. |
| 174 | # edge-tts 是默认旁白后端,无需 API Key。 |
| 175 | # 需要高质量云端旁白或复刻音色时再配置云端提供商—— |
| 176 | # ElevenLabs / MiniMax / Qwen / CosyVoice 四家都支持传入复刻 voice_id。 |
| 177 | # 先在 provider 控制台复刻得到 voice_id,再用 --voice-id 传给 notes_to_audio.py。 |
| 178 | # 详见 workflows/stages/generate-audio.md。 |
| 179 | # |
| 180 | # ELEVENLABS_API_KEY=your-elevenlabs-api-key |
| 181 | # MINIMAX_API_KEY=your-minimax-key |
| 182 | # QWEN_API_KEY=your-dashscope-key |
| 183 | # COSYVOICE_API_KEY=your-dashscope-key |
| 184 | # DASHSCOPE_API_KEY=your-dashscope-key |
| 185 | # |
| 186 | # Optional provider-specific TTS endpoint overrides. |
| 187 | # 可选:按提供商覆盖 TTS 接入点。 |
| 188 | # Default China endpoint / 默认国内地址 |
| 189 | # MINIMAX_TTS_BASE_URL=https://api.minimaxi.com/v1/t2a_v2 |
| 190 | # Optional overseas endpoint / 可选海外地址 |
| 191 | # MINIMAX_TTS_BASE_URL=https://api.minimax.io/v1/t2a_v2 |
| 192 | # QWEN_TTS_BASE_URL=https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation |
| 193 | # COSYVOICE_TTS_BASE_URL=https://dashscope.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer |
| 194 | |
| 195 | # ───────────────────────────────────────────────────────────── |
| 196 | # Web image search (image_search.py) / 网络图片搜索 |
| 197 | # ───────────────────────────────────────────────────────────── |
| 198 | # Used by scripts/image_search.py — separate from IMAGE_BACKEND above. |
| 199 | # image_search.py 用,与上面的 IMAGE_BACKEND 互不影响。 |
| 200 | # |
| 201 | # Openverse and Wikimedia work with no key, but image quality can be uneven. |
| 202 | # For polished stock-style PPT images, configure Pexels and/or Pixabay. |
| 203 | # Openverse 和 Wikimedia 无需 Key,但图片质量不稳定。 |
| 204 | # 如需更稳定的商业图库风格 PPT 配图,建议配置 Pexels 和/或 Pixabay。 |
| 205 | # |
| 206 | # Sign up: https://www.pexels.com/api/ |
| 207 | # PEXELS_API_KEY=your-pexels-key |
| 208 | # Sign up: https://pixabay.com/api/docs/ |
| 209 | # PIXABAY_API_KEY=your-pixabay-key |
| 210 |