图像生成
python3 ~/simcraft/skills/image-gen/scripts/gen_image.py "<提示词>" --out <目录> --name <文件名> [选项]
仅依赖标准库,因此任何 python3 均可运行。
密钥
脚本从环境变量读取 GEMINI_API_KEY 和 OPENAI_API_KEY,或从 ~/.config/simcraft/keys.env 读取(每行一个 名称=值,权限设为 600)。
- 运行
--check可查看哪些密钥已设置。它从不打印密钥本身。 - 如果未设置密钥,告知用户自行打开文件(
open -e ~/.config/simcraft/keys.env)并粘贴密钥。绝不要要求用户在聊天中粘贴密钥,也绝不要从其他项目的文件中读取密钥。 - 密钥仅用于请求头部。绝不出现在 URL、日志或 sidecar 文件中。
- 在 aistudio.google.com/apikey 获取 Gemini 密钥(提供免费套餐)。在 platform.openai.com/api-keys 获取 OpenAI 密钥。
选项
| 选项 | 功能 |
|---|---|
--n 4 | 并行生成 4 个变体,同时生成 <文件名>_sheet.png 供选择。对重要作品使用此选项。 |
--aspect 16:9 | 设置图像宽高比:16:9、9:16、1:1、4:3 或 3:4。根据图像显示位置选择匹配的尺寸。 |
--ref a.png b.png | 参考图像。用于编辑图像、匹配风格,或在不同图像间保持角色或物体一致。 |
--cutout | 生成用于拼贴的透明 PNG。Gemini 在绿幕上生成图像,脚本通过干净边缘移除背景。OpenAI 直接生成真正的透明图像。 |
| `--provider gemini | openai` |
--model M | 选择模型。默认情况下,Gemini 使用密钥可用的最新图像模型(--models 列出可用模型),OpenAI 使用 gpt-image-2。 |
| `--quality low | medium |
--brand devin | 将品牌套件的图像风格和调色板添加到提示词中。对于任何品牌工作,先运行品牌套件技能。 |
每张图像都会生成一个 <文件名>.json sidecar 文件,包含确切的提示词、模型和设置,以便日后重新生成或微调。
选择提供商
- Gemini: 快速且便宜。最适合迭代、编辑以及通过
--ref保持一致性。 - OpenAI gpt-image: 最适合包含文字的图像以及真正的透明剪切图。
提示词技巧
- 按顺序描述主体、媒介、光线和构图。明确说明要省略什么。
- 除非用户要求,否则不要在图像中加入文字。模型仍然会拼错单词。之后再在代码中添加文字排版。
- 对于系列图像,先生成一张锚点图像。然后将同一张锚点图像作为
--ref传递给其他所有图像。切勿将图像 2 链接到图像 3,因为小错误会累积。 - 在使用图像前,向用户展示合成图。仅重新生成其中一个变体,而不是全部。