画像生成
2つのモデルファミリー、3つのジョブ。
対応モデル
| モデルID | ファミリー | 用途 | コスト(1024×1536、2026-10-02計測) |
|---|---|---|---|
gpt-image-2.5-sunburst | OpenAI(Images 2.5、2026-09-08) | デフォルト。出荷されうるものすべて。主要リーダーボード(生成、編集、テキストレンダリング、ポートレート)でNo.1 | max ≈ $0.165、約90秒 · high ≈ $0.041、約35秒 |
gpt-image-2.5-flare | OpenAI(Images 2.5) | クイックラフ — 方向性の探索、プロンプトのテスト。Sunburstと同じプロンプトで約2倍高速 | medium ≈ $0.01、約15秒 |
gemini-3-pro-image | Google(Nano Banana Pro) | 投票とレビューが分かれる際の自然な肌/髪のクローズアップ。最大14個の参照画像 | $0.134(1K/2K)· $0.24(4K) |
gemini-3.1-flash-image | Google(Nano Banana 2) | 極端なアスペクト比(1:4…8:1)、画像検索グラウンディング | $0.067(1K) |
gemini-3.1-flash-lite-image | Google(Nano Banana 2 Lite) | 最も安価なGemini探索。1Kのみ、JPEG出力 | $0.034 |
gpt-image-2 はまだ動作しますが(非推奨ではありません)、2.5モデルのどちらよりも劣ります。Geminiの *-preview モデルIDとすべてのImagenモデルはシャットダウンされています — スクリプトはそれらを拒否します。
このスキルの3つのジョブ
- モデルと品質を選択します。アセットに応じて。reference/model-selection.md を参照。
- プロンプトを作成します。モデルのルールに従って。2つのプロバイダーは正反対のものを要求します:
- OpenAI GPT Image 2.5 はラベル付きセクション(scene / subject / details / constraints)を必要とし、正確なテキストを引用符で囲み、インラインでの除外指定(「余分なテキストなし、ウォーターマークなし」)を受け入れます。reference/openai-gpt-image.md を読んでください。
- Gemini はナラティブ形式の段落を必要とし、否定的な表現は逆効果です(「人物なし」を「誰もいない通り」と書き換えます)。アスペクト比は
imageConfigで指定します。reference/gemini-image.md を読んでください。
- APIを実行します。バンドルされたスクリプトを使用。scripts/README.md を参照。
2.5の品質 — 落とし穴
2.5の品質ラダーは再編成されました。 同じサイズで、2.5の high はgpt-image-2の medium に相当する出力トークンを購入します。2.5の max はgpt-image-2の high に相当するトークン(計測値: Sunburst 1024×1536 high = 1,372出力トークン、max = 5,488)を購入します。古い習慣で "quality=high" をコピーすると、気付かないうちに中程度の詳細の画像が生成されます。
ラフ案は再生成ではなく編集で昇格させます。 新規生成ごとに新しい画像が構成されるため、承認済みラフ案のプロンプトを max で再実行すると、異なる 画像が得られます。代わりに、選択したラフ案を参照画像としてSunburst max 編集に渡し、レンダリング品質のみを変更して他のすべてを保持します。2026-10-02に検証済み:この方法で昇格させたFlare medium ポスターは、構図、人物、ポーズ、色、ヘブライ語テキストを維持し、質感と詳細が向上しました($0.18、85秒)。
| 段階 | モデル + 品質 | 理由 |
|---|---|---|
| 方向性の探索、プロンプトのテスト | Flare medium (--draft) | 約1セント、約15秒なので、6方向で最終版1枚分よりも安い |
| 選択したラフ案を昇格 | Sunburst max 編集、--ref <draft> および reference/openai-gpt-image.md の昇格プロンプトを使用 | ユーザーが選んだ見た目を維持し、詳細を追加 |
| 確定プロンプトからの最終版 | Sunburst max(スクリプトデフォルト) | フル詳細。約90秒、約$0.17 |
| 細かい詳細よりも時間が重要な場合のSunburst | Sunburst high | トークン数1/4、約35秒 |
auto は絶対に使用しないでください。同一の呼び出しでも異なる予算に割り当てられます。
デフォルトのモデル選択 — 30秒ルール
方向性の探索 / 「いくつかクイックオプション」 / プロンプトのテスト?
YES → Flare medium (--draft)。ユーザーの選択をSunburst max編集で昇格 (--ref <draft>)。
NO ↓
肌のテクスチャが重要なフォトリアルな人間の顔のクローズアップ?
YES → まずSunburst max(ポートレート投票でリーダー)。ズームで肌がシャープネス過剰に見える場合は、
gemini-3-pro-image 4Kと比較し、人間に選んでもらう。
NO ↓
3:1を超える超ワイド/縦長バナー(1:4、4:1、1:8、8:1)?
YES → gemini-3.1-flash-image(GPT Imageは3:1まで)。
NO ↓
それ以外 → Sunburst、品質=max。
└── 透明PNG?ネイティブ対応: --background transparent (png/webp)。rembg不要。
アセットタイプ別の完全な決定木: reference/model-selection.md。
リクエストごとのワークフロー
- スコープを確認します。アセットの種類、ブランドコンテキスト、カラー/スタイルの方向性、目標アスペクト比+サイズ、保存先。リクエストにすでに明記されている場合は次に進みます。
- モデルと品質を選択します。上記のルールを使用。選択理由を一文で説明します。
- モデル固有のリファレンスを読む —
reference/openai-gpt-image.mdまたはreference/gemini-image.md。記憶だけで書かないでください。2つのプロバイダーは正反対のプロンプト構造を必要とし、2.5のガイダンスはgpt-image-2のいくつかの習慣を変更しました。 - 透明背景? GPT Image 2.5ではネイティブ対応。Gemini出力または既存画像を切り抜く場合のみ reference/transparent-backgrounds.md を読んでください。
- 対応するテンプレートを開く
templates/内から選択し、プレースホルダーを埋めます。 - 画像内にヘブライ語またはRTLテキスト? 最初に reference/hebrew-rtl.md を読んでください。
- APIを呼び出す前にプロンプトをユーザーに見せる — ただしユーザーが「そのまま実行して」と言った場合は除きます。1回のプロンプトレビューで、ほとんどの高価な再生成を防げます。
- スクリプトを実行します。特に指示がない限り、カレントディレクトリの
./generated-images/<説明的な名前>.pngに保存します。OpenAIスクリプトはレイテンシ、出力トークン、コストを呼び出しごとに出力します — 累計を記録しておきます。 - 保存された画像をReadツールで読む — Claudeはマルチモーダルで、実際にピクセルを見ることができます。 要求事項に照らして批評します: 構図、テキストが引用符で囲まれたとおりに正確に綴られ、1回だけ出現しているか、色、欠陥(文字の崩れ、余分な指、壊れた形状、滑らかな領域のざらつき)。ユーザーが指摘する前に問題を見つけます。
- ユーザーに見せる。
open <パス>を実行し、見えたもの(良い点と悪い点)を要約し、出荷するか、特定の変更を加えて反復するかを提案します。
アセットタイプ別テンプレート
| アセット | テンプレート |
|---|---|
| ブランドロゴ / マーク / ワードマーク | templates/logo.md |
| アイコンセット(一貫したスタイル) | templates/icon-set.md |
| モバイルアプリUI画面 | templates/ui-mobile.md |
| Webダッシュボード / SaaS UI | templates/ui-dashboard.md |
| マーケティングヒーロー画像 / バナー | templates/hero-image.md |
| 商品写真 / ヒーローショット | templates/product-shot.md |
完全な実例については、examples.md を参照してください。
継続キャラクターとストーリーパネル
同じ人物が複数の画像に登場するコミック、ストーリーボード、アニメーションエピソード向け:
-
写真からのキャラクター作成。 写真全体を参照画像として渡してはいけません。編集エンドポイントは写真を再スタイル(ポーズ、服、背景をコピーし、キャプションテキストを追加)してしまい、人物を描画しません。有効なパイプライン:
- まず顔を切り抜く:
python3 <this-skill-dir>/scripts/crop_faces.py photos/ faces/ --sheet faces/_sheet.jpg。 - 切り抜きからアニメ顔を作成する。
- その顔を半身のコスチュームカードに編集し、体型を指定する。
- 人間の承認を得て、昇格する。
プロンプトとレビューループ: reference/characters-from-photos.md。
- まず顔を切り抜く:
-
2人以上のキャラクターがいるシーン。
- FlareではなくSunburst
highでラフ案を作成する。Flareは画像1枚、屋外、字幕付きで描画した。 - 最初の言及で各名前をそのカードに結び付ける例: 「ダナ(画像1の女性)」。
- あらゆる言語の字幕を禁止する。
- スマートフォンやタブレットの画面は後ろからレンダリングされる。画面コンテンツを独立した画像として生成し、合成する。
- FlareではなくSunburst
-
バッチ請求。
credit_balance_exhaustedはOpenAIアカウントの残高不足を意味し、リクエストの不良ではありません。停止し、どのショットが完了したかリストアップし、追加チャージ後に不足分のみを再実行します。
APIキーと依存関係
APIキーは環境変数から取得します。スクリプトを実行するシェルで、自身のシークレットストアから設定します(新しいシェルごとに再度設定が必要です):
OPENAI_IMAGE_API_KEY→scripts/openai-image.sh用GEMINI_IMAGE_API_KEY(またはGEMINI_API_KEY)→scripts/gemini-image.sh用。同じGoogle AI Studioキーは生成ビデオクリップにも機能します
これらのキーは画像生成にスコープ指定されています。チャットや埋め込みに再利用したり、絶対に出力してはいけません — 変数にロードし、エコーしないでください。
ローカルツール(Gemini出力または既存画像の切り抜き専用): rembg (pip install "rembg[cli]" onnxruntime)、オプションでImageMagick。
出力規則
- デフォルト保存先: カレントワーキングディレクトリの
./generated-images/<説明的な名前>.png。 - ファイル名: 説明的なケバブケース(
logo-agentleh-monochrome-v1.png)。ラフ案には-draft-Nを付加(logo-agentleh-draft-3.png)。 - バージョン管理: 反復時は
-v1、-v2、… を追加。以前の生成物を許可なく上書きしない。 - 透明出力: バージョン後に
-transparentを追加。 - macOSでは
open <パス>で生成直後にユーザーに見せる。
反復パターン — 「完璧になるまで反復」自律ループ
エージェントの役割は、ユーザーに尋ねる前に画像を「出荷可能な品質」にまで持っていくことです:
1. 生成(スクリプト呼び出し)
2. Readツールで保存ファイルを読む — Claudeはピクセルを見る
3. 要求事項に照らしてセルフ批評:
- 構図は適切か?(配置、フレーミング、バランス、階層、余白)
- テキストは引用符で囲まれたとおり正確に綴られ、各文字列が1回出現し、読みやすいか?
- 色は正しいか?(HEX一致、パレット準拠)
- 欠陥は?(文字の崩れ、余分な指、壊れた形状、空や背景のざらつき)
- 要求事項は実際に満たされているか?
4. 判断:
- 出荷 → 要求事項を満たしている。ユーザーに見せる
- 編集 → 1箇所の局所的な修正。--ref <前回> と「Xのみ変更」とすべての以前の修正と保持した詳細を再記述したプロンプトで編集
- 書き直し → 根本的なプロンプトの問題。微調整せずに最初から書き直す
5. 停止条件: このアセットで5回の反復を使用、または$3を消費(スクリプトのコストラインを合計)、または出荷可能になった場合
ユーザーが最終判断者ですが — Claudeが最初の判断者です。 不完全な結果を「これでいいですか?」と見せないでください。要求事項を満たしていることを確認した後、または批評を添えて(「ワードマークのカーニングがズレています。次で修正します」)見せてください。
モデル別の仕組み
- GPT Image 2.5編集は
scripts/openai-image.sh --ref <画像>(最大16参照)を介して/v1/images/editsに送信されます。マスクがないと、ターンごとにキャンバス全体が再生成されるため、ドリフトが蓄積します — 毎ターン、新しいリクエストだけでなく、すべての以前の変更と保持したすべての詳細を再記述してください。 領域をピクセル単位で同一に保つ必要がある場合は、プロンプトで保持することを期待するのではなく、承認済み編集を元の画像に合成してください。 - Geminiマルチターン編集:
scripts/gemini-image.sh --ref <前回の出力> --prompt "change X, keep Y"とし、常に「画像内のその他すべて — 構図、照明、色、他の要素 — を正確に同じままにしてください」で終わります。 - ドリフト対策。 同じ画像で3回の反復が成功しなかった場合、戦略を切り替えます: ベースプロンプトを書き直すか、モデルを変更します。
価格
GPT Image 2、2.5 Flare、2.5 Sunburstはトークンレートを共有します(画像出力$30/100万トークン、画像入力$8/100万トークン、テキスト入力$5/100万トークン。Batch APIでは半額)。ただし、画像あたりのトークン数は品質、サイズ、モデルによって異なるため、想定せずにスクリプトが出力するコストを読んでください。Geminiは画像ごとに価格設定されています。完全なテーブルと想定シナリオ: reference/pricing.md。
ヘブライ語 / RTL
SunburstとFlareは両方とも、2026-10-02のテストでヘブライ語の見出しを正しくレンダリングしました(正しい文字、正しい順序、正しい方向、英語とバッジと共に)。まず直接レンダリングを試し、長いヘブライ語の行やライセンスフォントが必要な場合は合成ワークフローにフォールバックしてください。ヘブライ語はGoogleのGemini画像モデルの最高パフォーマンス言語リストに含まれていません — ヘブライ語テキストにはGPT Imageを推奨します。reference/hebrew-rtl.md を参照。
このスキルを使用すべきでない場合
- ユーザーが編集可能なベクターファイル(パス付きSVG)を必要としている場合。これらのモデルはラスターを出力します。
brand-assetsスキル、またはRecraft V4.1 Vector(recraftv4_1_vector、ネイティブSVG、これらのスクリプトには配線されていません)を使用してください。 - ユーザーがサポートされているサイズ外の正確なピクセル寸法(例: 1200×630)を必要としている場合。最も近いサポートアスペクト比で生成し、その後クロップ/リサイズしてください。
- ユーザーが特定の実在人物の実際の写真を必要としている場合。両プロバイダーは拒否するか不正確な似顔絵を生成し、ポリシー上の問題もあります。
- ユーザーがデザインブリーフなしで一般的な「AIアート」を求めている場合 — ChatGPTまたはGeminiアプリに誘導してください。このスキルはデザインワーク用に調整されています。