GPT Image 2.5 APIの使い方:Pythonで画像を生成・編集する

FlareとSunburstをPythonから呼び出し、画像保存や参照画像の編集を実装。透明PNG、対応サイズ、Responses APIで画像モデルを指定する場所も確認します。

GPT Image 2.5 APIの使い方:Pythonで画像を生成・編集する

OpenAIのImages APIでは、gpt-image-2.5-flareまたはgpt-image-2.5-sunburstを選び、client.images.generate()またはclient.images.edit()を呼び出します。 返されたdata[0].b64_jsonをデコードすると画像を保存できます。

GPT Image 2.5はOfoxでも利用できます。FlareSunburstのモデルページで、現在の料金とAPIの呼び出し例を確認できます。

以下は公式画像生成ガイドに基づく例です。2026年9月9日に文書と照合しましたが、有料のAPI呼び出しによる実行検証はしていません。OpenAIを直接呼ぶ例なので、ゲートウェイではモデルID、エンドポイント対応、料金を別途確認してください。

モデルを選ぶ

モデルID公式の位置付け最初に試す用途
gpt-image-2.5-flare速度重視の小型モデル。画質はGPT Image 2と同等構図の試行や応答時間を重視する生成
gpt-image-2.5-sunburst高品質と精密な編集を重視する基本モデル細部が重要な完成画像や参照画像の編集

これは出発点であり、出力の保証ではありません。FlareとSunburstの比較で判断基準を確認できます。モデルファミリー名だけをAPIのIDとして使わないでください。

Pythonで生成して保存する

最新のSDKをインストールし、環境変数OPENAI_API_KEYにキーを設定します。ソースコードには書き込みません。

python -m pip install --upgrade openai
import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()

result = client.images.generate(
    model="gpt-image-2.5-flare",
    prompt=(
        "Create a clean product photograph of a ceramic tea cup on a "
        "warm gray background. Soft natural light, no text or watermark."
    ),
    size="1024x1024",
    quality="medium",
    output_format="png",
)

Path("tea-cup.png").write_bytes(
    base64.b64decode(result.data[0].b64_json)
)
print(result.usage)

PNGを要求し、返されたバイト列をPNGとして保存します。費用を評価する際はusageも保持してください。画像が生成されたという事実だけでは消費量は分かりません。

参照画像を編集する

images.edit()に入力ファイルを渡し、変更点と保持する部分を明示します。product.pngは事前に用意したローカル画像です。

import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()

with open("product.png", "rb") as reference:
    result = client.images.edit(
        model="gpt-image-2.5-sunburst",
        image=reference,
        prompt=(
            "Remove the background from this product photograph. "
            "Preserve the product shape, colors, and label text. "
            "Use a fully transparent background, with no checkerboard."
        ),
        size="1024x1024",
        quality="high",
        background="transparent",
        output_format="png",
    )

Path("product-cutout.png").write_bytes(
    base64.b64decode(result.data[0].b64_json)
)

この例は商品の形、色、ラベルを保ちながら背景を透明にする指示です。原寸でラベル、形状、アルファチャンネルを確認してください。画像に描かれた市松模様は透明ではありません。プロンプトガイドには部分編集や商品の細部を保つ編集の例もあります。

寸法と画質を明示する

両モデルはautolowmediumhighxhighmaxに対応します。比較時は明示的な設定を使うと条件をそろえやすくなります。

推奨寸法には1024x10241536x10241024x1536があります。カスタム寸法は次をすべて満たす必要があります。

  • 幅と高さが16の倍数。
  • どちらの辺も3,840ピクセル以下。
  • 縦横比が1:3〜3:1。
  • 総画素数が655,360〜8,294,400。

OpenAIは2560x1440を超える解像度を実験的対応としています。「4K対応」は任意の4K寸法の受け付けや、同じ信頼性を保証しません。

透明出力にはPNGまたはWebPを使います。output_compressionはJPEGとWebP用で、PNGには使いません。画質設定を上げてもすべての画像が改善するとは限らないため、実際の入力で比較します。

Responses APIではツール内に画像モデルを指定する

Images APIは画像モデルを直接選びます。一方、Responsesでは外側の言語モデルと画像生成ツールを分けます。

response = client.responses.create(
    model="gpt-6-astra",
    input="Generate a product photo of a ceramic tea cup on a gray background.",
    tools=[{
        "type": "image_generation",
        "model": "gpt-image-2.5-sunburst",
        "output_format": "png",
    }],
)

for index, item in enumerate(response.output):
    if item.type == "image_generation_call":
        Path(f"response-image-{index}.png").write_bytes(
            base64.b64decode(item.result)
        )

上のimportとclientを引き継ぐコードです。外側のmodelは処理を進める言語モデルを、ツール内のmodelは画像モデルを選びます。これはOpenAIの文書に示された構成です。

Responsesでは言語モデルのトークン料金も加わり得ます。直接Imagesを呼ぶ場合との比較では料金ガイドを参照してください。

本番接続前の確認

実際に使うアカウントとプロバイダーのアクセス権を確認します。SDKの更新だけでモデルへのアクセス権が付くわけではありません。OpenAIのコード例だけでは、他のプロバイダーが同じルートに対応しているかは分かりません。

モデル、プロンプト、画質、寸法、usage、応答時間、保存ファイルを記録します。編集では文字の正確さや意図しない変更も確認します。既存のGPT Image 2環境を置き換える場合は、全トラフィックを移す前に移行チェックリストを使ってください。

よくある質問

GPT Image 2.5のモデルIDは?
gpt-image-2.5-flareまたはgpt-image-2.5-sunburstです。実際のプロバイダーが文書化した正確なIDを使ってください。
透明PNGを生成できる?
はい。backgroundをtransparent、output_formatをpngまたはwebpに設定し、保存後にアルファチャンネルを確認します。JPEGは透明度を保持しません。
Responsesの画像モデルはどこに設定する?
image_generationツール定義内です。外側のmodelは処理を進める言語モデルを選びます。