Claude Codeの画像生成SkillsをNano Banana ProからGPT Image 2に置き換えた
2026/04/22 07:21 公開
これまでnote記事のサムネ等の画像生成にはGoogleのNano Banana Pro(Gemini 3 Pro Image Preview)を使ってきたんですが、OpenAIからGPT Image 2がリリースされたので、Claude Code上の画像生成Skillsを乗り換えてみました。
ついでに、この記事のサムネ自体もGPT Image 2で生成しています。これまで使っていた構図見本用の参考画像は渡さず、記事テーマだけからプロンプトを組み立てて投げた実験です。
GPT Image 2で作れる画像の幅
触ってみて一番驚いたのは「大量の日本語テキストを含む高品質画像を、プロンプト1発で出してくる」ところ。ロゴ、見出し、長文、手書き風メニュー、表形式のラベル——どれだけ日本語が並んでも崩れません。

1枚目は居酒屋のメニューボード。料理名と価格、商品画像やカテゴリの装飾まで、全部の日本語が正確に描画されています。単純な文字列じゃなく「参考画像・筆文字・手書き風」を含む複雑なシーンでこれ。

2枚目は企業HPっぽい社員紹介ページ。既存のロゴ画像をAPIに参照として渡すだけで、そのトンマナを再現して、スーツの女性写真と氏名・所属・入社年・自己紹介本文を含む完全な社員紹介レイアウトを1枚にまとめてくれました。これもプロンプト1回で。

