misonote

# ChatGPT サブスクで agent が自分で画像を作る CLI

Claude Code などの agent が画像を必要としたとき、人手や別途 API キーなしで、既存の ChatGPT サブスクを使って画像を生成・編集できる CLI の紹介です。

2026年6月18日 · 記事 · 公開

このページの目次
1.1. {初心|しょしん}:agent を「{人|ひと}が{絵|え}を{描く|かく}のを{待つ|まつ}」ところで{止めない|とめない}2.2. コマンド{一発|いっぱつ}で、agent が{使える|つかえる}3.3. {核心原理|かくしんげんり}:2つのバックエンド、2つの{課金|かきん}バケット4.なぜ web バックエンドには{本物|ほんもの}のブラウザが{必要|ひつよう}なのか?5.4. image {模型|もけい}、{効果|こうか}は{本当に|ほんとうに}いい6.5. {画像|がぞう}から{画像|がぞう}へ:{参考画像|さんこうがぞう}を1{枚|まい}{渡す|わたす}7.ちょっと{面白い|おもしろい}{仕組み|しくみ}の{落とし穴|おとしあな}:「{生成|せいせい}されたその{画像|がぞう}」をどう{見分ける|みわける}か8.6. agent のために{生まれた|うまれた}{設計思想|せっけいしそう}9.7. {上手|じょうず}

一言ひとことでいうと、Claude Code が「画像がぞうが1まい必要ひつよう」になったときに、**自分じぶんでその画像がぞう描くかく**ようにするものです。人間にんげんが ChatGPT で画像がぞう作ってつくってから貼り戻すはりもどす必要ひつようもなければ、そのためだけに OPENAI_API_KEY別途べっと用意よういする必要ひつようもありません。

Claude Code が<ruby>自分<rt>じぶん</rt></ruby>でWebページに<ruby>足りない<rt>たりない</rt></ruby>あの<ruby>画像<rt>がぞう</rt></ruby>を<ruby>描いた<rt>かいた</rt></ruby>:i do it myself

1. 初心しょしん:agent を「ひと描くかくのを待つまつ」ところで止めないとめない

Claude Code のような agent に、プロジェクトを本当にほんとうにエンドツーエンドでやらせようとすると、いずれ同じおなじかべにぶつかります。画像がぞうが1まい必要ひつようになるのです。

README の hero banner、app のかりアイコン、landing page の挿絵さしえ、prototype の mockup、いくつかの sprite……コードは書けてもかけても描けないかけない。するとフローはここで途切れますとぎれます

  • あるいは OPENAI_API_KEY渡してわたして公式こうしき画像がぞう API を使わせるつかわせる——追加ついかかぎ追加ついか課金かきん追加ついか設定せってい必要ひつようで、しかもあなたの ChatGPT サブスクとは別会計べつかいけいです。
  • あるいはあなたが自分じぶんで ChatGPT を開きひらき画像がぞう生成せいせいし、ダウンロードしてプロジェクトに貼り戻すはりもどす——agent はその待ちぼうけまちぼうけ、「自律じりつ」の2文字もじ跡形あとかたもなくなります。

chatgpt-imagegen の初心しょしんは、このかべ取り払うとりはらうことです。agent が画像がぞう必要ひつようとしたら、自分じぶん作るつくる人手ひとでによる引き継ぎひきつぎはゼロ。 使うつかうのは、あなたがもともと持っているもっている ChatGPT サブスクです。API key は不要ふよう、gateway service を立てるたてる必要ひつようもありません。

2. コマンド一発いっぱつで、agent が使えるつかえる

これは**単一たんいつファイル・依存いぞんゼロ**の Python CLI(標準ひょうじゅんライブラリのみ使用しよう)で、skill として導入どうにゅうすれば、agent はそのまま呼び出せますよびだせます

$ bash
chatgpt-imagegen "a watercolor cat sitting on a windowsill" -o assets/cat.png
# -> assets/cat.png  (1,344,804 bytes)

agent 向けむけ最適化さいてきかした細部さいぶ揃っていますそろっています--quiet のとき stdout は**保存先ほぞんさきパスだけ**を出力しゅつりょくOUT=$(...)受け取りうけとりやすい)、進捗しんちょくバーは stderr へ。さらに各 backend にはプロセス横断おうだん並行へいこうロックがあり、agent が batch fan-out してもアカウントを叩き潰しませんたたきつぶしません

