gpt-image-2 API の使い方

Ashley Innocent

Ashley Innocent

22 4月 2026

gpt-image-2 API の使い方

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

お問い合わせ

gpt-image-2 APIは、2026年4月21日にChatGPT Images 2.0と同時にリリースされたOpenAIの新しい画像生成エンドポイントです。OpenAIチャットまたは埋め込みAPIをすでに利用している場合、画像生成を追加するには、新しいリクエスト形式、適切なスコープを持つAPIキー、そして約10分あれば十分です。

このガイドはAPIに特化しています。認証、リクエストパラメーター、3つの言語でのコードサンプル、思考モード、バッチ生成、レスポンス処理、エラーコード、レート制限、そして誤ったプロンプトでクレジットを浪費しないためのテストワークフローについて説明します。ChatGPT Images 2.0の新機能に関する製品レベルの概要については、ChatGPT Images 2.0 breakdownをご覧ください。

このガイドを読了すれば、機能する呼び出し、繰り返し作業に使える再利用可能なApidogコレクション、そして各パラメーターのコストに関する明確なイメージが得られるでしょう。

ボタン

前提条件

最初のリクエストを行う前に、以下の4つが必要です。

このガイドのすべての例を編集なしで実行できるように、シェルでキーを一度設定します。

export OPENAI_API_KEY="sk-proj-..."

エンドポイントと認証

gpt-image-2は、以前のモデルと同じ画像生成エンドポイントを使用します。

POST https://api.openai.com/v1/images/generations

認証は、Authorizationヘッダーにベアラートークンを使用します。すべてのリクエストは、モデルID、プロンプト、および出力パラメーターを含むJSONボディも持ちます。

curl https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "APIテストプラットフォームのためのシャープな製品ヒーロー画像、暗い背景",
    "size": "1024x1024",
    "n": 1,
    "quality": "high"
  }'

呼び出しが成功すると、画像のdata配列を持つJSONオブジェクトが返されます。失敗した場合は、codeと人間が読めるmessageを含む標準的なOpenAIエラーエンベロープが返されます。このガイドの後の方にあるエラーテーブルで一般的なエラーについて説明します。

リクエストパラメーター

リクエストボディのすべてのフィールドは、支払う金額と得られる結果に影響を与えます。以下は、gpt-image-2の完全なパラメーターマップです。

パラメーター タイプ 備考
model string gpt-image-2 必須。
prompt string 最大32,000文字 必須。長いプロンプトは、より多くの入力トークンを消費します。
size string 1024x1024, 1024x1536, 1536x1024, 2000x1000, 1000x2000, 2000x667, 667x2000 出力トークン数を決定します。
quality string standard, high highはコストが約2倍ですが、細かいテキストやUI要素を処理します。
n integer 1–10 バッチリクエストは、セット全体でスタイルを共有します。
thinking string off, low, medium, high レンダリング前の推論予算。
response_format string url, b64_json URLは1時間で期限切れになります。
user string 自由形式 悪用検出に使用されます。ハッシュ化されたユーザーIDを渡してください。
background string auto, transparent, opaque 透過出力はアルファチャンネル付きPNGとして出荷されます。
seed integer 任意のint32 緩い制御。同じシードとプロンプトは近い結果を生成しますが、同一ではありません。

コストに最も影響を与える3つのパラメーターは、sizequalitythinkingです。thinking: "high"で2000ピクセル幅のhigh品質画像は、ベースラインの1024x1024 standardレンダリングの4〜5倍のコストがかかる場合があります。

Pythonの例

公式SDK(openai>=1.50.0)は、gpt-image-2のネイティブサポートを追加しています。

import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()

response = client.images.generate(
    model="gpt-image-2",
    prompt=(
        "OAuth 2.1認証コードフロー(PKCE付き)のミニマリストな図。 "
        "5つのボックスに英語でラベル付け: User, Client, Auth Server, Resource Server, Token。 "
        "シャープなサンセリフテキスト、オフホワイトの背景、ティールアクセントの矢印。"
    ),
    size="1536x1024",
    quality="high",
    n=2,
    thinking="medium",
    response_format="b64_json",
)

out_dir = Path("out")
out_dir.mkdir(exist_ok=True)

for i, image in enumerate(response.data):
    png_bytes = base64.b64decode(image.b64_json)
    (out_dir / f"oauth_{i}.png").write_bytes(png_bytes)

print(f"Generated {len(response.data)} images into {out_dir.resolve()}")

