Claude Codeから画像を作るのに、OpenAIのAPIキーは要りません。ブラウザでログイン済みのChatGPTをClaude Codeから操作すれば、画像生成は月額プランの中で終わります。入口は4つあり、私が本番で毎日回しているのはそのうち1つです。
残り3つの向き不向きと、実際に詰まった4カ所を全部書きます。
画像生成でAPIキーを使うと、作った枚数だけ請求が積み上がります。文章の生成と違って、画像は1枚が重い。試し刷りを10枚、20枚と回した月末に金額を見て手が止まる、という経験をした人は多いはずです。
私はここを「APIを使わない」で片づけました。すでに払っているChatGPTの月額の中で画像を出す方法が、少なくとも4つあるからです。
前提:Claude Code自身は、絵を描けません
Claude Codeが画像を出すときは、必ず外のどれかに描かせています。
ここを勘違いしていると、この記事の話は全部ぼやけます。Claude Codeはテキストを扱うツールで、画像生成の機能を内蔵していません。「Claude Codeで画像を作った」と言うとき、実際に起きているのは次のどちらかです。
ひとつは、Claude Codeが画像生成のAPIを呼ぶこと。APIキーを設定して、生成のたびに課金される道です。もうひとつが、すでにログインしているブラウザの画面を、Claude Codeが代わりに操作すること。
人間が手でChatGPTに「〇〇の画像を作って」と打ち込む作業を、そのまま自動でやらせます。
後者なら、課金の入口はChatGPTの月額だけです。APIキーは1文字も要りません。

入口は4つある
経路は「APIキーを使う」か「ChatGPTの月額を使う」かで大きく割れ、後者の中に4つの入口があります。
ひとつずつ、何が必要で、どんな人に向くかを書きます。先に結論だけ言うと、手軽さなら①、安定と量なら②、環境をいじりたくないなら③、自分のスクリプトに組み込むなら④です。
①Codex CLI ― 一番短い道。ただし「無料」ではありません
OpenAIのCodex CLIにOAuthでログインすると、APIキーなしで画像生成が呼べます。ただしChatGPTの利用枠を、通常の会話より速く食います。
Codex CLIはChatGPTのアカウントにOAuthでログインします。このとき手に入るのはセッショントークンで、sk-から始まるAPIキーではありません。だからこのトークンで画像生成のREST APIを直接叩いても401で弾かれます。
ここを試して詰まる人が多いところです。
代わりに、Codex CLIの中に画像生成のツールが内蔵されています。Codexにタスクを渡すと、Codexが内部でそのツールを呼び、OAuthのまま画像生成につないでくれます。
出力はCodexの生成画像フォルダに落ちるので、そこからプロジェクトのフォルダへコピーします。
Claude Codeから見ると、やることは「Codex CLIを1回叩く」だけです。ブラウザもポートも要りません。手数はこの4つの中で断然少ない。
問題はコストの見え方です。OpenAIの公式ヘルプとCodexの料金ページに、はっきりこう書かれています。
- Codexの利用はChatGPTのプラン枠を消費する
- 画像生成は通常のメッセージより3〜5倍速く枠を消費する
- 画像には「期間あたり50枚」のような専用の枠が別に設定されている
(出典: OpenAIヘルプ「Using Codex with your ChatGPT plan」/ OpenAI Codex 料金ページ)
つまり「APIを避けたから無料」ではありません。追加請求が来ないだけで、月額の枠は普通に減ります。しかも減り方が速い。少量・高品質の1枚勝負には向きますが、漫画のコマを何十枚も作るような使い方をすると、その日のうちに枠が尽きます。
私はここを実際に確かめて、量が要る仕事は②に寄せました。
②Chrome DevTools MCP と CDP直結 ― 本番で毎日回しているのはこれです
リモートデバッグを開いたChromeにClaude Codeからつなぎ、ChatGPTの画面をそのまま操作します。量を回すならこれ一択です。
やっていることは単純で、普段自分が触っているChatGPTの画面を、Claude Codeが代わりに操作しているだけです。プロンプトを入力欄に入れて、送信を押して、画像が出るのを待って、保存する。人がやる手順と1対1で同じです。

※ Claude Codeが投げたプロンプトと、返ってきた画像です。この記事の図解もこれで作りました。
つなぎ方は2通りあります。
Chrome DevTools MCP経由は、Claude CodeにChrome DevToolsのMCPサーバーを登録して、ブラウザ操作のツールとして呼ぶやり方です。素直で、ツールとして扱えるので他の作業とも混ぜやすい。
CDP直結は、MCPを介さずにChromeのリモートデバッグポートへ直接つなぐやり方です。こちらを覚えておく価値があるのは、MCPがそのセッションで使えないことが普通にあるからです。
Chrome DevToolsのMCPはClaude Codeの起動時にChromeへ接続しにいく作りなので、セッションの途中でChromeを立ち上げても、MCP側はもう繋がりません。
この状態でMCPを待っていると詰みますが、リモートデバッグに直接話しかけるぶんには何の問題もありません。Claude Codeの再起動も要りません。
大量に作るときの回し方も、ここで決まります。私は「作りたい画像の一覧(プロンプトと保存先ファイル名の組)」を1つのファイルに書いて渡し、まだファイルが存在しないものだけを拾って作り直す形にしています。
途中で止めても、もう一度走らせれば続きから再開します。何十枚も作る作業で、これがあるのと無いのとでは復旧の手間が桁で変わります。

