簡潔な回答
公式のgpt-image-2.5-flareまたはgpt-image-2.5-sunburstを使用し、リクエストに2つのフィールドを追加します:
透明な背景を生成できるモデル
2つの呼び出し方法
テキストからの画像生成 /v1/images/generations
画像編集 /v1/images/edits
通常の写真を渡し、背景を削除するよう指示します:
mask)と透過背景は併用可能であり、競合することはありません。
なぜ jpeg が動作しないのか
JPEG には alpha チャンネルがありません — 透明度を保存する場所がないためです。output_format: "jpeg" と background: "transparent" を組み合わせると 400 が返されます:
png(ロスレスで、サイズは大きめ)または webp(ロッシーで調整可能、サイズは小さめ、さらに alpha もサポート)を選んでください。webp はさらにファイルサイズを削減するために output_compression も受け付けます。
編集は精密な切り抜きではなく、描き直しです
ここで最初に期待値をそろえておきます。/v1/images/edits が background: transparent で実行されると、モデルは Photoshop のように元の輪郭をなぞるのではなく、シーンを理解して被写体を描き直します。つまり、次のようになります。
- 被写体のポーズ、スタイル、細部は変化します — これはピクセル単位の保持ではありません
- 元の画像により近づけるには、
quality: "high"を使い、プロンプトに「元の構図を維持し、被写体の見た目を変更しないでください」と記載します - ワークフローでピクセル単位の正確な抽出が必要な場合は、
rembg、PIL、またはsharpで自分で切り抜きを行ってください。モデル生成は、正確なマット処理よりも「再利用可能なアセットを生成する」用途に適しています
プロンプトでシーンを描写しないでください — パラメータでは上書きできません
background: "transparent"はアルファチャンネルを保証し、モデルをカットアウトへ誘導するだけです。プロンプトまたは参照画像が完全なシーンを描写している場合、モデルはそのシーンを描画し、パラメータで止めることはできません。これが、透明な出力が「うまくいくときもあれば、うまくいかないときもある」最も一般的な理由であり、品質ティアとは関係ありません。
gpt-image-2.5-sunburstを使用し、2026-09-11に測定。30回の呼び出し(中品質と高品質が半分ずつ、テキストから画像への生成と参照画像の編集を含む):
3つの記述ルール:
- ❌ 環境を表す語 — 地面、空、部屋、森 — は避けてください。雰囲気を加えたい場合は、被写体に結び付けてください(「数枚の落ちるカエデの葉」であり、「カエデの森」ではありません)
- ✅ すべてのプロンプトの末尾に
isolated subject on a transparent background, no scenery, no ground, no shadowを付けてください - ✅ 参照画像に背景がある場合は、編集プロンプトに
remove the background entirely, keep only the characterと記述してください
mediumからhighへqualityを引き上げても、透明化の信頼性は向上しません。tokensのコストが4倍(439 → 1,756)になるだけです。
課金
透過処理に追加料金はかかりません。 同じ品質ティアおよびサイズにおいて、background: "transparent" と background: "opaque" はまったく同じ画像 tokens を消費し、使用するモデルの通常の token ごとのルールに基づいて課金されます(2.5 モデルの価格は gpt-image-2 と同じです)。
よくあるエラー
400: Transparent background is not supported for this model.
400: Transparent background is not supported for this model.
gpt-image-2 を呼び出しています。OpenAI は 2026-09-30 にその透明背景のサポートを終了しました。この 400 エラーは OpenAI から直接返されたものであり、課金は発生しません。他のパラメータはそのままで、model を gpt-image-2.5-flare(テキストからの画像生成)または gpt-image-2.5-sunburst(画像編集)に切り替えてください。400: Transparent background is not supported for JPEG output format
400: Transparent background is not supported for JPEG output format
output_format が jpeg に設定されています。png または webp に切り替えてください。画像が透明ではなく白色の背景になっている
画像が透明ではなく白色の背景になっている
3つの点を確認してください。まず、
background フィールドが実際に API に届いているかどうかです。画像編集エンドポイントは multipart/form-data であるため、JSON ボディフィールドではなく -F background=transparent である必要があります。次に、レスポンス内のトップレベルの background が transparent を返しているかどうかです。3つ目に、gpt-image-2.5-flare / gpt-image-2.5-sunburst を使用しているかどうかです。gpt-image-2-all および gpt-image-2-vip にはそのようなパラメータが存在せず警告なしで無視され、gpt-image-2 は 400 エラーを返します。これら3点すべてに問題がなく、それでも白色や完全な背景が表示される場合は、プロンプト(または参照画像)がほぼ確実にシーンを描写しています。モデルは要求された環境を描画したため、パラメータでそれを上書きすることはできません。前述の「プロンプト内でシーンを描写しない」を参照してください。画像に実際にアルファチャンネルがあるか確認する方法
画像に実際にアルファチャンネルがあるか確認する方法
以下の短い Python スニペットで十分です:モード
RGB は、アルファチャンネルがまったく存在しないことを意味します。すべてのアルファ値が 255 のモード RGBA は、チャンネルは存在するものの何も切り抜かれていないことを意味します。プロンプトにすでに透明背景と指定してあるのに、なぜパラメータも渡す必要があるのですか
プロンプトにすでに透明背景と指定してあるのに、なぜパラメータも渡す必要があるのですか
プロンプトはモデルにそのように描くよう要求するだけであり、モデルは単に透明に見えるだけのグレーと白の市松模様を描画する可能性があります。それらは依然として不透明なピクセルです。
background: "transparent" パラメータのみが、本物のアルファチャンネルを保証します。その逆も同様です。パラメータはチャンネルを保証しますが、プロンプトで描写されたシーンを上書きすることはできません。両方が連携して機能する必要があります。関連ドキュメント
GPT-Image-2の概要
すべてのパラメータ、サイズ、品質ティア、エラーコード
テキストから画像へのAPIリファレンス
/v1/images/generationsのすべてのフィールド画像編集APIリファレンス
/v1/images/editsと複数画像の融合マスクによるインペインティング
変更する領域をアルファマスクで指定
公式リレーとリバースルート
gpt-image-2.5-flare / sunburst / gpt-image-2 / -all / -vipから選択白い背景でのアーティファクト
純白の背景に関する別の問題