# GPT Image 2.6 Flare — /images/generations

GPT Image 2.6 Flare の画像生成 API です。OpenAI が 2026 年 11 月に公開した画像モデルのうち清潔で滑らかな作風のブランチで、表紙、ポスター、くっきりした文字が必要なレイアウトに向いています。非同期ジョブで、使い方は GPT Image 2.5 と同じです。1K / 2K / 4K の 3 段階と 7 種類の比率、生成されたオリジナル画像を納品し、1 枚ごとの課金で失敗時は請求しません。

**エンドポイント:** `POST https://kovapi.com/v1/images/generations`

## クイックスタート

3 ステップで動きます：タスクを送信 → 結果を照会 → 画像のリンクを受け取る。YOUR_API_KEY をご自身のキーに置き換えれば、下のコマンドはそのまま実行できます。

**ステップ 1 · タスクを送信（すぐにタスク ID が返ります。HTTP 202）**

```
curl https://kovapi.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-image-2.6-flare", "prompt": "淡い色の背景に白い陶器のマグカップを置いたミニマルな商品写真、柔らかなサイドライト", "size": "16:9", "resolution": "2K"}'
```

レスポンス（HTTP 202）

```
{
  "id": "img_7f3c9a1e2b4d6f8a0c1e3b5d",
  "object": "image.generation.job",
  "status": "queued",
  "created": 1791281400,
  "model": "gpt-image-2.6-flare"
}
```

**ステップ 2 · `status` が `succeeded` か `failed` になるまで、2〜3 秒ごとに照会**

```
curl https://kovapi.com/v1/images/jobs/img_7f3c9a1e2b4d6f8a0c1e3b5d \
  -H "Authorization: Bearer YOUR_API_KEY"
```

成功時のレスポンス

```
{
  "id": "img_7f3c9a1e2b4d6f8a0c1e3b5d",
  "object": "image.generation.job",
  "status": "succeeded",
  "created": 1791281400,
  "model": "gpt-image-2.6-flare",
  "data": [
    {"url": "https://img.kovapi.com/i/2be8cd16d37f3a4b9c0e1f2a3b4c5d6e.png"}
  ],
  "usage": {"images": 1, "resolution": "2K", "model": "gpt-image-2.6-flare"}
}
```

**ステップ 3 · `data[0].url` が画像（PNG）のリンクです。保存期間は 15 日間なので、長く使う場合はご自身のストレージにダウンロードしてください。**

**完全なサンプル（Python：送信 → 待機 → ローカルに保存）**

```
import time
import requests

BASE = "https://kovapi.com/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

# 1. タスクを送信
job = requests.post(f"{BASE}/images/generations", headers=HEADERS, json={
    "model": "gpt-image-2.6-flare",
    "prompt": "淡い色の背景に白い陶器のマグカップを置いたミニマルな商品写真、柔らかなサイドライト",
    "size": "16:9",
    "resolution": "2K",
}).json()
if "error" in job:
    raise SystemExit(job["error"]["message"])

# 2. 終わるまで 3 秒ごとに照会
while job["status"] not in ("succeeded", "failed"):
    time.sleep(3)
    job = requests.get(f"{BASE}/images/jobs/{job['id']}", headers=HEADERS).json()

# 3. 画像をダウンロード
if job["status"] == "succeeded":
    url = job["data"][0]["url"]
    with open("gpt-image-2.6-flare.png", "wb") as f:
        f.write(requests.get(url).content)
    print("saved", url)
else:
    print("failed:", job["error"]["code"], job["error"]["message"])
```

## 認証
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## リクエストパラメータ

`POST /v1/images/generations` のリクエスト本文（JSON）：

| パラメータ | 種別 | 必須 | 説明 |
| --- | --- | --- | --- |
| model | string | はい | モデル ID：`gpt-image-2.6-flare`。 |
| prompt | string | はい | 描きたい内容。画像から画像の場合は、どう変えるかを書きます。 |
| size | string | いいえ | `16:9` のような比率（推奨）、または `1536x1024` のようなピクセルサイズ。省略すると 1:1 の正方形になります。 |
| resolution | string | いいえ | グレード：`1K`（既定）、`2K`、`4K`。 |
| quality | string | いいえ | 画質：`low`、`medium`（既定）、`high` のいずれかで、1K / 2K / 4K のどれでも有効、料金は変わりません。`auto` は medium として扱います。`xhigh` と `max` はまだ提供しておらず、指定すると送信時に 400 を返し、課金しません。 |
| image / images | string / array | いいえ | 参照画像。指定すると画像から画像になります。1 枚なら `image`、複数なら `images`（最大 8 枚）で渡します。それぞれ公開されている画像の URL、data: URI、base64 のいずれかです。 |
| n | integer | いいえ | 枚数。指定しないことをおすすめします。複数枚ほしいときは、複数のタスクを同時に送信してください。`n` を指定すると n 枚分を先に確保し、実際に納品した枚数で精算します。 |
| callback_url | string | いいえ | タスク終了時に結果を送る先。下の Webhook の項目をご覧ください。 |