※ この記事の画像3枚を作ったときの実際のログです。1枚ごとに新規チャットへ移った記録です。
もうひとつ、画像は1枚ごとに新しいチャットで作ります。同じチャットの中で4枚以上続けて生成すると、ChatGPTの画面が不安定になって送信ボタンが押せなくなる事象を実際に踏みました。1枚ごとにチャットを切ると、この症状は出なくなりました。
この②の起動オプションとタブの指定は、文章で読むより実物を見たほうが速い部分です。記事の最後で「接続キット」として配っているので、手を動かす段になったらそちらを見てください。
③Claude in Chrome ― ポートを開けたくないならこれ
Chrome拡張機能なので、リモートデバッグポートを開ける必要がありません。速度は落ちますが、環境をいじりたくない人にとっては一番手前の入口です。
②はChromeを専用の設定で起動し直さなければいけません。会社の端末で勝手にデバッグポートを開けたくない、そもそもChromeの起動オプションを触りたくない、という事情は普通にあります。そういうときはこちらを選びます。
拡張機能をChromeに入れ、Claude Codeから拡張機能に話しかけて画面を操作します。ポートの設定も、専用プロファイルの用意も要りません。セットアップは拡張機能を入れるだけです。
正直に書くと、私はこれを日常では使っていません。②より遅いからです。ただ「遅いから使っていない」だけで、動かないわけではありません。1日に数枚しか作らないなら、この遅さは体感でほぼ問題になりません。
接続の面倒さと速度を交換していると考えると分かりやすいと思います。
④Playwright ― 自分のスクリプトに組み込みたいとき
Claude Codeを介さず、スクリプト単体でブラウザを動かしたいときの選択肢です。
Playwright(および派生のPatchright)でブラウザを起動し、ログイン済みのCookieを流用して画面を操作します。①〜③と違って、Claude Codeが常駐していなくても動きます。
定期実行や、他のツールに組み込む使い方ならこれになります。
そのぶん、画面の構造が変わるたびに自分で直す責任も自分に来ます。生成サービス側の画面は平気で変わるので、動かなくなったときに直せる人向けです。
実際に詰まった4カ所
4つとも「エラーメッセージが出ない」種類の詰まり方をします。だから原因に辿り着くのに時間がかかりました。
1. プロファイル名に空白を入れると、別のChromeを掴む
Chromeを専用の設定で起動するとき、プロファイルの置き場所を指定します。このフォルダ名に空白が入っていると、指定が途中で2つに割れます。
たとえばDebug Subaruという名前にすると、Debugまでがプロファイルの指定として読まれ、余ったSubaruはURLとして解釈されて別のウィンドウに新しいタブで開きます。
そして本人は、狙ったプロファイルではなくDebugのほうを掴んでいます。
さらに悪いことに、そのDebugをすでに別の作業が使っていると、こちらのChromeは既存のプロセスに処理を引き渡して、自分は終了します。画面上は何も起きません。症状として出てくるのは「起動したはずなのにポートが応答しない」だけです。
解決は簡単で、フォルダ名に空白を入れない。これだけです。私は専用プロファイルの名前から空白を全部外しました。
2. 専用Chromeは途中で落ちる。落ちても終了コードは0で返る
長時間の生成を回していると、専用のChromeが落ちていることがあります。厄介なのは、落ちた状態で生成を走らせると、1枚ずつ0秒で空振りして、しかも正常終了として返ってくることです。
ログには「終わりました」と並び、終了コードも0。でもフォルダには1枚も増えていません。「成功した枚数」を数えて完了と判断していると、この空振りを見逃します。
対策は、生成に入る前にポートが生きているか叩いて確認すること。応答が返らなければChromeを立て直し、タブも取り直します(落ちた時点で前のタブは死んでいます)。
3. タブを固定しないと、別の作業の画像が自分のフォルダに入る
これが一番怖い詰まり方でした。
生成のスクリプトは、既定では「最初に見つかったChatGPTのタブ」を掴みます。同じChromeを別のセッションも触っていると、両方が同じタブを奪い合います。送信のたびに相手のタブが動き、相手が作った画像が自分の保存先に落ちてきます。
実際に、制作サンプル19枚のうち4枚が、まったく別の案件の画像でした。中身は自社の料金表です。気づかず公開していたら、社外に出す資料に自社の料金表が載っていました。
対策は2つあります。ひとつは生成の前に自分専用のタブを1枚作り、そのタブを指定して使うこと。1枚しか作らないときも省略しません。もうひとつは出来上がった画像を1枚ずつ目で見ること。混入した4枚は、指定していない縦横比で揃っていました。
全部を1枚に並べたコンタクトシートを作り、寸法と縦横比を焼き込んでおくと、並べた時点で異物が浮きます。