コマンド<ruby>一発<rt>いっぱつ</rt></ruby>:テキストが<ruby>入り<rt>はいり</rt></ruby>、<ruby>画像<rt>がぞう</rt></ruby>ファイルが<ruby>出る<rt>でる</rt></ruby>。API key も<ruby>人手<rt>ひとで</rt></ruby>も<ruby>不要<rt>ふよう</rt></ruby>

3. 核心原理かくしんげんり:2つのバックエンド、2つの課金かきんバケット

これはプロジェクト全体ぜんたいでいちばん重要じゅうよう設計せっけいです。同じ ChatGPT サブスクでも、実はじつは2つ画像生成がぞうせいせいエントリがあり、消費しょうひするのは**別々べつべつ上限じょうげんバケット**です:

2つのバックエンド:web は<ruby>ログイン済み<rt>ログインずみ</rt></ruby>ブラウザ<ruby>経由<rt>けいゆ</rt></ruby>(Codex <ruby>枠<rt>わく</rt></ruby>を<ruby>節約<rt>せつやく</rt></ruby>)、codex は<ruby>計量<rt>けいりょう</rt></ruby>の<ruby>直結<rt>ちょっけつ</rt></ruby>

バックエンドどう画像がぞう出すだすどのわく使うつかう向いているむいているひと
web(デフォルト)chrome-use で**ログイン済みログインずみ本物ほんものの Chrome**を操作そうさし、通常つうじょう会話かいわの中で画像がぞう出すだす会話枠かいわわく計量けいりょうの Codex-usage には**触れないふれない**ノートPC/デスクトップ、ログイン済みログインずみ Chrome を開いているひらいている環境かんきょう無料むりょうアカウントでも使えるつかえる
codexヘッドレスで backend-api/codex/responses に POST し、~/.codex/auth.json再利用さいりようCodex-usage計量けいりょうバケット、たいてい節約せつやくしたいほうサーバー/ヘッドレス agent 、ブラウザなし

デフォルトは autoまず web を試すためす(Codex わく節約せつやく)、ブラウザが使えないつかえない(chrome-use が未導入みどうにゅう / ログイン)場合ばあいだけ codex にフォールバックします。この戦略せんりゃく意味いみは——計量枠けいりょうわく使わずつかわず済むすむなら、使わないつかわない

なぜ web バックエンドには本物ほんもののブラウザが必要ひつようなのか?