`background` には `transparent`（透明背景。PNG か WebP 出力と組み合わせてください）を指定できます。`output_format` は `png`（既定）、`jpeg`、`webp` から選べ、納品ファイルはその形式になります。`n` は 1 のみで、複数枚が必要なら複数のジョブを同時に送信してください。その他のパラメーター（`response_format`、`style` など）は料金に影響せず、効果も保証しません。結果は `url` で返します。

## 料金

1 枚ごとの課金で、料金はグレードだけで決まります。比率や、テキストから画像か画像から画像かは関係ありません。送信時にそのグレードの料金を確保し、タスクが失敗した場合は全額返金します。1 クレジット = $0.005 です。

| グレード | 1 枚あたりのクレジット | 1 枚あたりの料金（USD） |
| --- | --- | --- |
| 1K | 3 | $0.015 |
| 2K | 6 | $0.03 |
| 4K | 10 | $0.05 |

## 比率・解像度・出力サイズ

`size` に比率、`resolution` に段階を指定します。生成されたオリジナル画像を切り抜き・リサイズなしで、下表のサイズのまま納品します。幅と高さはいずれも 16 の倍数で、4K は 1 辺 3840 px 以内・総画素数約 830 万以内です。

| 比率 | 1K | 2K | 4K |
| --- | --- | --- | --- |
| 1:1 | 1024x1024 | 2048x2048 | 2880x2880 |
| 3:4 | 768x1024 | 1536x2048 | 2480x3312 |
| 2:3 | 672x1024 | 1360x2048 | 2336x3520 |
| 9:16 | 608x1088 | 1152x2048 | 2160x3840 |
| 4:3 | 1024x768 | 2048x1536 | 3312x2480 |
| 3:2 | 1024x672 | 2048x1360 | 3520x2336 |
| 16:9 | 1088x608 | 2048x1152 | 3840x2160 |

- 使える比率は表の 7 種類だけで、それ以外は送信時に 400 を返し、課金しません。1K の 16:9 と 9:16 はモデルの最小画素数を下回るため、1088×608 と 608×1088 で出力します。

- `size` にはピクセルサイズ（例 `1536x1024`）も指定でき、比率は表の 7 種類のいずれかにします。幅と高さは 16 の倍数に切り捨て、その段階の上限を超えると等比で縮小し、小さすぎるとモデルの最小画素数（約 65.5 万）まで等比で拡大します。段階は `resolution` で決まり、未指定なら長辺で判断します（1536 以下は 1K、2048 以下は 2K、それより大きいと 4K）。長辺の範囲は 1K が 512〜1536、2K が 2048〜2304、4K が 2049〜4096 で、範囲外は送信時に 400 を返し、課金しません。

## 画質とネイティブ解像度

- `quality` を指定しない場合は **medium** で生成します。`low`、`medium`、`high` は 1K / 2K / 4K のどれでも、テキストから画像・画像から画像のどちらでも有効で、料金は解像度の段階だけで決まります。`auto` は medium として扱います。`xhigh` と `max` はまだ提供しておらず、指定すると送信時に 400 を返し、課金しません。

- `quality` に `1K`、`2K`、`4K` が入っていて `resolution` がない場合は、解像度ティアとして扱います（サイズも料金もそのティアになります）。

- ネイティブに生成するティアは、常にネイティブで生成します。混んでいるときはキューで待ち、それでも生成できなければ失敗として全額返金します。1K の画像を拡大して代わりに渡すことはありません。

## 画像から画像と参照画像

- `image`（1 枚）か `images`（複数、最大 5 枚）を送ると画像から画像になります。何をどう変えるかを prompt に書いてください。5 枚を超えると送信時に 400 を返し、課金しません。`POST /v1/images/edits` も同じパラメーターで使えます。

- どちらのエンドポイントも JSON の本文だけを受け付け、multipart でのファイルアップロードには対応していません。そのため OpenAI SDK の `images.edit()` はそのままでは使えません。下の例のように、リンクまたは base64 で渡してください。

- 参照画像は公開画像の URL（http / https）、data: URI、またはそのままの base64 で、1 枚 16MB まで、形式は PNG か JPEG に限ります。ほかの形式の参照画像があるとジョブは失敗し、全額返金します。

- URL は画像そのものを直接ダウンロードできるものにしてください。ウェブページや、ログインが必要な URL、直リンク禁止の URL は使えません。読み込めない参照画像は送信時に 400 で拒否され、どの画像がなぜ読めないかが示されます。タスクは作成されず、課金もされません。

- 出力の比率は参照画像ではなく `size` で決まります。元の画像の比率を保ちたい場合は、`size` をその比率にしてください。

- 参照画像は当サイトで代わりにホストし、7 日間保存します。

**参照画像 2 枚で画像から画像**

```
curl https://kovapi.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-image-2.6-flare", "prompt": "人物はそのままに、背景を夜の海辺に変えて、暖かい色のストリングライトを添える", "images": ["https://example.com/people.jpg", "https://example.com/beach.jpg"], "size": "3:4", "resolution": "2K"}'
```

## タスクの状態と返却フィールド

