Community画像github.com

MrBogomips/codex-image-gen

codex CLI の組み込み画像ツールを使ってラスター画像(イラスト、写真、アイコン、テクスチャ、モックアップ、ポスター、ロゴ案、透過切り抜き、プレースホルダ資産)を生成・編集し、指定したパスに保存します。画像生成や既存画像の変更(「空を紫色にして」)が必要なとき、およびユーザーが Codex、ChatGPT、OpenAI の画像生成に言及したときにデフォルトで使用します。Codex ログインの割り当て枠で動作し、API キーは不要です。Google/Gemini の画像生成(API キー使用)には google-image-gen を代わりに使用してください。

codex-image-gen とは?

このスキルは、codex CLI の組み込み画像生成ツールを駆使して、高品質なラスター画像を生成・編集するための専用スクリプト (`scripts/codex_image.py`) を提供します。`codex exec` では画像ファイルの出力先を直接指定できず、生成された画像は `$CODEX_HOME/generated_images/` 以下に散らばってしまいますが、このスクリプトは非対話型の一回の実行で画像を取得し、ユーザーが指定したパスに直接書き出します。アスペクト比の指定、参照画像の利用、編集、複数バージョンの生成、正確なピクセルサイズへのリサイズなど、多彩なオプションを備えており、プロンプトの作成から出力確認、障害処理までをシームレスに行えます。Codex のログイン枠内で動作するため API キーは不要で、割り当て超過時には報告して停止する設計で、OpenAI SDK などの従量課金 API への安易なフォールバックを防ぎます。このスキルにより、開発者は画像生成タスクをコードベースのワークフローに統合し、効率的かつ予測可能な方法でアセットを作成・編集できます。

対応~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/MrBogomips/skills/tree/HEAD/skills/codex-image-gen

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

codex CLI による画像生成

codex exec には「画像をこのパスに書き出す」オプションはありません。生成された画像は $CODEX_HOME/generated_images/<session id>/ 以下に保存されます。scripts/codex_image.py は非対話型の一回のターンを実行し、そのセッションの画像のみを収集して指定された場所に書き出します。画像が返ってこなかった場合は何も書き出しません。

常にスクリプトを使用してください。 手動で codex exec "catを描いて" を実行すると、多くの場合、散文や ImageMagick の描画結果が返ってきて、出力を探すはめになります。

従量課金 API に決してフォールバックしないでください。 codex が失敗したり割り当て超過になった場合でも、OpenAI SDK や OPENAI_API_KEY を使用しないでください。その失敗を報告して停止してください。Google の従量課金 API については、ユーザーが明示的に要求した場合にのみ、google-image-gen を使用してください。

使用方法

スキルディレクトリから実行するか、スクリプトの絶対パスを指定してください。実行には約 30~60 秒かかります。

python3 scripts/codex_image.py -p "夕暮れの濡れた石壁に寄りかかる一台の赤い自転車、シネマティックな写真" -o bike.png
目的コマンド
アスペクト比(モデルへのヒント)-p "..." -o out.png --aspect 9:16
参照画像-p "..." -o out.png -r ref.png [-r ref2.png]
画像の編集--edit v1.png -p "空を紫色にして" -o v2.png
複数バージョン-p "..." -o opt.png -n 3(opt.png, opt-2.png, opt-3.png を保存)
正確なピクセルサイズ-p "..." -o cover.png --aspect 9:16 --fit 1080x1920
長いプロンプト--prompt-file prompt.md -o out.png
プロンプトの確認、消費なし--print-prompt を追加
  • 出力ファイルの拡張子は実際のフォーマットに従います。bike.jpg として PNG バイトを要求した場合、bike.png として保存されます。スクリプトは書き込んだ各パスを表示します。
  • --aspect は結果の形状を決めるだけです。--fit WxH はその後のサイズを保証します。黒帯でパディングするか(--fit-mode pad、デフォルト)、中央でクロップします(--fit-mode crop)。常に PNG で保存します。--aspect をターゲットに合わせておけば、パディングやクロップは最小限で済みます。--fit には Pillow が必要で、codex 実行前にチェックされます。
  • -n は一度の実行で N バージョンを要求します。モデルがそれより少ない数を返す可能性があり、スクリプトは取得できた画像のみを保存します。
  • --edit はその画像をターゲットとして添付し、プロンプトで指示された部分だけを変更するようモデルに指示します。

プロンプトの書き方

スクリプトは実際の画像ツール呼び出しを強制する文言を追加するため、--prompt には画像の内容だけを記述します。ラベル付きの簡潔な指定が効果的です。

被写体: 一台の赤い自転車、端の塗装が剥がれて金属が露出している
シーン: 濡れた石造りの港の壁に寄りかかり、向こうに街灯
スタイル: シネマティックな写真、浅い被写界深度
照明: 夕暮れ、低い暖かい太陽、濡れた石に反射
テキスト(そのまま): "NO SPARE"
避けるもの: 人物、透かし、余計な自転車
  • 必ず表示したいテキストは引用符で囲み、短くしてください。長い文字列は誤って綴られることがあります。
  • 表示してはいけないものを明示してください。透過切り抜きの場合は、透明な背景を要求し、.png で保存してください。
  • --edit では、変更内容(「街灯を削除」)と、維持すべきもの(「自転車、フレーミング、照明はそのまま」)を両方指定してください。1 回のパスで 1 つの変更だけ行ってください。
  • 編集はピクセル単位の修正ではなく再生成です。フレーミングやディテールがずれ、パスを重ねるごとにその影響が蓄積されます。チェーンは短く保ち、変更してはいけない部分は合成で戻すことを検討してください。

生成後

画像を確認できる手段を使って、結果を引き渡す前に必ずチェックしてください。モデルはテキスト、数、要求した詳細を誤ることがあります。不正確な場合は、より明確なプロンプトで再実行するか、--edit で修正してください。

障害

スクリプトは明確なメッセージと共に非ゼロで終了し、何も書き込みません。

  • codex CLI が見つからない / ログインしていない: codex をインストールして codex login を実行してください。CODEX_BIN で別のバイナリを指定できます。
  • 割り当て超過: codex が報告するリセットを待つか、別のアカウントを使用してください。ループで再試行しないでください。
  • 画像が生成されなかった: モデルがテキストで応答しました。応答内容が表示されるので、より単純な画像要求で再実行してください。
  • タイムアウト: 実行が単に遅かった場合にのみ、--timeout(デフォルト 900 秒)を増やしてください。
  • --fit 使用時に Pillow がない: pip install Pillow を実行するか、--fit を外してください。

関連スキル