直感的ちょっかんてきには、「通常会話つうじょうかいわ画像がぞう出すだす」なら、その backend-api/* インターフェースへ直接ちょくせつ POST すればよさそうです。でも、それはできません:コンシューマーばんのこれらのインターフェースは、Cloudflare の人間確認にんげんかくにん + sentinel の proof-of-work のおくにいるためです——ページ内ページないsentinel/sdk.js がそので token を計算けいさんし、はだかの bearer リクエストはエッジで弾かれますはじかれます

この関門かんもん通れるとおれるのは、ログイン済みログインずみ本物ほんもののブラウザだけです。これが web バックエンドが Chrome を操作そうさし、直接ちょくせつ API を呼ばないよばない理由りゆうのすべてであり、また通常つうじょうのヘッドレス driver ではなく chrome-use本物ほんものの Chrome 接続せつぞくで、反 bot 検証けんしょう通過つうかできる)を使わなければつかわなければならない理由りゆうでもあります。

$ markdown
## 4. image <ruby>模型<rt>もけい</rt></ruby>、<ruby>効果<rt>こうか</rt></ruby>は<ruby>本当に<rt>ほんとうに</rt></ruby>いい

<ruby>枠<rt>わく</rt></ruby>を<ruby>節約<rt>せつやく</rt></ruby>することは<ruby>画質<rt>がしつ</rt></ruby>を<ruby>下げる<rt>さげる</rt></ruby>ことではありません——web バックエンドが<ruby>使っている<rt>つかっている</rt></ruby>のは、ChatGPT のウェブ<ruby>画面<rt>がめん</rt></ruby>にあるあのネイティブ<ruby>画像生成器<rt>がぞうせいせいき</rt></ruby>そのものなので、<ruby>効果<rt>こうか</rt></ruby>は app で<ruby>手打ち<rt>てうち</rt></ruby>するのと<ruby>同じ<rt>おなじ</rt></ruby>です。<ruby>下<rt>した</rt></ruby>の 3 <ruby>枚<rt>まい</rt></ruby>はいずれもこのツールの**<ruby>実際<rt>じっさい</rt></ruby>の<ruby>出力<rt>しゅつりょく</rt></ruby>**です(<ruby>文<rt>ぶん</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby> + <ruby>画像<rt>がぞう</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby>の<ruby>両方<rt>りょうほう</rt></ruby>あり):



| <ruby>文<rt>ぶん</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby> | <ruby>画像<rt>がぞう</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby>:<ruby>水彩<rt>すいさい</rt></ruby>の<ruby>猫<rt>ねこ</rt></ruby>を<ruby>金色<rt>きんいろ</rt></ruby>の<ruby>光<rt>ひかり</rt></ruby>の<ruby>油絵<rt>あぶらえ</rt></ruby>に | <ruby>画像<rt>がぞう</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby>:logo を<ruby>木<rt>き</rt></ruby>の<ruby>看板<rt>かんばん</rt></ruby>に<ruby>貼る<rt>はる</rt></ruby> |
| --- | --- | --- |
| ![<ruby>文<rt>ぶん</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby>:<ruby>白背景<rt>しろはいけい</rt></ruby>の<ruby>苺<rt>いちご</rt></ruby>](https://img.leeguoo.com/media/751116c9-3829-4bde-9000-e4e2cd47ebd4/real-strawberry.png) | ![<ruby>画像<rt>がぞう</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby>:<ruby>金色<rt>きんいろ</rt></ruby>の<ruby>光<rt>ひかり</rt></ruby>の<ruby>油絵<rt>あぶらえ</rt></ruby>の<ruby>猫<rt>ねこ</rt></ruby>](https://img.leeguoo.com/media/7b6038a8-47b1-4f40-add8-7f8177cd4868/real-cat-goldenhour.png) | ![<ruby>画像<rt>がぞう</rt></ruby>から<ruby>画像<rt>がぞう</rt></ruby>:<ruby>木<rt>き</rt></ruby>の<ruby>看板<rt>かんばん</rt></ruby> logo](https://img.leeguoo.com/media/c266f47a-e55a-40ad-8f9b-bbbe755e06fb/real-logo-sign.png) |

5. 画像がぞうから画像がぞうへ:参考画像さんこうがぞうを1まい渡すわたす

参考画像さんこうがぞう-i)を1まい渡すわたすと、ゼロから描くかくのではなく**画像がぞう編集へんしゅう**します——画像がぞうを ChatGPT の入力欄にゅうりょくらんにドラッグして、描き直してかきなおしてもらうのと同じおなじです。2つのバックエンドはそれぞれ実装じっそう異なりますことなります

  • web参考画像さんこうがぞうchrome-use upload 経由けいゆで composer の標準ひょうじゅん <input type="file">注入ちゅうにゅうし、それから編集指示へんしゅうしじ送りますおくります——サイトごとの適配てきはいはゼロ、Codex のわく消費しょうひしません;
  • codex参考画像さんこうがぞうinput_image のコンテンツブロックとしてリクエストに詰めつめ画像がぞうツールを強制的きょうせいてき発火はっかさせます。
$ bash
# logo をサイバーパンクなネオン看板に変える
chatgpt-imagegen "これをサイバーパンクなネオン看板にして" -i logo.png -o neon.png

<ruby>参考画像<rt>さんこうがぞう</rt></ruby>を<ruby>入力欄<rt>にゅうりょくらん</rt></ruby>にドラッグすると、<ruby>編集済み<rt>へんしゅうずみ</rt></ruby>の<ruby>新しい<rt>あたらしい</rt></ruby><ruby>画像<rt>がぞう</rt></ruby>が<ruby>出る<rt>でる</rt></ruby>

ちょっと面白いおもしろい仕組みしくみ落とし穴おとしあな:「生成せいせいされたその画像がぞう」をどう見分けるみわける

web バックエンドは実際じっさいのページを操作そうさしているので、DOM から生成画像せいせいがぞう見つけ出すみつけだす必要ひつようがあります。ここには直感ちょっかん反するはんするポイントが3つあります:

  1. 新版しんばん ChatGPT の画像がぞうbackend-api/estuary/content通りとおり、もう古いふるい oaiusercontent ではありません;
  2. 画像がぞうから画像がぞうのとき、アップロードした**参考画像さんこうがぞうはユーザーの吹き出し内ふきだしない全くまったく新しいあたらしい src で再表示さいひょうじされます**——うっかりすると「自分じぶんがアップロードした元画像もとがぞう」を結果けっかとして取ってとってしまいます;
  3. 生成画像せいせいがぞうは**独立どくりつした画像がぞうカード**で、アシスタントメッセージの要素ようそには包まれてつつまれていません。

したがって正しいただしい判定はんていは:<main>なか画像がぞうホスティングのドメインに一致いっちする新しいあたらしい画像がぞう探しつつさがしつつ、ユーザーの吹き出しふきだし属するぞくする画像がぞうはすべて除外じょがいすることです。

main の<ruby>中<rt>なか</rt></ruby>で<ruby>生成画像<rt>せいせいがぞう</rt></ruby>を<ruby>探す<rt>さがす</rt></ruby>が、ユーザーの<ruby>吹き出し内<rt>ふきだしない</rt></ruby>のアップロード<ruby>画像<rt>がぞう</rt></ruby>は<ruby>除外<rt>じょがい</rt></ruby>する

6. agent のために生まれたうまれた設計思想せっけいしそう

これらの原則げんそくをつなげると、このプロジェクトの設計方針せっけいほうしんはこうなります:

  • 単一たんいつファイル・ゼロ依存いぞん純標準じゅんひょうじゅんライブラリ——agent が持ってもってくればそのまま動きうごきpip install も、仮想環境かそうかんきょうも、常駐じょうちゅうプロセスもありません;
  • skill としてインストール可能かのう——npx skills add leeguooooo/chatgpt-imagegen -g により、Claude Code / Codex / Cursor などから直接ちょくせつ呼び出せますよびだせます
  • デフォルトで節約せつやく——auto モードは優先ゆうせんして計量けいりょうされない web を使いますつかいます本当にほんとうに速さはやさ必要ひつようなとき、またはヘッドレス環境かんきょうでは codex を使いますつかいます
  • 結果けっかはワークスペースへ保存ほぞん——agent が受け取るうけとるのは保存済みほぞんずみのファイルパスで、そのまま repo に入りますはいります
  • 会話かいわ自動じどうアーカイブ——web バックエンドは、毎回まいかい画像生成がぞうせいせい会話かいわを ChatGPT Project(デフォルトは imagegen)に分類ぶんるいし、あなたの履歴りれき汚しませんよごしません

一言ひとことでいうと:これは人間向けにんげんむけ画像がぞうツールに CLI をかぶせたものではなく、「agent が自分じぶん足りないたりない資源しげん作るつくる」ことのために、最初さいしょから設計せっけいされたものです。

7. 上手じょうず

$ bash
# skill として(おすすめ、agent 用)
npx skills add leeguooooo/chatgpt-imagegen -g

# または独立 CLI(依存ゼロ、単一ファイル)
git clone https://github.com/leeguooooo/chatgpt-imagegen

あとはあなたの agent に「README ようの hero 画像がぞう描いてかいて」と一言ひとこといえばOK——残りのこりは agent が自分じぶんでやります。

ツール repo:chatgpt-imagegen裏側うらがわのブラウザ自動化じどうかエンジン:chrome-use

余談よだん:この記事に出てくるでてくる、あえてヘタに描いたかいた落書き風らくがきふう原理図げんりずと、上にある数枚すうまいの**見栄えみばえのいい**サンプル画像がぞうは、全部ぜんぶこのツール自身じしん出力しゅつりょくしたものです。ヘタなのは説明せつめいスタイルで、きれいなのはその本当ほんとう実力じつりょく——このギャップそのものが、いちばん良いよいデモになっています。

次の記事 →
agent にクロスオリジン iframe をクリックさせる:chrome-use がこの難題を攻略

コメント

コメントは即時公開されますが、ポリシー違反時は非表示になる場合があります。

最大 1000 文字。