Skip to main content

簡潔な回答

公式のgpt-image-2.5-flareまたはgpt-image-2.5-sunburstを使用し、リクエストに2つのフィールドを追加します:
画像は実際のアルファチャンネルを含むPNGとして返されるため、切り抜きの後処理は不要です。テキストからの画像生成と画像編集の両方に対応しています。
**gpt-image-2は透過背景をサポートしなくなりました。**OpenAIは2026-09-30にbackground: "transparent"(gpt-image-2向け)を停止し(2026-08-21からプレビュー版として提供されていました)、透過をネイティブにサポートしているgpt-image-2.5-flareまたはgpt-image-2.5-sunburstへの移行をユーザーに案内しています。現在、gpt-image-2への透過リクエストはOpenAI自身によって400 Transparent background is not supported for this model.で拒否されます(課金は発生しません)。APIYIが2026-10-15に再テストしたところ、14件すべてのテキストからの画像生成と7件の画像編集呼び出しが拒否されました。他はそのままで、modelを2つの2.5モデルのいずれかに切り替えるだけです — 3つのモデルはすべて価格とパラメータが同一です。

透明な背景を生成できるモデル

透過を確実に必要とする場合は、gpt-image-2.5-flare(テキストからの画像生成)または gpt-image-2.5-sunburst(編集)を使用してください。 パラメータによる指定と prompt でのリクエストは同じではありません。前者は API によって保証されますが、後者はモデルがベストを尽くしているにすぎません。バッチ規模で処理を行うとその違いが顕著に現れます。

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 と同じです)。

よくあるエラー

gpt-image-2 を呼び出しています。OpenAI は 2026-09-30 にその透明背景のサポートを終了しました。この 400 エラーは OpenAI から直接返されたものであり、課金は発生しません。他のパラメータはそのままで、model を gpt-image-2.5-flare(テキストからの画像生成)または gpt-image-2.5-sunburst(画像編集)に切り替えてください。
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から選択

白い背景でのアーティファクト

純白の背景に関する別の問題