mcpField
G
gpt-image-2

gpt-image-2

github.com/glebisクリエイティブ・メディア403209 回インストール3 日前に更新
リポジトリ

gpt-image-2 について

gpt-image-2 は、OpenAI の GPT Image 2 API で画像を生成・編集する対話型スキルです。スタイルやサイズの選択、プロンプトの事前チェック、ドラフト確認、カルーセル制作を案内します。

主な機能

  1. 01制作内容とスタイルの対話式選択
  2. 02画像編集と参照画像を使った生成
  3. 03プロンプトの矛盾を事前確認
  4. 04ドラフト確認から最終生成までの流れ
  5. 05カルーセルの構成案と一括生成

活用シーン

  1. 01SNS向けの複数枚カルーセル制作
  2. 02単一画像を仕上げる前のドラフト確認
  3. 03写真を指定したスタイルに変換
  4. 04用途に合わせたサイズの画像生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/glebis/claude-skills --skill gpt-image-2

インストール後、Claude Code で/gpt-image-2を入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

platforms.yaml
presets.yaml
screenshot.json
.claude-plugin/
plugin.json
references/
api_reference.md
scripts/
gpt_image_2.py

詳細

GPT Image 2 — インタラクティブな画像生成

インタラクティブなガイド付きワークフローで、OpenAI の GPT Image 2 API を使って画像を生成・編集します。

インタラクティブなフロー

ユーザーがこのスキルを実行したら、AskUserQuestion を使って以下の手順に沿って案内してください。手順を省略しないでください。インタラクティブなフローが、このスキルの中心的な体験です。

Step 1: 何を作りますか?

何を作成したいかユーザーに尋ねます。以下の選択肢を提示してください。

  • 画像 1 枚 — テキストプロンプトから画像を 1 枚生成
  • 写真編集 — 既存の写真を別のスタイルに変換
  • カルーセル — LinkedIn/Instagram 向けの統一感あるスライドを 5~10 枚作成
  • バリエーション — 同じコンセプトの複数のバージョン
  • クイック生成 — 質問を省略し、プロンプトをそのまま実行

ユーザーがすでに明確なプロンプト(例:「ロケットのエディトリアル画像を生成」)を提示している場合は、Step 3 に進みます。

Step 2: スタイルの選択

利用可能なプリセットをカテゴリー別に表示します。presets.yaml を読み込み、以下を提示してください。

ビジュアルスタイル(画像内にテキストなし): editorial、blueprint、ink、risograph、wireframe、constellation、brutalist、grain

テキスト中心(GPT Image 2 のテキスト描画を活用): infographic、slide、diagram、poster、menu、manga

コミュニティのお気に入り: trading-card、pixar、app-mockup、isometric、action-figure、cinematic、panorama

参照画像を使ったスタイル: vhs — 1980 年代の深夜の通販番組のタイトルカード。純黒の背景に、走査線入りのグラデーションで描かれた斜体の大文字を配置します。参照画像(references/vhs-infomercial.png)が自動で添付されるため、バッチごとに同じスタイルを保てます。広告コピーを題材として渡し、複数行にする場合は / で行を区切ります(例:--preset vhs "THEY TRUSTED YOU / NOW / PROVE IT")。

カスタム — ユーザーが独自のスタイルを説明

「どのスタイルにしますか?または、独自のスタイルを説明してください」と尋ねます。

Step 3: プラットフォームとサイズ

どこで使用するかを尋ねます。

  • YouTube サムネイル(1280×720)
  • Instagram 正方形(1080×1080)
  • スライド/プレゼンテーション(1920×1080)
  • ブログのヒーロー画像(1200×630)
  • X/Twitter(1600×900)
  • ストーリー(1080×1920)
  • カスタムサイズ
  • リサイズなし(API のデフォルトを使用)

アスペクト比に関する注意: --platform は生成サイズを変更しません。設定されたサイズ(デフォルトは 1024×1024)で生成した後にリサイズ/引き伸ばしを行うため、正方形以外のサイズでは歪みが生じます(例:--platform story は正方形の画像を 1080×1920 に引き伸ばすため、構図の端が切り取られます)。縦長または横長の構図には、API ネイティブのサイズを直接指定してください。縦長なら --size 1024x1536、横長なら --size 1536x1024 です。