3枚目はお茶屋さんのポスター風。縦書きのメインタイトル・サブタイトル・明朝体キャプション・英字コピー・ロゴ風の印まで、雑誌レベルのレイアウトで一気に出力されます。
この「レイアウトをまるごと組んでくる」挙動が、GPT Image 2の最大の強みです。
Nano Banana Proとの比較
Nano Banana Proに乗り換えたときも日本語出力の精度には驚いたので、両者とも日本語の描画能力は実用レベルで、ここは甲乙つけがたいです。
差がはっきり出たのはレイアウト構成能力
- Nano Banana Pro → プロンプトで「中央に〜、左に〜、右に〜」まで細かく指示を書かないと、構図が単調になりがち
- GPT Image 2 → 「居酒屋メニュー」「社員紹介ページ」「ポスター」くらいの抽象的な指定だけで、構図を自発的に組んでくれる
簡単なプロンプトでサムネ・バナー・マニュアル・社員紹介・メニュー表などの素材がそのまま使える品質で出てくるのが大きい。しかも、コストがほぼ変わらない(どちらも1枚あたり20〜30円前後)ので、迷わずGPT Image 2に乗り換えました。
APIキー以外に必要だったもの
今回のハマりポイントが2つありました。
- 組織認証(Organization verification)
これが一番の落とし穴。GPT Image 2はOpenAIダッシュボードで本人確認を済ませていないと403で弾かれます。反映まで僕は数時間かかりました。下記URLから本人確認書類や顔認証を提出させる必要があります。
https://platform.openai.com/settings/organization/general
- 環境変数の用途別分離
必須ではないですが、地味に大事なところ。最初は汎用のOPENAI_API_KEYをそのまま使おうとしたんですが、画像生成専用のキーに分離しました。
code# ~/.zshrc export OPENAI_IMAGE_API_KEY="sk-..."
理由:
- ChatGPT API用のキーと混ぜると、キー流出時の影響範囲が広がる
- 画像生成は単価が高めなので課金監視を切り分けたい
作ったもの
~/.claude/commands/gpt-image.mdにskill定義を置いて、実体のPythonスクリプトを~/Documents/WebApps/own-services/gpt-image/gpt_image.pyに配置。
既存の/bananaと同じインターフェースにしたので、コマンド名を置き換えるだけで移行できます。
code# 使い方は/bananaと同じ /gpt-image --aspect=16:9 --quality=high "プロンプト" # 画像編集も対応 /gpt-image --image=base.png --mask=mask.png "空を夕焼けに変えて" # 複数画像の参照生成(ロゴや既存デザインを参照素材として渡せる) /gpt-image --image=logo.png "この会社ロゴを使った社員紹介ページを作って"
スクリプト側のポイント
Python SDK経由でシンプルに。
codefrom openai import OpenAI client = OpenAI(api_key=os.environ["OPENAI_IMAGE_API_KEY"]) result = client.images.generate( model="gpt-image-2", prompt=prompt, size="1536x1024", # 16:9 quality="high", n=1, ) image_bytes = base64.b64decode(result.data[0].b64_json)
sizeは1024x1024(1:1)/1536x1024(16:9)/1024x1536(9:16)を用意qualityはlow/medium/high/auto- レスポンスは
b64_jsonで返ってくるのでデコードしてPNG保存
画像編集はclient.images.edit()で、imageパラメータにファイルを渡すだけ。複数画像も配列で渡せます。
このサムネを「参考画像なし」で作った実験
/banana運用時は「構図見本(business / impact / soft)」の参考画像を用意していて、--ref=impactみたいに渡して構図だけパクる運用でした。
今回はあえて参考画像なしで、記事テーマをそのままプロンプトに渡して任せています。
プロンプトの骨子:
- 中央に「画像生成AIを乗り換えた」の太字日本語
- 左にバツ印付きのバナナ(乗り換え元=Nano Banana Pro)
- 右にOpenAI公式ロゴ(新しい側)
- 間に右向き矢印(遷移)
- 緑ベース(抹茶・モスグリーン・ミント)、テックブログ調
結果、バナナ×→矢印→OpenAIロゴの文脈をちゃんと読み取って、抹茶の茶筅まで背景に添えてくる始末。参考画像なしでも記事の意図を汲んで構図まで提案してくれるのが、GPT Image 2の強みを如実に示しています。
まとめ
- Claude Codeで
/gpt-imageskillを作って、画像生成をGPT Image 2に乗り換えた - 両者とも日本語描画は強い。差が出るのはレイアウト構成力と、情報量の多い日本語デザインの破綻しなさ
- GPT Image 2は簡単なプロンプトでもそのまま素材として使える品質でレイアウトを組んでくる
- 組織認証が必須。環境変数は
OPENAI_IMAGE_API_KEYで用途別に分離
技術スタック
- Claude Code skill(
~/.claude/commands/gpt-image.md) - OpenAI Python SDK(
openai2.32.0) - モデル:
gpt-image-2(quality=high/size=1536x1024)
Claude Codeで自分専用の画像生成コマンドを作っておくと、/gpt-image "..."だけでターミナルから叩けて便利です。気になった方はぜひ試してみてください。
Claude Designと組み合わせたら、簡単なコーポレートサイトやLPは一瞬で超クオリティのが出来上がりそうですね(試してみたら共有します)
Lステップ × AI を同時に使いたい方へ
LINE公式のWebhook、1つしか設定できなくて困っていませんか?
LINE公式アカウントでは、Webhookの送信先URLを1つしか設定できません。そのため、Lステップを導入している企業が「DifyでAIチャットボットも動かしたい」「自社システムにもイベントを飛ばしたい」と思っても、Webhookの奪い合いになってしまいます。
結果として、片方を諦めるか、中継サーバーを自前で構築するか——どちらにしても時間とコストがかかる選択を迫られます。
L-Proxyなら、1つのWebhookを複数サービスに同時転送
LINE公式アカウントとサービスの間にL-Proxyを挟むだけで、Webhookを好きな数だけ分岐できます。
- Lステップはそのまま、AIチャットボットを追加導入
- 自社の顧客管理システムにもリアルタイムでイベント連携
- 設定はURL貼り替えだけ。コード不要、最短5分で導入
今なら2週間の無料トライアル実施中。クレジットカード不要で、すべての機能をお試しいただけます。