画像生成のAPI代を0円にした|ChatGPTサブスクのCodex CLIを流用する
AIで記事生成を自動化していくと、ある時点で妙なことに気づきます。
文章はサブスクの範囲でいくらでも書けるのに、画像だけ、生成するたびにお金が出ていく。
1枚数円です。単発なら気になりません。でも毎日回すパイプラインに組み込むと話が変わります。ヘッダー1枚と本文2枚で1日3枚。月に90枚、100枚と積み上がると、月末の明細で「文章はタダなのに画像で課金されてる」という状態になる。
金額の問題というより、構造がちぐはぐです。同じ「AIに作らせる」なのに、片方だけ従量課金が残っている。
結論から言うと、これは0円にできました。すでに払っているChatGPTのサブスクで画像生成APIの代わりになるからです。
Codex CLI に画像生成が内蔵されている
OpenAIのCodex CLIには image_gen というビルトインツールがあり、その中身は gpt-image-2 です。
重要なのは認証の経路です。Codex CLIはChatGPTのサブスク認証で動きます。つまり OPENAI_API_KEY を設定しません。APIキーを使わないので、API課金が発生しません。
codex exec --enable imagegenext "この記事のヘッダー画像を生成して"
これだけです。生成された画像は ~/.codex/generated_images/ に保存されます。
私の場合は Claude Code をオーケストレーターにして、記事の企画・執筆までをClaude Code(こちらもサブスク認証)にやらせ、画像生成だけをPython経由でCodex CLIに投げています。
cron 5:00
|
v
+---------------+ subprocess +---------------+
| Claude Code | -----------> | Codex CLI |
| 企画/執筆/推敲 | (Python) | codex exec |
| Max サブスク | | --enable |
| | | imagegenext |
+---------------+ +-------+-------+
|
v
gpt-image-2
|
v
~/.codex/generated_images/*.png
使わないもの: ANTHROPIC_API_KEY / OPENAI_API_KEY
どちらもサブスク認証。従量課金は 0 円。
この仕組みで毎朝5時に記事1本ぶんの画像を作っていますが、画像で課金された額は0円のままです。
素直に組むと動かない
ただ、素直に codex exec を呼ぶだけでは動きませんでした。自動化に組み込む過程で4つ踏んでいます。どれも「エラーが出ないまま失敗する」タイプなので、原因にたどり着くまで時間を溶かしました。
1. --enable imagegenext がないと、画像がファイルに保存されない。 成功したように見えるのに、生成物がどこにも無い。これが一番厄介でした。
2. プロセスが無言でハングする。 subprocess から呼ぶとき stdin を明示的に閉じないと、Codexが標準入力を読みに行って永久に待ちます。cronで回すと朝まで固まります。
3. サンドボックス環境下だと毎回生成に失敗する。 CODEX_SANDBOX_NETWORK_DISABLED などの環境変数が残っていると通りません。親プロセスから引き継がれて混入するのが盲点でした。
4. モデルが画像生成をサボって「自分で描く」。 強く禁止しないと、ImageMagickやPILで"それっぽい画像"を自前描画してきます。指示に「自前描画は禁止」と明記する必要があります。
そして最後に、生成物のパスがツールから返ってきません。実行前後で generated_images/ のファイル一覧を撮って、差分で特定しています。
図解を画像で作ってはいけない
これは実装の話ではなく、使い方の話です。
AI生成画像に文字は入れられません。 日本語は確実に崩れます。だから「〜の構造図」「〜のフロー図」と称した文字なしの抽象画は、図を期待した読者を裏切ります。
フロー図・構造図・比較表は、この記事の上にあるようなコードブロック内のASCII図で書くのが正解です。そのほうが用語も数値も正確に出せて、検索にも乗ります。
AI生成画像は「読み物としてのつかみ」担当であって、情報を運ぶ役ではない。この線引きをしてから、記事の見た目が安定しました。
実装の全文とハマりどころ
この記事では要点だけ書きました。実際に動かすには、フォールバック設計(画像生成に失敗しても記事本体は完成させる)や、生成物のパス特定のコードが要ります。
Pythonコードの全文と、4つの罠それぞれの具体的な回避方法は、noteに実装記録としてまとめました。こちらも無料で読めます。
まとめ
- Codex CLIの
image_gen(gpt-image-2)は、ChatGPTサブスクの認証で動く。APIキー不要、API課金ゼロ --enable imagegenextとstdinの閉じ忘れが二大ハマりどころ。どちらも無言で失敗する- 図解を画像でやらせない。文字は必ず崩れる。ASCII図で書く
「文章はサブスクでタダなのに画像だけ課金される」という構造に心当たりがあるなら、すでに払っているサブスクの中に答えがあるかもしれません。