GPT Image 2・Gemini 画像生成 API
OpenAI 互換 Images API の GPT Image 2、または Gemini ネイティブ API の Nano Banana Pro と Nano Banana 2 で画像を生成します。
このページでは、独立した 2 種類の画像生成 API 契約をまとめています。同じ Modelflare APIキーと Credits を使用しますが、リクエストとレスポンスの形式は互換ではありません。
- gpt-image-2 は OpenAI 互換の /v1/images/generations と /v1/images/edits 契約を使用します。
- gemini-3-pro-image と gemini-3.1-flash-image は Gemini ネイティブの generateContent 契約を使用します。
例をコピーする前にモデル系列を選び、Gemini と GPT Images のフィールドを混在させないでください。
1. GPT Image 2 — OpenAI 互換 Images API
OpenAI 互換 Images API から gpt-image-2 の PNG を生成するか、公開 URL またはローカルアップロードの参照画像を編集します。各リクエストは 1 枚を返し、中品質または高品質、短期署名 URL または base64、任意の SSE に対応します。
エンドポイントとモード
- 数分かかる可能性がある同期 JSON には https://origin.modelflare.dev/v1 を使用します。
- Cloudflare 経由の長時間リクエストには https://modelflare.dev/v1 と stream=true を使用します。最終画像まで SSE ハートビートを送信します。
- 実行中の POST をホスト間でリダイレクトしないでください。
同期リクエスト
curl https://origin.modelflare.dev/v1/images/generations \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"夜明けの静かな湖畔の小屋","n":1,"quality":"medium","size":"1024x1024","response_format":"url","output_format":"png"}'
URL 応答には 1 時間で期限切れになる Modelflare の非公開署名リンクが含まれます。response_format=b64_json を指定すると、API 出力オブジェクトを保存せず検証済み PNG を直接受け取れます。
最新のモデルと料金ページでは、一般的なサイズの medium / high 料金を確認できます。請求は指定した画質と寸法そのものに基づき、通常のルーティンググループ倍率は適用せず、最終料金を利用ログに記録します。
参照画像を編集する
公開アクセス可能な HTTP(S) 画像 URL を 1 件以上 POST /v1/images/edits に送信します。images の各要素には image_url を 1 つだけ指定します。
curl https://origin.modelflare.dev/v1/images/edits \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"背景を清潔な白い写真スタジオに変更してください","images":[{"image_url":"https://example.com/input.png"}],"size":"2048x2048","response_format":"url"}'
または、multipart/form-data でローカルの PNG、JPEG、WebP ファイルを 1 つアップロードします。
curl https://origin.modelflare.dev/v1/images/edits \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=背景を清潔な白い写真スタジオに変更してください" \
-F "image=@/path/to/input.png" \
-F "size=2048x2048" \
-F "response_format=url"
multipart リクエストには画像ファイルを 1 つだけ含め、全体を 20 MiB 以下にしてください。参照 URL またはアップロードファイルは選択された upstream プロバイダーへ送信され、URL は取得中もアクセス可能である必要があります。Modelflare はどちらの参照入力も API 出力アセットとして保存しません。
SSE リクエスト
curl -N https://modelflare.dev/v1/images/generations \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"雨のネオン街を走る白い猫","n":1,"quality":"high","size":"1024x1024","response_format":"url","stream":true}'
SSE コメントはハートビートだけです。image_generation.completed と data: [DONE] の後に終了します。
対応フィールドは model、prompt、n=1、quality=medium|high、有効な WIDTHxHEIGHT、response_format=url|b64_json、output_format=png、任意の stream です。/v1/images/edits は、公開 HTTP(S) の image_url を 1 件ずつ含む空でない images 配列、または multipart の image フィールドにある有効な PNG、JPEG、WebP 1 ファイルを受け付けます。生成は参照画像を拒否し、複数のアップロード、data/base64 入力、マスク、input_fidelity、バリエーション、部分画像、未知のフィールドを拒否します。失敗したリクエストの予約 Credits は Request ID 単位の冪等な返金経路で戻されます。
通常の API キーを使用してください。チャネル固定キーは拒否され、モデル制限を有効にしたキーには gpt-image-2 を含める必要があります。
2. Gemini Image — Gemini ネイティブ API
Nano Banana Pro または Nano Banana 2 を Gemini ネイティブ形式で使用します。これらのモデルは /v1/images/generations を使用しません。
エンドポイントと長時間リクエスト
- 同期:POST https://modelflare.dev/v1beta/models/{model}:generateContent。
- 画像生成の推奨:POST https://modelflare.dev/v1beta/models/{model}:streamGenerateContent?alt=sse。
- origin.modelflare.dev は /v1beta を公開しません。Gemini ネイティブ API にはメインドメインを使い、長い処理ではストリーミングを選んでください。
ストリーミングリクエスト
この例は Nano Banana 2 を使用します。Nano Banana Pro を使う場合は URL のモデルを gemini-3-pro-image に置き換えます。
curl -N "https://modelflare.dev/v1beta/models/gemini-3.1-flash-image:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "Create a clean blue circle centered on a white background. No text."}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
}
}'
レスポンス契約
各 SSE data: イベントは Gemini ネイティブ JSON です。最終画像の base64 は candidates[].content.parts[].inlineData.data、MIME は inlineData.mimeType にあります。テキスト part が含まれる場合もあります。finishReason=STOP またはストリーム終了で完了し、image_generation.completed は使用しません。
モデル、解像度、推定価格
| モデル | 解像度 | 画像1枚あたりの推定価格 |
|---|---|---|
| Nano Banana Pro | 1K / 2K | US$0.06720 |
| Nano Banana Pro | 4K | US$0.12000 |
| Nano Banana 2 | 0.5K | US$0.02241 |
| Nano Banana 2 | 1K | US$0.03360 |
| Nano Banana 2 | 2K | US$0.05040 |
| Nano Banana 2 | 4K | US$0.07560 |
imageSize の K は大文字で指定してください。価格は画像1枚あたりの推定額です。最終料金はリクエスト内容によりわずかに変動し、利用ログに記録されます。
x-goog-api-key に通常の Modelflare APIキーを指定します。キーは gemini-image グループを利用でき、モデル制限時は選択した Gemini 画像モデルを含む必要があります。