gpt-image-2 画像生成と編集
OpenAI 互換の gpt-image-2 画像生成 + 編集 API:base_url の差し替えだけで利用可能、マルチリージョン、QCode キーで統一請求
API キーが必要ですか? 登録する →エンドポイントと Base URL →
目次
QCode.cc は リクエスト / レスポンス形式が OpenAI Images API と互換の gpt-image-2 サービスを提供し(一部パラメータの挙動が異なります。OpenAI 公式 API との違い 参照)、2 つのエンドポイントをカバーします:
- 画像生成
POST /v1/images/generations— JSON リクエスト、テキストのみから画像を生成 - 画像編集
POST /v1/images/edits— multipart で 1–8 枚の元画像をアップロード(オプションで mask)、prompt に従って再描画 / 編集 / 合成(2026 年 5 月リリース)
gpt-image-2 は OpenAI が 2026 年 4 月に公開した最新の画像モデルで、画像内の文字レンダリングは現存の公開モデルで最強(英語・中国語の文字を画像内に安定して描画可能)です。
ℹ️ OpenAI は 2026-09-08 に gpt-image-2.5 を公開しました(API モデル名
gpt-image-2.5-flare/gpt-image-2.5-sunburst)。本サービスはgpt-image-2.5、gpt-image-2.5-flare、gpt-image-2.5-sunburstを互換モデル名として受け付けるため、新しい名前で設定済みのクライアントはそのまま利用できます。これらの名前はすべて利用でき、課金は同一です。xhigh/maxの品質指定はhighとして処理され、4K / 任意解像度などの 2.5 専用機能は未対応です。
QCode.cc 接続の特徴:
- OpenAI SDK そのまま:
base_urlを差し替えるだけで利用可、リクエスト / レスポンス形式は OpenAI と互換(multipart edits エンドポイントを含む);一部パラメータの挙動が異なる点は末尾の差異表を参照 - マルチリージョン:グローバルスマートルーティング(api)/ アジア(韓国 / 台湾 / 香港)/ 北米・欧州(ロサンゼルス) — ネットワーク環境に応じて選択
- API キー統一:既存の QCode.cc
cr_キーを再利用、Claude Code / Codex と同一クォータ - 使用状況の統一表示:画像コールと対話コールが顧客ダッシュボードに統合表示、専用の使用状況ページも提供
- 両エンドポイントでクォータ共有:
generationsとeditsで API キーごとの 1 日 100 枚上限と 2 並列上限を共有
主な用途:ポスター生成、挿絵、製品画像、UI モックアップ、SNS 素材、画像編集(部分修正 / 複数画像合成 / 背景差し替え / 高忠実度修復)。
クイックスタート¶
画像生成(generations)¶
3 行の Python で最初の画像を:
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0, # 通常 1 枚 20-80 秒、まれに 100 秒超、180 秒以上を指定
)
result = client.images.generate(
model="gpt-image-2",
prompt="A cyberpunk Tokyo street at night, neon reflecting in rain puddles",
size="1024x1024",
quality="low",
n=1,
)
with open("output.png", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
画像編集(edits)¶
既存の画像 + prompt をアップロード、オプションで mask による部分再描画:
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0,
)
result = client.images.edit(
model="gpt-image-2",
image=open("cat.png", "rb"),
mask=open("mask.png", "rb"), # オプション:PNG alpha、透明部分が再描画領域
prompt="put a tiny crown on the cat",
size="1024x1024",
quality="high",
)
with open("edited.png", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
⚠️ timeout は必ず 180 秒以上を明示的に指定:OpenAI SDK のデフォルト timeout は短く、
gpt-image-2の推論時間は従来の text-to-image より大幅に長いです(下記 生成時間とタイムアウト設定 を参照)。
接続エンドポイント¶
gpt-image-2 サービス(generations + edits 共通)は QCode.cc のすべての接続ドメインで利用可能で、{base} に /qcode-img/v1 を付け足すだけです:
| ユーザー所在地 | 推奨 base_url | プロトコル | 備考 |
|---|---|---|---|
| 中国本土 | https://api.qcode.cc/qcode-img/v1 |
HTTPS | デフォルト推奨 |
| 香港 / 東南アジア | https://asia.qcode.cc/qcode-img/v1 |
HTTPS | アジアノード(韓国 / 台湾 / 香港で最寄り) |
| 北米 / 欧州 | https://us.qcode.cc/qcode-img/v1 |
HTTPS | ロサンゼルスノード |
すべてのエンドポイントは同じサービス・請求体系にルーティングされ、使用量とクォータは統一されます。どのエンドポイントも 1 リクエストを 100 秒で打ち切る制限はなく、サーバー側は 1 リクエスト最大 180 秒まで待ちます。
qcode-imgは画像生成・編集専用のパスプレフィックスで、Anthropic プロトコルの/api、OpenAI プロトコルの/openai/v1と並列の位置付けです。
API リファレンス¶
共通リクエストヘッダ¶
| Header | 必須 | 値 |
|---|---|---|
Authorization |
✓ | Bearer cr_xxxxxxxxxxxxxxxx(QCode.cc API キー) |
Content-Type |
✓ | application/json(generations)multipart/form-data(edits) |
生成エンドポイント /v1/images/generations¶
エンドポイント:POST {base_url}/images/generations
Content-Type:application/json
リクエストボディ:
{
"model": "gpt-image-2",
"prompt": "A small ceramic vase with sunflower, photorealistic",
"size": "1024x1024",
"quality": "low",
"n": 1
}
フィールド:
| フィールド | 型 | 必須 | デフォルト | 値 |
|---|---|---|---|---|
model |
string | ✗ | gpt-image-2 |
gpt-image-2(gpt-image-2-low / -medium / -high も受け付け、quality の指定と等価;互換名 gpt-image-2.5 / gpt-image-2.5-flare / gpt-image-2.5-sunburst も可、いずれも利用でき課金は同一);それ以外のモデル名は 400 unsupported_model を返します |
prompt |
string | ✓ | — | 画像の説明文、多言語対応(中英含む) |
size |
string | ✗ | 1024x1024 |
auto / 1024x1024 / 1024x1536 / 1536x1024 / 2048x2048;不正な値は 422 を返します。出力サイズは通常リクエストの size と一致しますが、返されるサイズが異なる場合もあります(例 1254×1254)。返った画像の実寸を基準にしてください |
quality |
string | ✗ | medium |
low / medium / high(xhigh / max は high として処理);価格には影響しません(課金規則 参照) |
n |
integer | ✗ | 1 | 1 リクエストの生成数(1 – 4);4 超は 400 を返します(サイレント切り捨てではありません) |
background |
string | ✗ | auto |
auto / opaque;transparent は 400 を返します(モデルは alpha チャンネルを生成できません) |
response_format |
string | ✗ | b64_json |
b64_json のみ;url を指定すると 400 を返します |
output_compression |
integer | ✗ | — | 0 – 100、JPEG / WebP に有効;範囲外は 400 を返します |
stream / partial_images |
— | ✗ | — | 未対応;指定すると 400 を返します |
編集エンドポイント /v1/images/edits¶
エンドポイント:POST {base_url}/images/edits
Content-Type:multipart/form-data(ファイルアップロードは form-data 必須、JSON 不可)
フィールド:
| フィールド | 型 | 必須 | デフォルト | 値 / 説明 |
|---|---|---|---|---|
model |
string | ✗ | gpt-image-2 |
省略可;編集エンドポイントは常に gpt-image-2 を使用します |
image |
file(× N) | ✓ | — | 元画像(PNG / JPEG / WebP);1 – 8 枚の複数画像合成に対応(複数枚は同一フィールド名を繰り返す:-F image=@a.png -F image=@b.png) |
mask |
file | ✗ | — | PNG alpha マスク;透明部分が再描画領域;mask の解像度は image と一致する必要あり(自動スケール);単一画像編集にのみ有効 |
prompt |
string | ✓ | — | 編集指示(多言語) |
size |
string | ✗ | auto |
auto / 1024x1024 / 1024x1536 / 1536x1024 / 2048x2048。出力サイズは通常リクエストの size と一致しますが、返されるサイズが異なる場合もあります(例 1254×1254)。返った画像の実寸を基準にしてください;不正な値は 422 を返します |
quality |
string | ✗ | auto |
auto / low / medium / high(xhigh / max は high として処理);価格には影響しません |
n |
integer | ✗ | 1 | 1 リクエストの生成数(1 – 4);4 超は 400 を返します(サイレント切り捨てではありません) |
background |
string | ✗ | auto |
auto / opaque。gpt-image-2 は transparent 非対応(モデルは alpha チャンネルを生成できず、指定すると 400 を返します) |
output_format |
string | ✗ | png |
png / jpeg / webp |
output_compression |
integer | ✗ | — | 0 – 100、JPEG / WebP に有効(PNG では無視);範囲外は 400 を返します |
input_fidelity |
string | ✗ | — | 指定不要:モデルは常に入力画像を高忠実度で処理します;low / high は無視され、それ以外の値は 400 を返します |
response_format |
string | ✗ | b64_json |
b64_json のみ受け付けます(url を指定すると 400 を返します) |
user |
string | ✗ | — | エンドユーザー ID のパススルー(不正利用の検出に使用) |
アップロードサイズ上限:単一ファイル ≤ 25 MB;複数ファイル合計 ≤ 50 MB(超えた場合は 413 image_too_large)。
レスポンス(両エンドポイント共通)¶
{
"created": 1777135432,
"data": [
{
"b64_json": "iVBORw0KGgo...(base64 PNG/JPEG/WebP, 1-3 MB)",
"revised_prompt": "A small ceramic vase with sunflower..."
}
]
}
b64_json:画像の base64 エンコードデータ、フロントエンドで<img src="data:image/<format>;base64,...">として直接レンダー可revised_prompt:モデルが元の prompt を改善したバージョン(ユーザーへの参考表示はオプション)
エラーレスポンス¶
エラーは OpenAI 標準スキーマに準拠:
{
"error": {
"type": "rate_limit_error",
"code": "image_daily_limit",
"message": "Daily image generation count limit reached..."
}
}
| HTTP | code | 意味 | 課金 |
|---|---|---|---|
| 400 | invalid_json / missing_prompt |
リクエストボディが不正な JSON / prompt がない |
No |
| 400 | unsupported_model |
モデル名がサポート外(gpt-image-2 と互換名 gpt-image-2.5 / -flare / -sunburst は可;gpt-image-1、dall-e-3 などはこのエラー) |
No |
| 400 | stream_not_supported |
stream=true または partial_images が指定された |
No |
| 400 | unsupported_background / unsupported_response_format / unsupported_n / unsupported_output_compression |
パラメータの値がサポート外(各エンドポイントのパラメータ表を参照) | No |
| 400 | invalid_multipart / invalid_content_type |
編集エンドポイントのフォーム形式が不正(multipart/form-data 必須) |
No |
| 400 | content_policy_violation など |
コンテンツ審査がリクエストを拒否、prompt または画像を変更してください | No |
| 401 | invalid_api_key / key_disabled / key_expired |
API キーが無効 / 無効化済み / 期限切れ | No |
| 413 | image_too_large |
単一ファイル > 25 MB、または合計 > 50 MB | No |
| 422 | unsupported_size |
size の値がサポート外(有効な値は各エンドポイントのパラメータ表を参照) |
No |
| 429 | crs_daily_exhausted / crs_total_exhausted |
アカウントの 1 日 / 累計予算を使い切り | No |
| 429 | image_daily_limit |
API キーごとの 1 日 100 枚上限到達(generations + edits 共有、引き上げ可) | No |
| 429 | concurrency_exhausted |
API キーごとの並列数上限 2 に到達(引き上げ可) | No |
| 501 | endpoint_not_implemented |
編集エンドポイントを一時的にメンテナンスで停止中 | No |
| 503 | image_provider_unavailable |
画像サービスが一時的に利用不可;レスポンスに Retry-After が含まれます。タイムアウトと再試行 参照 |
No |
| 503 | service_overloaded / billing_backend_unavailable |
混雑中 / 課金バックエンドが一時的に利用不可、後で再試行 | No |
| 504 | upstream_timeout |
編集リクエストが 180 秒以内に完了しなかった | No |
コードサンプル¶
Python(OpenAI SDK、推奨)¶
画像生成:
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0,
)
result = client.images.generate(
model="gpt-image-2",
prompt="A cyberpunk Tokyo street at night, neon reflecting in rain puddles",
size="1024x1024",
quality="low",
n=1,
)
img_bytes = base64.b64decode(result.data[0].b64_json)
with open("output.png", "wb") as f:
f.write(img_bytes)
print("output.png を保存しました")
画像編集(単一画像 + mask 部分再描画):
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0,
)
result = client.images.edit(
model="gpt-image-2",
image=open("cat.png", "rb"),
mask=open("mask.png", "rb"),
prompt="put a tiny crown on the cat",
size="1024x1024",
quality="high",
extra_body={"output_format": "png"},
)
img = base64.b64decode(result.data[0].b64_json)
with open("edited.png", "wb") as f:
f.write(img)
画像編集(複数画像合成、2 – 8 枚):
result = client.images.edit(
model="gpt-image-2",
image=[
open("scene.png", "rb"), # 1 枚目:シーン背景
open("product.png", "rb"), # 2 枚目:配置する商品
],
prompt="Place the product naturally into the scene, match the lighting and shadows.",
size="1536x1024",
quality="high",
)
curl¶
画像生成:
curl https://api.qcode.cc/qcode-img/v1/images/generations \
-H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A cyberpunk Tokyo street at night",
"size": "1024x1024",
"quality": "low",
"n": 1
}' \
| jq -r ".data[0].b64_json" | base64 -d > output.png
画像編集:
curl https://api.qcode.cc/qcode-img/v1/images/edits \
-H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
-F "model=gpt-image-2" \
-F "image=@cat.png" \
-F "mask=@mask.png" \
-F "prompt=put a tiny crown on the cat" \
-F "size=1024x1024" \
-F "quality=high" \
-F "output_format=png" \
| jq -r ".data[0].b64_json" | base64 -d > edited.png
複数画像合成(-F image=@ を繰り返すだけ):
curl https://api.qcode.cc/qcode-img/v1/images/edits \
-H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
-F "model=gpt-image-2" \
-F "image=@scene.png" \
-F "image=@product.png" \
-F "prompt=Place the product naturally into the scene" \
-F "size=1536x1024" \
-F "quality=high"
JavaScript / Node.js / ブラウザ¶
画像生成:
const r = await fetch("https://api.qcode.cc/qcode-img/v1/images/generations", {
method: "POST",
headers: {
"Authorization": "Bearer cr_YOUR_QCODE_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-2",
prompt: "A cyberpunk Tokyo street at night",
size: "1024x1024",
quality: "low",
n: 1,
}),
});
const json = await r.json();
const dataUrl = "data:image/png;base64," + json.data[0].b64_json;
document.querySelector("img").src = dataUrl;
画像編集(ブラウザ FormData):
const fd = new FormData();
fd.append("model", "gpt-image-2");
fd.append("image", imageFile); // <input type="file"> からの File オブジェクト
fd.append("mask", maskFile); // オプション
fd.append("prompt", "put a tiny crown on the cat");
fd.append("size", "1024x1024");
fd.append("quality", "high");
fd.append("output_format", "png");
const r = await fetch("https://api.qcode.cc/qcode-img/v1/images/edits", {
method: "POST",
headers: { "Authorization": "Bearer cr_YOUR_QCODE_API_KEY" },
// Content-Type は手動で設定しないでください — FormData が boundary 付き multipart/form-data を自動設定します
body: fd,
});
const json = await r.json();
const dataUrl = "data:image/png;base64," + json.data[0].b64_json;
document.querySelector("img").src = dataUrl;
クォータ規則¶
デフォルト上限¶
| 項目 | デフォルト値 | 説明 |
|---|---|---|
| 1 日の画像数 | 100 枚 / 日 / キー | 北京時間 0 時にリセット;generations と edits で共有 |
| 並列数 | 同時 2 件 | 超過時は 429 concurrency_exhausted;両エンドポイントで共有 |
| アップロードサイズ(edits のみ) | 単一ファイル 25 MB / 合計 50 MB | 超過時は 413 image_too_large |
| アカウント予算 | QCode.cc アカウントの dailyCostLimit / totalCostLimit を共有 |
超過時は 429 crs_daily_exhausted |
デフォルトのクォータは大多数のユーザーに十分です。引き上げが必要な場合はサポートまでお問い合わせください。
使用状況の確認¶
- 顧客ダッシュボード:チャットと画像コールを統合表示(最終使用時刻、当日コスト、累計コスト、モデル分布)
- セルフサービスページ:https://api.qcode.cc/qcode-img/usage — API キーを入力して直近 30 日の使用状況、詳細コール一覧、ECharts のトレンドグラフを確認(API キーはブラウザのローカルにのみ保存、サーバーには送信されません)
課金規則¶
課金方式¶
generations と edits は同じ課金で、出力画像 1 枚あたりで課金されます:
| 課金項目 | 単価 |
|---|---|
| 出力画像 1 枚 | $0.30 |
- 出力画像 1 枚 $0.30:1 回の生成で
n枚ならn × $0.30 size/quality/ 入力画像の枚数 /mask/ prompt の長さはいずれも価格に影響しませんgpt-image-2、gpt-image-2-low/-medium/-high、互換名のgpt-image-2.5/-flare/-sunburstはいずれも料金が完全に同じです- 2026-10-07 より 1 枚 $0.30 になりました(2026-10-06 からは 1 枚 $0.15、それ以前はトークン課金)
失敗は課金されません¶
失敗したリクエストはいずれも課金されません:4xx(コンテンツ審査による拒否を含む)/ 5xx、タイムアウト、クライアント切断(接続クローズ)も課金対象外です。
通貨¶
費用は USD で計算され、アカウント決済は QCode.cc メインアカウントの通貨ポリシー(人民元 / 米ドル)に従います。
生成時間とタイムアウト設定¶
gpt-image-2 は推論ベースのモデルで、従来の text-to-image モデルより処理時間が明らかに長いです。1 枚あたり通常 20–80 秒、まれに 100 秒を超え、まれに 180 秒近くかかることもあります。
実践的なアドバイス:
- OpenAI Python SDK のデフォルト timeout は短すぎるため、
timeout=180.0以上を必ず明示的に指定 - ブラウザの
fetchにはデフォルト timeout がありませんが、AbortControllerで設定する場合は最低 180 秒を確保 - 自分のリバースプロキシ / ゲートウェイを経由する場合は、その読み取りタイムアウトを ≥ 180 秒に引き上げてください
タイムアウトと再試行¶
- 503
image_provider_unavailable:画像サービスが一時的に利用不可の状態です。課金はありません。レスポンスヘッダRetry-After(秒)に従って待ってから再試行してください。指数バックオフ(30 秒 → 60 秒 → 120 秒)で最大 3 回を推奨します。継続して失敗する場合はサポートまでお問い合わせください - 504
upstream_timeout/ クライアント側のタイムアウト:1 回の生成が 180 秒を超えた状態です。そのまま再試行して構いません。何度もタイムアウトする場合は prompt を簡潔にするか、入力画像枚数を減らしてください - 429
crs_daily_exhausted/crs_total_exhausted:アカウントの枠を使い切った状態で、対応はチャット系エンドポイントと同じです。個人プランは北京時間 0 時のリセットを待つかブースターパックを購入し、クォータパックは追加購入します。詳しくはエラーコード参考 - 429
image_daily_limit/concurrency_exhausted:Retry-Afterに従って待ってください。継続して発生する場合はサポートへご連絡ください - 失敗リクエストは課金されないため、再試行で二重に課金されることはありません
Prompt 作成のポイント¶
画像生成(generations)¶
- 多言語対応:中国語、英語、混在いずれも可
- 詳細度が高いほど良い:環境、構図、ライティング、スタイル、レンズ距離 / 焦点距離 / アングル等
- ブランド名・著名人を避ける:モデルが拒否したり、ぼやけた結果を返したりすることがあります(OpenAI コンテンツポリシー)
- 画像内の文字レンダリング:
gpt-image-2は文字レンダリング能力が非常に高く、画像内に英語・中国語のタイトル・短いフレーズ・ポスター文字を埋め込めます(prompt に直接書くだけ、特殊な記法不要) - コンテンツ審査:コンテンツポリシーに違反する prompt は 400 を返します(例
content_policy_violation)。課金されません
例:
A vintage poster in Bauhaus style, bold black text "MORNING COFFEE" centered,
warm orange and cream color palette, geometric shapes, slightly textured paper background
画像編集(edits)¶
- mask は「どこを」、prompt は「何に」:透明部分が再描画領域、不透明部分は元画像を保持。mask の解像度は
imageと一致する必要があります(自動スケール)。 - 複数画像入力では prompt で各画像の役割を明示:例 "First image is the scene, second image is the product to place into it" —
gpt-image-2は順序通りに入力を解釈します。 input_fidelityの指定は不要:gpt-image-2 は常に高忠実度で入力画像を処理し、顔・ロゴ・文字・商品ディテールを自動的に保持します(low/highは無視され、それ以外の値は 400 を返します)。- mask なしの場合:画像全体が prompt に従って再描画されます(意味的構造は保持されますが、すべての領域が変わる可能性あり)。
例:
# 部分修復:猫に小さな冠を追加、他は元のまま
prompt = "Put a tiny golden crown on the cat's head. Keep everything else unchanged."
mask = (頭部分のみが透明な alpha PNG)
OpenAI 公式 API との違い¶
| 項目 | OpenAI 公式 | QCode.cc |
|---|---|---|
| SDK 互換性 | — | ✅ リクエスト / レスポンス形式は互換、base_url の差し替えのみ。以下の行が挙動の差異です |
| 課金 | トークン単位 | 出力画像 1 枚 $0.30、n 枚なら n × $0.30 |
/v1/images/generations(画像生成) |
✅ | ✅ |
/v1/images/edits(画像編集) |
✅ | ✅ 1 – 8 枚の複数画像合成、mask 部分再描画に対応 |
size |
— | 出力サイズは通常 size と一致。異なる場合は返った画像の実寸を基準に |
quality |
— | 価格には影響しません |
background=transparent |
— | ❌ 400 を返します |
response_format=url |
— | ❌ b64_json のみ |
stream + partial_images(増分返却) |
✅ | ⏳ 未対応、指定すると 400 を返します |
/v1/images/variations(純バリエーション生成) |
✅(DALL·E エンドポイント) | ⏳ 未対応(edits に説明的な prompt を組み合わせて近似) |
gpt-image-2.5(flare / sunburst) |
✅(2026-09-08 リリース) | ✅ 互換モデル名を受け付け、いずれも利用でき課金は同一;xhigh / max は high として処理、2.5 専用機能(4K など)は未対応 |
オンライン Playground¶
https://api.qcode.cc/qcode-img/ — ブラウザですぐ試用:
- 画像生成 + 画像編集 両モードを GUI で操作(画像アップロード、mask 描画、background / output_format の選択など)
- API キー + Prompt を入力して即時生成
- 中英 UI 切替
- デフォルト
low品質 - 完全な API ドキュメントを内包(curl / Python / JavaScript の 3 タブ + パラメータ表 + エラーコード表)
- 生成画像を PNG / JPEG / WebP でワンクリックダウンロード
よくある質問¶
Q:503 image_provider_unavailable が返ったらどうすればいいですか?
A:画像サービスが一時的に利用不可の状態です。失敗リクエストは課金されません。レスポンスヘッダ Retry-After に従って待ち、再試行してください(30 秒から指数バックオフ、最大 3 回)。継続して失敗する場合はサポートまでお問い合わせください。
Q:gpt-image-2.5(flare / sunburst)には対応していますか?
A:gpt-image-2.5、gpt-image-2.5-flare、gpt-image-2.5-sunburst をそのまま使えます。これらの名前はすべて利用でき、課金は同一です。xhigh / max は high として処理され、4K などの 2.5 専用機能は未対応です。
Q:出力画像のサイズが送った size と違うのはなぜですか?
A:出力サイズは通常リクエストの size と一致しますが、返されるサイズが異なる場合もあります(例 1254×1254)。返った画像の実寸を基準にしてください。正確なサイズが必要ならローカルでトリミング / スケールしてください。
Q:quality は価格に影響しますか?
A:quality は価格に影響しません。low でも high でも、出力画像は 1 枚 $0.30 です。
Q:失敗したリクエストは課金されますか? A:されません。4xx / 5xx、タイムアウト、コンテンツ審査による拒否、クライアント切断はいずれも課金対象外です。
関連ドキュメント¶
- エンドポイントと API パス — QCode.cc のすべての接続ドメイン、プロトコルパス、curl 自己診断方法
- 課金説明 — プラン、クォータ、費用規則
QCode を始める
API キーひとつで Claude Code・Codex などに対応。トークン単位の課金で、各モデルの単価は qcode.cc/models に掲載