GPT Image 2.6 Sunburst(トークン課金):gpt-image-2.6-sunburst と同じモデルで、OpenAI が返す実際のトークン使用量で課金し、単価は公式の 72% です。xhigh と max 画質が使え、moderation: low が効きます。1K / 2K / 4K、15 種類の比率、生成されたオリジナルを納品し、失敗時は課金しません。GIF にはまだ対応していません。混雑時はジョブが順番待ちになります。
クイックスタート
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-sunburst-token", "prompt": "夕暮れの港を描いた油絵、筆跡がはっきり見える、暖色系の配色", "size": "16:9", "resolution": "2K"}'レスポンス(HTTP 202)
{
"id": "img_7f3c9a1e2b4d6f8a0c1e3b5d",
"object": "image.generation.job",
"status": "queued",
"created": 1791281400,
"model": "gpt-image-2.6-sunburst-token"
}ステップ 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-sunburst-token",
"data": [
{"url": "https://img.kovapi.com/i/2be8cd16d37f3a4b9c0e1f2a3b4c5d6e.png"}
],
"usage": {"images": 1, "resolution": "2K", "model": "gpt-image-2.6-sunburst-token"}
}ステップ 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-sunburst-token",
"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-sunburst-token.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
コンソールで API Key を作成すると利用を開始できます。
リクエストパラメータ
POST /v1/images/generations のリクエスト本文(JSON):
| パラメータ | 種別 | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | モデル ID:gpt-image-2.6-sunburst-token。 |
| prompt | string | はい | 描きたい内容。画像から画像の場合は、どう変えるかを書きます。 |
| size | string | いいえ | 比率。表の 15 種類のいずれか(例:16:9)。ピクセルサイズ、または auto(参照画像があれば 1 枚目の比率に合わせる)も指定できます。指定しないと 1:1 です。 |
| resolution | string | いいえ | グレード:1K(既定)、2K、4K。 |
| quality | string | いいえ | 画質:low、medium(既定)、high、xhigh、max、auto(モデルが決める)。画質が高いほどトークンが増え、同じサイズで medium の約 0.57 / 1 / 1.21 / 2.1 / 4.8 倍です。 |
| image / images | string / array | いいえ | 参照画像。渡すと画像から画像になります。image で 1 枚、images で複数(最大 16 枚)。公開リンク、data: URI、base64 が使えます。 |
| n | integer | いいえ | 枚数。指定しないことをおすすめします。複数枚ほしいときは、複数のタスクを同時に送信してください。n を指定すると n 枚分を先に確保し、実際に納品した枚数で精算します。 |
| callback_url | string | いいえ | タスク終了時に結果を送る先。下の Webhook の項目をご覧ください。 |
| complexity | string | いいえ | 構想の度合い:low、medium、high。トークン課金版ではまだ効きません(指定してもエラーにはなりません)。料金は変わりません。 |
| moderation | string | いいえ | モデレーションの強さ:auto(既定)か low(少し緩め。OpenAI のコンテンツポリシーの範囲内です)。 |
| output_compression | integer | いいえ | 圧縮の度合い。0–100 の整数で、jpeg / webp 出力のみ。小さいほどファイルが小さくなります。 |
| mask_url | string | いいえ | 部分修正用のマスク:1 枚目の参照画像と同じサイズの PNG で、透明な部分が変更する領域です。参照画像が必要で、markup_url とは併用できません。モデルはマスクを目安にしますが、透明部分だけを厳密に変えるとは限りません。 |
| markup_url | string | いいえ | マークアップ層:変えたい位置を丸や印で示した透明 PNG で、1 枚目の参照画像に重ねます。プロンプトで何をするか書いてください(例:「赤丸の中の花瓶を青にして、赤丸は消す」)。参照画像が必要で、mask_url とは併用できません。最大 1677 万ピクセル。 |
background に transparent(透明背景。PNG か WebP 出力と組み合わせてください)を指定できます。output_format は png(既定)、jpeg、webp。n は 1 のみ。表にないパラメーターは送信時に 400 unsupported_image_parameter を返し、課金しません。結果は url で返し、usage にそのジョブのトークン数と課金額が入ります。
トークン課金
送信時にサイズ・画質・参照画像の枚数から上限額を仮押さえし、生成後に OpenAI が返す実際の使用量で精算して、差額はその場で返します。失敗時は全額返金です。100 万トークンあたりの価格:
| 項目 | 当サービスの価格 | OpenAI 公式価格 |
|---|---|---|
| 画像出力 | $21.6 | $30 |
| 画像入力(参照画像) | $5.76 | $8 |
| テキスト入力 | $3.6 | $5 |
実測の出力トークンと費用(入力は含まず)
| size | quality | output tokens | USD |
|---|---|---|---|
| 1024x1024 | low | 824 | $0.018 |
| 1024x1024 | medium | 1,449 | $0.031 |
| 1024x1024 | high | 1,758 | $0.038 |
| 1024x1024 | xhigh | 3,122 | $0.067 |
| 1024x1024 | max | 7,024 | $0.152 |
| 2048x2048 | medium | 2,944 | $0.064 |
| 2048x2048 | max | 14,272 | $0.308 |
| 3840x2160 | medium | 2,855 | $0.062 |
| 3840x2160 | max | 13,342 | $0.288 |
| 3840x1280 | medium | 1,096 | $0.024 |
同じサイズ・画質なら出力トークンは毎回同じで、プロンプトに左右されません。参照画像は 1 枚あたり約 700–1,600 の画像入力トークンです。
比率・解像度・出力サイズ
size に比率、resolution に段階を指定します。生成されたオリジナル画像を切り抜き・リサイズなしで、下表のサイズのまま納品します。幅と高さはいずれも 16 の倍数で、4K は 1 辺 3840 px 以内・総画素数約 830 万以内です。
| 比率 | 1K | 2K | 4K |
|---|---|---|---|
| 1:1 | 1024x1024 | 2048x2048 | 2880x2880 |
| 3:4 | 768x1024 | 1536x2048 | 2480x3312 |
| 4:3 | 1024x768 | 2048x1536 | 3312x2480 |
| 2:3 | 672x1024 | 1360x2048 | 2336x3520 |
| 3:2 | 1024x672 | 2048x1360 | 3520x2336 |
| 9:16 | 608x1088 | 1152x2048 | 2160x3840 |
| 16:9 | 1088x608 | 2048x1152 | 3840x2160 |
| 4:5 | 816x1024 | 1632x2048 | 2576x3216 |
| 5:4 | 1024x816 | 2048x1632 | 3216x2576 |
| 1:2 | 576x1152 | 1024x2048 | 1920x3840 |
| 2:1 | 1152x576 | 2048x1024 | 3840x1920 |
| 9:21 | 544x1264 | 880x2048 | 1648x3840 |
| 21:9 | 1264x544 | 2048x880 | 3840x1648 |
| 1:3 | 480x1440 | 672x2016 | 1280x3840 |
| 3:1 | 1440x480 | 2016x672 | 3840x1280 |
- 表の 15 種類の比率に対応します。それ以外の比率は送信時に 400 を返し、課金しません。
sizeをautoにして参照画像を渡すと、1 枚目の参照画像に最も近い比率で生成し、参照画像がなければ 1:1 です。1K のいくつかの細長い比率はモデルの最小ピクセル数を下回るため、表のとおり拡大したサイズで生成します(16:9 は 1088×608)。 sizeにはピクセルサイズ(例:1536x1024)も指定できます。比率は表の 15 種類のいずれかで、幅と高さは 16 の倍数に切り下げ、その段階の上限を超えると等倍で縮小、小さすぎるとモデルの最小ピクセル数(約 65.5 万)まで等倍で拡大します。段階はresolutionで決まり、ない場合は長辺で判断します:1536 以下は 1K、2048 以下は 2K、それより大きいと 4K。長辺の範囲は 1K が 512–1536、2K が 2016–2304、4K が 2049–4096 で、外れると送信時に 400 を返し、課金しません。
画質とネイティブ解像度
qualityを指定しないと medium で生成します。画質が変えるのはトークン数と料金だけで、サイズは変わりません。autoはモデルが決め、仮押さえはmaxで見積もり、精算は実際の使用量です。qualityに1K、2K、4Kが入っていてresolutionがない場合は、解像度ティアとして扱います(サイズも料金もそのティアになります)。- 混雑時はジョブがすぐ失敗せずに順番待ちになります。長く待っても(約 15 分)画像が出ないときは失敗として全額返金し、そのまま再送信できます。
画像から画像と参照画像
image(1 枚)かimages(複数、最大 16 枚。超えた分は使いません)を渡すと画像から画像になります。プロンプトでどう変えるかを書いてください。POST /v1/images/editsも同じパラメーターで使えます。- どちらのエンドポイントも JSON の本文だけを受け付け、multipart でのファイルアップロードには対応していません。そのため OpenAI SDK の
images.edit()はそのままでは使えません。下の例のように、リンクまたは base64 で渡してください。 - 参照画像はそれぞれ公開リンク(http / https)、data: URI、またはプレーンな base64 で、1 枚 16MB まで、形式は PNG、JPEG、WebP に限ります。それ以外の形式の参照画像はジョブが失敗し、全額返金されます。
- 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-sunburst-token", "prompt": "人物はそのままに、背景を夜の海辺に変えて、暖かい色のストリングライトを添える", "images": ["https://example.com/people.jpg", "https://example.com/beach.jpg"], "size": "3:4", "resolution": "2K"}'タスクの状態と返却フィールド
GET /v1/images/jobs/{id} は次のステータスを返します。各フィールドの説明は 非同期タスク をご覧ください。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 で返り、タスクは作成されず、課金もされません。受け付け後の失敗は照会エンドポイントで報告され、確保額は全額返金されます。すべてのコードは エラーコード に載っています。
送信時に返るエラー
| 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 リファレンス にあるモデル ID を使ってください。 |
| 401 | invalid_api_key | キーが存在しない・削除された・無効化されているか、アカウントが停止されています。 | コンソールの「API Keys」ページでキーを確認してください。 |
| 402 | insufficient_quota | このリクエストの分を確保するだけの残高がありません。ゲートウェイはまずリクエストにかかりうる最大の費用を確保するため、同時に多くの呼び出しを送ったときにも起こることがあります。 | 一度に多くの呼び出しを送った直後なら、数秒待って再試行してください。そうでなければチャージしてください。 |
| 429 | rate_limit_exceeded | このキーに設定した 1 分あたりのリクエスト数の上限を超えました(直近 60 秒で数えます)。Retry-After ヘッダーは付きません。 | 数秒待ってから再試行するか、コンソールでこのキーの上限を引き上げてください。 |
| 503 | model_maintenance | モデルのメンテナンス中で、リクエストを受け付けていません。その間、別のモデルが代わりに回答することもありません。 | メンテナンスが終わってから再試行してください。状況は サービス状態 で確認できます。 |
| 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 のドキュメント →
curl https://kovapi.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-image-2.6-sunburst-token", "prompt": "夕暮れの港を描いた油絵、筆跡がはっきり見える、暖色系の配色", "size": "1:1", "callback_url": "https://your-domain.com/webhook"}'