Codex画像ジョブ
すべてのプロジェクトまたはバッチ画像ジョブはランナーを通して実行してください。これらのジョブに対して codex exec や codex-imagegen を手動で呼び出さないでください。
python scripts/codex_image.py "<プロンプトまたは@prompt.txt>" out.png [--ref room.jpg] [--size 1536x1024] [--force]
絶対的な出力パスが表示されます。Bash呼び出しには、ランナー自身の --timeout(デフォルト420秒)よりも長いタイムアウトを設定してください。
| 終了コード | 意味 | 対応 |
|---|---|---|
| 0 | 保存完了 | 画像を確認する |
| 1 | 使用方法エラー(例:出力ファイルが既に存在する) | 呼び出しを修正する;--force は出力を置き換えますが、自身の参照画像は置き換えません |
| 2 | Codexが画像を生成しなかった | 出力されたメッセージを読み、原因を修正してから一度再試行する |
| 3 | 画像呼び出しで参照画像が省略され、何も保存されなかった | 同じコマンドで一度再試行する |
| 124 | タイムアウト内にセッションまたは画像が得られなかった | codex login status とネットワークを確認する |
ルール
- すべての出力を指示に対して確認すること。 終了コード0は1つの画像がこのセッションから生成されたことを示すだけで、それが正しいとは限りません。
- チェーン編集は一度に一つの変更のみ行う: 各出力が次の
--refになります。ステップごとに新しいファイルに書き込んでください。 - 部屋の一貫性を保つ: 変更してはいけないもの(カメラ位置、形状、開口部など)を明示し、参照画像が2枚以上ある場合はそれぞれの役割を名前で指定してください。参照画像は最大4枚までです。
- クォータを把握する。 1回の実行で1画像消費され、実行は並列に行えますが、大きなバッチの前に消費数を宣言し、最初の画像が機能することを確認してから残りを実行してください。
- アルファチャンネル付きPNG参照: JPG変換でアルファが平坦化されるため、
--keep-png-refsを指定してください。
ランナーが存在する理由
codex-cli 0.164.0、2026-11-04時点で、30回の画像実行のセッションログから計測しました。
| 障害 | 原因 | ランナーの対処 |
|---|---|---|
| タイムアウトまでハング | codex exec が開いた標準入力パイプを待つ:パイプがあると45秒(タイムアウトで停止)、閉じていると4秒 | プロンプトを標準入力に送信した後、すぐに閉じる |
| 名前の下に間違った画像 | 保存を指示されたCodexが共有 ~/.codex/generated_images を検索し、最新のものを取得して別の実行の画像をコピー | Codexに保存させず、ランナーは generated_images/<自身のセッションID>/ のみを読み取る |
| 1つの出力に最大7回の画像呼び出し | Codexが保存方法を見つけられず、再生成 | Codexを最初の完全な画像で停止させる |
| 参照画像が無視され、部屋がでっち上げられる | 画像ツールは num_last_images_to_include が設定されている場合のみ添付を認識 | パラメータを明示的に指定し、セッションログを読み、省略された場合は終了コード3を返す |
| チェーン編集で部屋が失われる | 家具パスごとにPNGが渡されると失われる;JPGと名前付きパラメータで保持(相関関係、確定的な原因ではない) | ffmpegがPATH上にある場合、PNG参照をJPGに変換する |
実際のCLIで同日に確認:3つの編集(うち2つはPNG参照に対して並列実行)、各約25秒、画像呼び出し1回、各色変更が保持されました。
どうしてもプラグインの codex-imagegen を使用する場合
codex-bridge 1.2.0には上記の障害があります。</dev/null を付け、一度に1ジョブ、JPG参照、プロンプト内に「画像ツールを num_last_images_to_include:1 で正確に1回だけ呼び出す」と明記して呼び出し、結果を確認してください。