注目すべき点が2つあります。

Node.js / TypeScriptの例

import fs from "node:fs/promises";
import OpenAI from "openai";

const client = new OpenAI();

const response = await client.images.generate({
  model: "gpt-image-2",
  prompt:
    "RESTクライアントのダッシュボードUIモックアップ、センテンスケースのラベル、右上にレイテンシーのスパークライン、クールグレーのパレット。",
  size: "1536x1024",
  quality: "high",
  n: 4,
  thinking: "medium",
  response_format: "b64_json",
});

await Promise.all(
  response.data.map(async (image, i) => {
    if (!image.b64_json) return;
    await fs.writeFile(`dash_${i}.png`, Buffer.from(image.b64_json, "base64"));
  }),
);

console.log(`Saved ${response.data.length} images`);

特別な理由がない限り、生のfetchではなく公式SDKを使用してください。SDKはリトライ、冪等性ヘッダー、ストリーミングを処理し、モデルのリビジョン間の破壊的スキーマ変更を追跡します。

思考モード:いつ使うか

thinkingは、モデルがレンダリング前にレイアウトの計画にどれだけの計算資源を費やすかを制御します。大まかに言って、4つの値があります。

実用的なルールとして、プロンプトに数字、ラベル、または位置に関する制約が含まれている場合は、1段階上のティアに上げてください。「居心地の良いシーン」とだけ書かれている場合は、1段階下げてください。

思考モードは、画像出力トークンに加えて、推論トークンを課金に追加します。OpenAIの料金ページに現在のトークンあたりの料金が記載されています。mediumまたはhighを使用する場合、ベースラインの画像コストの1.2〜2倍の予算を見込んでください。

バッチ生成

n > 1を設定すると、単一のレスポンスで複数の画像が返され、これらは構図とスタイルを共有します。これは、エンドポイントを並行してn回呼び出すのとは異なります。後者は関連性のない画像を4つ生成します。バッチ出力は一貫性があり、デザインチームが反復作業を行う方法と一致します。

response = client.images.generate(
    model="gpt-image-2",
    prompt="APIドキュメントランディングページ用の4種類のヒーローイラスト、共有カラーパレット、共有線幅。",
    size="1536x1024",
    quality="high",
    n=4,
    thinking="low",
)

料金は画像ごとに発生するため、n=4n=1の約4倍の費用がかかります。利点は一貫性であり、スループットではありません。

レスポンス形式とストレージ

2つの形式、2つのユースケース:

本番環境では、URLをダウンロードし、すぐに独自のS3、R2、またはCloudflare Imagesバケットにプッシュしてください。OpenAIのURLをエンドユーザーに提供しないでください。それらは期限切れになります。

エラー処理とレート制限

gpt-image-2は標準的なOpenAIのエラー形式を返します。以下に、遭遇する可能性のあるものを挙げます。

HTTP code 原因 修正
400 invalid_request_error 不正なサイズ、サポートされていない比率、プロンプトが32k文字超 サイズリストを確認し、プロンプトを短縮します。
401 invalid_api_key キーの欠落または誤り OPENAI_API_KEYを再エクスポートします。
403 insufficient_quota クレジットなし、またはフリーティア 請求情報を追加し、ティアを確認します。
429 rate_limit_exceeded 1分あたりのリクエストが多すぎる ジッターを伴うバックオフ。Retry-Afterで再試行します。
429 image_generation_user_error コンテンツポリシー拒否 プロンプトを言い換えます。
500 server_error 一時的なOpenAIの問題 指数関数的バックオフで2回再試行します。
503 overloaded 地域全体でのスパイク 待機して再試行します。

gpt-image-2のレート制限はティアベースです。ティア1では1分あたり約50リクエストから開始し、より高いティアではスケールアップします。すべてのレスポンスでx-ratelimit-remaining-requestsx-ratelimit-remaining-tokensヘッダーを常に読み取り、上限に達する前にスロットリングを行ってください。

本番環境での再試行可能なエラー:

import time
from openai import OpenAI, RateLimitError, APIStatusError

client = OpenAI()

def generate_with_retry(prompt: str, tries: int = 3):
    delay = 1.0
    for attempt in range(tries):
        try:
            return client.images.generate(
                model="gpt-image-2",
                prompt=prompt,
                size="1024x1024",
                quality="high",
                n=1,
            )
        except RateLimitError:
            time.sleep(delay)
            delay *= 2
        except APIStatusError as e:
            if 500 <= e.status_code < 600 and attempt < tries - 1:
                time.sleep(delay)
                delay *= 2
                continue
            raise
    raise RuntimeError("gpt-image-2 retries exhausted")