事前チェックの誤検出: 背景の競合を検出するヒューリスティックは、背景以外の要素に色を指定した場合にも誤作動することがあります(例:「暗い背景」のプロンプトにある「オフホワイトのテキスト」を、2 つ目の背景色として判定します)。指摘された競合が誤検出の場合は、--force を付けて再実行するか、「淡いグレーのテキスト」のように言い換えてください。

Step 3.5: 事前プロンプトチェック(自動)

生成コストが発生する前に、スクリプトはまず最終プロンプト(プリセット + 題材 + スタイル)を組み立ててから、内部矛盾がないかをチェックするようになりました。よくあるのは、プリセットで固定された要素が題材によって上書きされるケースです(例:editorial プリセットは 「純黒の背景」 を指定しますが、題材では温かみのあるオフホワイトの背景を求めている場合)。

チェックでは、llm CLI 経由で高速な Haiku 呼び出しを優先します。Haiku を利用できない場合(llm がない、または Anthropic のクレジットがない場合)は、設定済みの llm デフォルトモデルにフォールバックし、その後、組み込みの静的ヒューリスティックを使います。解決後のプロンプトと判定結果が表示されます。競合が見つかった場合、生成コストが発生する前に処理を中止します。プロンプトまたはプリセットを修正して再実行するか、--force(そのまま生成)または --no-preflight(チェックをスキップ)で上書きしてください。これにより、「意図しない背景で生成してしまい、再生成する」という無駄を防げます。

背景や配色を指定するプロンプトを組み立てる際は、背景を固定するプリセット(editorial、blueprint など)と、異なる背景の指定を組み合わせないでください。プリセットを外してスタイル全体を自分で指定するか、プリセットの背景を受け入れてください。

ステップ 4:まずドラフトを作成し、その後に最終版を作成する

ユーザーが「skip draft」と指定するか、--draft false を使わない限り、必ず最初にドラフトを生成してください。

  1. --draft を指定して生成します(品質=低、画像 1 枚あたり約 $0.006)。
  2. Read ツールを使って画像をユーザーに表示します。
  3. 「この方向性でよいですか?次のことができます。(a)最終品質で生成する、(b)プロンプトを調整する、(c)別のスタイルを試す、(d)新しいシードで再生成する」
  4. 承認されたら、--quality high を指定して最終版を生成します(画像 1 枚あたり約 $0.21)。
  5. 最終版にアップグレードする際も構図を維持できるよう、ドラフトで使った --seed を指定します。

このドラフト→最終版のフローにより、反復にかかるコストを約 97% 削減できます。

ステップ 5:結果を表示し、次の操作を提案する

生成後は、必ず次の操作を行います。

  1. Read ツールを使って画像を表示します。
  2. open <path> で開き、フル解像度でプレビューします。
  3. コストを報告します。
  4. 「次のことを行いますか?(a)バリエーションを生成する、(b)さらに編集する、(c)ほかの画像の参考として使う、(d)完了する」

カルーセルのワークフロー

ユーザーがカルーセル(5~10 枚のスライド)を希望する場合:

1. ストーリーの流れ

「ストーリーを教えてください。重要なメッセージをいただければ、10 枚構成の流れを作成します。」

次のようなスライドごとのプランを提案します。

Slide 1: [Cover] — hook headline + hero image
Slide 2: [Problem] — bold statement
Slide 3: [Context] — illustration + explanation
...
Slide 10: [CTA] — call to action with URL

ユーザーにプランを承認または修正してもらいます。

2. スタイルの一貫性

すべてのスライドで同じプリセットとシード範囲を使います。カルーセルの場合:

  • すべてのスライドに同じビジュアルスタイルを選びます。
  • --seed を使って構図のパターンを固定します。
  • プロンプトにページネーションドットを含めます(例:「下部に小さなドットを 10 個配置し、3 個目をオレンジで強調表示」)。
  • 配色とタイポグラフィを一貫させます。
3. ドラフトを一括生成

まず、すべてのスライドをドラフトとして生成します($0.006 × 10 = 合計 $0.06)。コンタクトシートまたは 1 枚ずつ表示して、どのスライドを再生成または調整するかユーザーに確認します。

4. 最終版を一括生成