`GET /v1/images/jobs/{id}` は次のステータスを返します。各フィールドの説明は [非同期タスク](https://docs.kovapi.com/ja/guide/async-jobs#fields) をご覧ください。2〜3 秒ごとに照会するか、Webhook を使ってください。

| ステータス | 意味 |
| --- | --- |
| queued | 順番待ち。`queue_position`（前にあるタスク数）と `eta_seconds`（予想待ち時間）が付きます。 |
| processing | 生成中。 |
| succeeded | 完了。結果は `data[0].url`、課金の内訳は `usage` にあります。 |
| failed | 失敗。理由は `error` にあり、予約したクレジットは全額返金されます。 |

1 つのアカウントで同時に生成できるタスクは 50 件までで、それ以上は送信順に順番待ちになります。15 分たっても始まらないタスクは失敗となり、全額返金されます。タスクの記録は 3 日間、画像のリンクは 15 日間保存されます。

## 生成にかかる時間

送信から結果まで通常 20〜60 秒です。4K、複数の参照画像を使う編集、混雑時はもう少しかかり、まれに 1〜2 分かかるジョブもあります。

## エラーと返金

送信時のエラーはすぐに HTTP 4xx / 5xx で返り、タスクは作成されず、課金もされません。受け付け後の失敗は照会エンドポイントで報告され、確保額は全額返金されます。すべてのコードは [エラーコード](https://docs.kovapi.com/ja/guide/errors) に載っています。

### 送信時に返るエラー

| HTTP | code | 原因 | 対処 |
| --- | --- | --- | --- |
| 400 | missing_prompt | `/v1/images/generations` に `prompt` がありません。 | `prompt` を追加してください。 |
| 400 | invalid_request | 参照画像を読み込めない（リンク切れ、画像ではない、16MB 超など。どれがなぜ読めないかは `message` に記載）、`/v1/images/edits` に参照画像がない、本文が JSON オブジェクトでない、または `n` が整数ではありません。 | `message` の内容に沿って直してから、もう一度送信してください。 |
| 400 | model_not_found | モデル ID のつづりが違う・`model` がない・そのモデルをこのエンドポイントでは使えない（たとえば対話モデルで画像のエンドポイントを呼び出した）のいずれかです。 | `GET /v1/models` または [API リファレンス](https://docs.kovapi.com/ja/api) にあるモデル ID を使ってください。 |
| 401 | invalid_api_key | キーが存在しない・削除された・無効化されているか、アカウントが停止されています。 | コンソールの「API Keys」ページでキーを確認してください。 |
| 402 | insufficient_quota | このリクエストの分を確保するだけの残高がありません。ゲートウェイはまずリクエストにかかりうる最大の費用を確保するため、同時に多くの呼び出しを送ったときにも起こることがあります。 | 一度に多くの呼び出しを送った直後なら、数秒待って再試行してください。そうでなければチャージしてください。 |
| 429 | rate_limit_exceeded | このキーに設定した 1 分あたりのリクエスト数の上限を超えました（直近 60 秒で数えます）。`Retry-After` ヘッダーは付きません。 | 数秒待ってから再試行するか、コンソールでこのキーの上限を引き上げてください。 |
| 503 | model_maintenance | モデルのメンテナンス中で、リクエストを受け付けていません。その間、別のモデルが代わりに回答することもありません。 | メンテナンスが終わってから再試行してください。状況は [サービス状態](https://kovapi.com/ja/status) で確認できます。 |
| 503 | service_unavailable | 当サイト側の一時的なエラーです（参照素材の保存に失敗した場合など）。`/v1/responses` が一時的に処理できないときも、`Retry-After` 付きで 503 を返します。 | しばらくしてから再試行してください。 |

### 失敗したタスク（`status` が `failed`）

| code | 発生する場面 | 対処 |
| --- | --- | --- |
| moderation_blocked | 画像：モデル提供元の安全審査がプロンプトまたは参照画像を拒否しました（コードが `content_policy_violation` の場合もあります）。 | プロンプトを書き直すか、参照画像を差し替えてください。そのまま再送信しても、たいてい再び拒否されます。 |
| upstream_error | その他の失敗：自動で再試行しても失敗した、順番待ちが 15 分を過ぎても始まらなかった、上流が理由を示さずに拒否した、などです。具体的な状況は `message` に書かれています。 | たいていは再送信すれば成功します。 |

## ポーリングの代わりに Webhook を使う

送信時に `callback_url` を付けると、タスクが終わった時点で（成功・失敗とも）、照会エンドポイントが返すものとまったく同じ内容をゲートウェイがその URL へ送ります。署名付きで、届かなかった場合は自動で再試行します。コンソールの「設定 → Webhook」で、アカウント全体の送信先を設定することもできます。 [Webhook のドキュメント →](https://docs.kovapi.com/ja/webhooks)

```
curl https://kovapi.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-image-2.6-flare", "prompt": "淡い色の背景に白い陶器のマグカップを置いたミニマルな商品写真、柔らかなサイドライト", "size": "1:1", "callback_url": "https://your-domain.com/webhook"}'
```
