claude-imagegen 是做什麼的?
此技能為代理與 Codex 內建的 image_gen 工具之間搭起橋樑。該工具使用使用者已登入的 ChatGPT 帳戶,因此不需要 OPENAI_API_KEY。
簡單來說,代理扮演藝術總監的角色。它撰寫設計簡報,將其發送給插畫家(Codex),然後在使用前檢查結果。插畫家工作迅速,但有時會拼錯標籤或畫錯箭頭方向。因此,視覺檢查是不可或缺的步驟,而非選配。
使用時機
- 使用者要求以 imagegen GPT 製作插圖、故事場景或輔助教材圖片。
- 使用者希望圖片的風格能與現有圖片保持一致。
對於包含許多精確標籤的圖表,請先提議使用 SVG 或 HTML。Imagegen 在處理場景時最為可靠,但在處理長篇文字時最容易出錯。
如果正在執行的代理本身就是 Codex,請直接使用其內建的 image_gen 工具。請勿在 Codex 內部呼叫 codex exec。
先決條件
codex已存在於 PATH 中,並已使用 ChatGPT 帳戶登入。請使用codex login status檢查。image_generation功能已啟用。請使用codex features list | grep image_generation檢查。- 可選:用於產生 WebP 的
cwebp,以及用於讀取圖片尺寸的sips(macOS)或 Python Pillow。
若先決條件未滿足,請停止並指出缺少的項目。請勿擅自改用付費 API。
執行前,請向使用者說明兩件事
- 設計簡報與參考圖片將被發送至 OpenAI。請勿在未經明確許可的情況下附上機密圖片、個人資料或客戶素材。
- 每張圖片都會消耗 ChatGPT 訂閱額度。一張測試圖片約消耗 18,000 個 token,耗時約 2 分鐘。
每個 session 只需說明一次,除非參考內容的類型有所改變。
操作流程
- 收集需求。 僅詢問尚未明確的項目:圖片目的、比例(預設為 3:2 橫向)、必須出現的文字、風格參考圖片,以及儲存位置。
- 撰寫簡報 使用
references/brief-template.md範本,以英文撰寫。精確列出允許出現的文字,然後禁止其他文字、浮水印和標誌。 - 執行腳本:
腳本會將儲存指令附加到簡報中,透過標準輸入(stdin)發送簡報,並複製結果。簡報必須透過標準輸入傳遞,因為 Codex 的scripts/gen.sh --out <路徑/檔名.png> --brief <brief.txt> [--ref <圖片.png>]... [--style-guide <AGENTS.md>] [--no-refine] [--webp 1400]-i選項會吞噬其後的參數位置。使用--dry-run可以在不消耗額度的情況下預覽指令。 Codex 提示最佳化(預設)。 在繪製之前,Codex 會扮演藝術總監的角色:它會將簡報改寫成更強大的提示,包含一個核心概念、清晰的視覺層次,以及外行人能立即理解的視覺隱喻。數字、名稱、引用和技術術語必須精確保留。最佳化後的提示和圖片中出現的文字列表會儲存在<檔名>.refined.txt中。若簡報必須原樣使用(例如進行小幅編輯),請使用--no-refine。 風格指南。--style-guide <檔案.md>,或環境變數CLAUDE_IMAGEGEN_STYLE_GUIDE,會附加語言和教學法規則,例如工作區的AGENTS.md。Codex 僅會套用該檔案中的語言、句式風格和教學法規則。 - 視覺檢查結果。 開啟 PNG 檔案,然後對照
references/qa-checklist.md中的清單進行檢查:每個標籤的拼字、箭頭方向、無多餘文字、比例以及風格一致性。 - 必要時進行修正,最多兩輪。請選擇以下其中一種方式:
- 編輯簡報後重新執行,或者
- 將前一次結果作為
--ref附上,並加上狹義的編輯指示,例如「保持所有內容,僅將標籤 X 改為 Y。」
- 交付成果。 回報 PNG 的路徑、WebP 的路徑(如有)、像素尺寸以及視覺檢查結果。同時說明任何仍存在的缺陷。
輸出檔案
<檔名>.png:來自 Codex 的原始圖片。<檔名>.brief.txt:所使用的簡報,便於重新生成或修正圖片。<檔名>.refined.txt:Codex 最佳化後的提示以及圖片中出現的文字列表。用來檢查拼字和數字。<檔名>.webp:若指定--webp,則根據指定寬度(保持原始比例)產生的 WebP 檔案。
Codex 也會在 ~/.codex/generated_images/ 中儲存一份原始副本。
必須誠實告知的限制
- 無法透過參數選擇圖片模型的版本。由 Codex 自行決定。
- 結果非確定性。相同的簡報可能產生不同的圖片。
- 圖片中的長篇文字經常拼寫錯誤。請將文字限制在幾個簡短的標籤內。