承認されたスライドのみ最終版を生成します。-y フラグを使って一括生成することも提案します。

写真編集のワークフロー

ユーザーが写真の変換を希望する場合:

  1. 元画像を指定してもらいます(ファイルパスまたはクリップボード)。
  2. クリップボードの場合は、osascript を使って一時ファイルに保存します。
  3. 利用可能なスタイルを表示し、どれを試すか尋ねます。
  4. まず編集したドラフトを生成します。
  5. 結果を表示し、調整が必要か確認します。
  6. 承認されたら最終版を生成します。

API 呼び出しには --edit <path> を使用します。

コストへの配慮

生成前に必ずコストを伝えてください。

品質画像 1 枚あたり10 枚カルーセル
--draft(低)$0.006$0.06
中$0.05$0.50
高(デフォルト)$0.21$2.10
高+思考モード$0.25-0.42$2.50-4.20

思考モードではコストが 20~100% 増加します。テキストの多い構成や複雑な構図の場合に限り、提案してください。

コストが $0.50 未満の場合、スクリプトは自動的に確認します。それを超える場合は、ユーザーに確認を求めます。

プロンプト作成のヒント

ユーザーのプロンプト作成を支援する際は、次のパターンを適用してください。

  1. 構成:シーン → 主題 → 詳細 → 照明 → 制約
  2. 主題を先に置く:中心となるものを最初に記述します。
  3. 画像内のテキスト:正確なテキストを一重引用符で囲みます。例:'with the headline "Hello World"'
  4. キャラクターの一貫性:年齢+外見+髪型+特徴的な要素+服装の 5 要素を維持します。
  5. スタイルタグは末尾に追加:バッチ間の一貫性を高めるため、editorial-magazine や studio-product などのタグを追加します。
  6. 反復には --seed を使用:構図を固定し、プロンプトの詳細のみを変えます。

CLI リファレンス

# Basic generation
scripts/gpt_image_2.py "prompt" output.png

# With preset and platform
scripts/gpt_image_2.py --preset editorial --platform square "subject" out.png

# Draft mode (~$0.006/image)
scripts/gpt_image_2.py --draft "prompt" out.png

# With thinking for complex layouts
scripts/gpt_image_2.py --thinking medium --preset diagram "OAuth flow" out.png

# Seed for reproducibility
scripts/gpt_image_2.py --seed 42 "prompt" out.png

# Edit existing photo
scripts/gpt_image_2.py --edit photo.png "transform into constellation style" out.png

# Reference-anchored preset (auto-attaches its bundled reference image)
scripts/gpt_image_2.py --preset vhs --platform youtube "THEY TRUSTED YOU / NOW / PROVE IT" ad.png

# Variants with contact sheet
scripts/gpt_image_2.py --n 4 --preset ink "mountain" out.png

# Cost estimate
scripts/gpt_image_2.py --estimate --n 10 --quality high "batch test"

# Skip confirmation
scripts/gpt_image_2.py -y --n 10 "batch" out.png

# Dry run (show prompt without API call)
scripts/gpt_image_2.py --dry-run --preset editorial "test" out.png

# Preflight runs automatically before spend; override if needed
scripts/gpt_image_2.py --force "prompt with a known conflict" out.png    # generate anyway
scripts/gpt_image_2.py --no-preflight "prompt" out.png                   # skip the check

ファイル

  • scripts/gpt_image_2.py — メイン CLI(Python、PyYAML が必要)
  • presets.yaml — スタイルプリセット(ビジュアル、テキスト重視、コミュニティ、参照画像ベース)。プリセットで reference: パス(スキルディレクトリからの相対パス)を指定できます。ユーザーが独自の --reference を渡さない限り、スタイルの基準画像として自動的に添付されます。vhs プリセットを参照してください。
  • platforms.yaml — 8 種類のプラットフォームサイズプリセット
  • references/api_reference.md — API ドキュメント全文
  • references/vhs-infomercial.png — vhs プリセットに同梱されているスタイルの基準画像
  • ~/.config/gpt-image-2/config.yaml — ユーザーのデフォルト設定
  • ~/.config/gpt-image-2/history.jsonl — 生成ログ
  • ~/.config/gpt-image-2/last.json — 前回の実行内容(again 用)

コメント