圖片生成
python3 ~/simcraft/skills/image-gen/scripts/gen_image.py "<提示詞>" --out <目錄> --name <檔名> [選項]
僅使用標準函式庫,因此任何 python3 都可運行。
金鑰
此指令碼會從環境變數或 ~/.config/simcraft/keys.env 檔案(每行一個 NAME=value,權限設為 600)中讀取 GEMINI_API_KEY 和 OPENAI_API_KEY。
- 執行
--check可查看已設定哪些金鑰。它絕不會印出金鑰內容。 - 如果未設定任何金鑰,請告知使用者自行開啟檔案(
open -e ~/.config/simcraft/keys.env)並貼入金鑰。切勿要求他們將金鑰貼到對話中,也不要從其他專案的檔案中讀取金鑰。 - 金鑰僅用於請求標頭。絕不應出現在 URL、日誌或側車檔案中。
- 取得 Gemini 金鑰:前往 aistudio.google.com/apikey(有免費方案)。取得 OpenAI 金鑰:前往 platform.openai.com/api-keys。
選項
| 選項 | 功能說明 |
|---|---|
--n 4 | 並行生成 4 個變體,外加 <name>_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 | 選擇提供商。預設:若已設定 Gemini 金鑰,則使用 Gemini。 |
--model M | 選擇模型。預設情況下,Gemini 會選擇金鑰可用的最新圖片模型(--models 可列出所有模型),OpenAI 則使用 gpt-image-2。 |
--quality low|medium|high | 僅適用於 OpenAI。預設為高。 |
--brand devin | 將品牌套件的圖片風格與色板加入提示詞中。任何品牌相關的工作,請先執行品牌套件技能。 |
每張圖片都會生成一個 <name>.json 側車檔案,其中包含確切的提示詞、模型與設定,方便日後重新生成或微調。
選擇哪個提供商
- Gemini: 快速且便宜。最適合迭代、編輯圖片,以及使用
--ref保持一致性。 - OpenAI gpt-image: 最適合含有文字的圖片,以及需要真正透明去背的圖片。
提示技巧
- 依序描述主體、媒介、光線與構圖。說明要排除的內容。
- 圖片中不應包含文字,除非使用者明確要求。模型仍容易拼錯單字。後續請在程式碼中加入文字。
- 若要製作一系列圖片,請先生成一張錨點圖片。然後將這張錨點圖片作為
--ref傳給其他所有圖片。切勿將第二張圖片串接到第三張,因為小錯誤會累積。 - 在使用圖片前,先向使用者展示預覽總表。只重新生成其中一個變體,而非全部。