400番台、401番台、またはコンテンツポリシーによる429番台のエラーは再試行しないでください。これらは理由があって失敗しており、再試行はクレジットの無駄になります。

ApidogでAPIをテストする

ターミナルから画像生成プロンプトを反復処理するのは遅く、結果を確認したり、パラメーターの変更を比較したり、良いプロンプトをバージョン管理したりすることはできません。専用のAPIクライアントがこれらすべてを解決します。

Apidogのインターフェースでgpt-image-2のレスポンスを表示しているスクリーンショット

Apidoggpt-image-2エンドポイントをファーストクラスのリクエストとして扱います。一般的なワークフローは以下の通りです。

  1. OpenAIコレクションで新しいリクエストを作成し、メソッドをPOST、URLをhttps://api.openai.com/v1/images/generationsに設定します。
  2. ヘッダーとしてAuthorization: Bearer {{OPENAI_API_KEY}}を追加し、OPENAI_API_KEYを環境変数に設定して、ソースコードに含めないようにします。
  3. プロンプトを含むJSONボディを貼り付けます。ApidogはOpenAPI仕様に対して検証し、送信する前に型不一致を表面化します。
  4. 送信ボタンを押します。画像のレスポンスはインラインでレンダリングされます。良いものを保存し、悪いものにタグを付け、バリアントのためにリクエストをフォークします。
  5. thinking: offthinking: mediumthinking: highの環境を保存して、同じプロンプトを異なる推論レベルで比較します。

Apidogのリクエストの差分比較機能がここで最も重要です。1つのパラメーターを調整すると、変更前と変更後の画像が並べて表示されます。そして、チーム全体で共有するプロンプトライブラリに最適なものをコミットします。これはターミナルでは提供できないワークフローです。

一般的なHTTPクライアントやクラッシュしたPostmanワークスペースから移行する場合、ApidogをダウンロードしてOpenAIキーに接続してください。セットアップは5分もかかりません。代替ツールを検討しているチームは、PostmanなしでのAPIテストガイドApidog VS Code拡張機能の概要もご覧ください。

よくある落とし穴

gpt-image-2を使い始めて最初の週にクレジットと時間を浪費するいくつかの間違いがあります。

FAQ

APIレベルでgpt-image-2gpt-image-1とどう異なりますか?同じエンドポイント、同じ認証です。新しいパラメーターとして、thinkingoff/low/medium/high)、最大2000pxの追加のsize値、およびスタイルを共有する最大10のnが追加されました。既存のSDK統合は、モデルIDを交換した後も機能し続けます。新しいパラメーターは役立つ場合にのみ追加してください。完全な違いについては、ChatGPT Images 2.0の概要をご覧ください。

gpt-image-2の統合をプロトタイプ化する最速の方法は何ですか?Apidogでリクエストを作成し、2つの環境(標準と思考モード)を保存して、コードに触れることなくプロンプトを反復処理します。コミットする準備ができたら、最終的なリクエストをcurlまたはSDKコードとしてエクスポートします。

APIは画像編集やインペインティングをサポートしていますか?編集およびバリエーションのエンドポイントは、新しいモデルIDの下で以前の世代と同じパターンに従います。gpt-image-2モデルリファレンスで最新のスキーマを確認してください。マスクと入力画像のパラメーターはそこに文書化されています。

gpt-image-2を商用出力に使用できますか?はい、OpenAIの標準使用ポリシーに従って使用できます。生成された画像の所有権はあなたにあります。OpenAIは、悪用監視のために入力および出力を使用する権利を保持します。商標登録されたキャラクターや名前のある著名人は、引き続きガードレールによって制限されます。

本番ワークロードのコストはどうなりますか?標準モードの1024×1024高品質画像1枚あたり約0.21ドルで、月に10,000枚の画像は、思考モードなしで約2,100ドルかかります。思考モードでは20~80%追加してください。予算が最高品質よりも重要である場合は、GLM 5V Turbo APIガイドQwen 3.5 Omni統合のような自己ホスト型代替ソリューションと比較してください。

同様のテキストレンダリングでより安価な代替手段はありますか?多言語テキストの同じ品質ではまだありません。オープンウェイトモデルは構図のギャップを埋めていますが、CJKやインド系文字ではまだ遅れをとっています。

ボタン

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる

gpt-image-2 API の使い方