※ 各セルの下に、ファイル名と寸法と縦横比を焼き込んでいます。指定していない比率が混ざっていれば、並べた時点で分かります。
ハッシュの重複チェックでは、この事故は絶対に見つかりません。別の画像なのでハッシュは当然違うからです。
4. ウィンドウを最小化すると、急に遅くなる
裏で回したいので専用のChromeは最小化しておきたい。ところが最小化した瞬間に、Chromeが「この窓は見えていない」と判断して描画を節電モードに落とします。生成が目に見えて遅くなります。
これは起動時のオプションで止められます。バックグラウンドでの間引きを無効にする指定を3つ付けておくと、最小化したまま放置しても速度が落ちません。逆にこれを付けずに「なぜか遅い」と悩むと、原因に辿り着けません。
なお、このオプションはChromeを起動し直さないと効きません。すでに動いている専用Chromeに後から足すことはできません。
結局どれを選ぶか
作る枚数と、環境をどこまで触れるかで決まります。
月に数枚なら①のCodex CLIが一番速く始められます。手数が少なく、ポートもブラウザも要りません。枠の減りが速いことだけ頭に入れておけば十分です。
漫画のコマや図解を何十枚も作るなら②です。専用Chromeを立てる手間はかかりますが、途中から再開できることと、失敗した分だけ拾い直せることが効いてきます。私はここに落ち着きました。
端末の設定を触れないなら③。速度を諦める代わりに、拡張機能を入れるだけで動きます。
Claude Codeの外で自動化したいなら④。壊れたときに自分で直す前提です。

ブラウザとのつなぎ方そのもの(4つの方法と、実際に詰まった5カ所)は、続きの記事にまとめています。画像を押すと開きます。

受け取れるもの
ここまでで「なぜその経路なのか」は全部書きました。残っているのは、実際に投げているコマンドと起動オプション、そして専用プロファイルの作り方です。
これを1つにまとめた「Claude Code 画像生成 接続キット」を用意しました。4つの経路それぞれのセットアップ手順書が入っていて、中身をコピーしてClaude Codeに貼り付けるだけで環境ができます。
専用Chromeの起動スクリプト(Windows / Mac)と、接続を確かめるスクリプトも同梱しています。
初心者向けの使い方マニュアル(PDF)と、4経路の詳しいリファレンスもつけました。読み物としても、Claude Codeに読ませて使う形でも渡せる中身です。
受け取り方はこの3つです。
- 下の画像から公式LINEに登録する
- 届くアンケートに答える
- キーワードを送る

よくある質問
Q. OpenAIのAPIキーは本当に一切要りませんか。
要りません。この記事の4つはすべて、すでに払っているChatGPTのアカウントを使います。APIキーが必要になるのは、他の人に配るツールを作るときです。その場合は自分の枠を他人に使わせないよう、利用者ごとにキーを持ってもらいます。
Q. ChatGPTの無料プランでも動きますか。
画像生成の機能が使えるプラン(Plus / Team / Enterprise など)が前提です。ブラウザを操作する方式は「人が手でやる操作を代わりにやる」だけなので、人が手でできないことはできません。
Q. Codex CLIとブラウザ操作は、どちらが枠を食いますか。
Codex CLI経由は公式に「画像生成は通常のメッセージより3〜5倍速く枠を消費する」と明記されています。ブラウザ操作は、人が手でChatGPTに作らせるのと同じ扱いです。どちらも月額の中ですが、枚数が増えるほど差が出ます。
Q. リモートデバッグポートを開けるのは危なくないですか。
接続を受けるのはその端末の中だけです。ただしChromeが動いている間は、同じ端末の中からは触れる状態になります。作業が終わったら専用のChromeを落とす運用にしておけば十分です。ポート自体を開けたくないなら、拡張機能を使う③を選びます。
Q. 普段使いのChromeをそのまま使ってはいけませんか。
おすすめしません。最近のChromeでは、普段使いのプロファイルを指定するとデバッグ接続が拒否されます。加えて、自動操作の途中で自分がタブを触ると、両方が壊れます。専用のプロファイルを別に用意するのが結局いちばん速いです。
Q. 複数の画像を同時に作れば速くなりますか。
2本までは速くなります。実測で、6枚を1本ずつ回すと6分20秒、2本に割ると2分55秒でした。ただし3本以上に増やすと「リクエストが多すぎます」と返って全部止まります。私はこれでアカウントを一時的に制限され、同時に走らせるのは合計2本までと決めました。
Q. 生成した画像が指定と違うものになることはありますか。
あります。原因はふたつで、ひとつは上に書いたタブの奪い合い。もうひとつは、全画像に共通で付けているスタイルの指定と、その1枚の内容が矛盾しているときです。
たとえば全部に「薄暗い室内の照明」と付けたまま「夕暮れの商店街」を頼むと、指示の弱いほうが負けて室内の絵が出ます。共通の指定を使うときは、屋外や俯瞰などその照明では成立しない絵を先に洗い出して、その1枚だけ文を差し替えます。