gpt-image-2 画像生成

OpenAI 互換の gpt-image-2 文字から画像 API:base_url の差し替えだけで利用可能、マルチリージョン、QCode キーで統一請求

gpt-image-2 画像生成

QCode.cc は OpenAI 完全互換gpt-image-2 文字から画像生成 API を提供します。gpt-image-2 は OpenAI が 2026 年 4 月に公開した最新の文字から画像モデルで、画像内の文字レンダリングは現存の公開モデルで最強(英語・中国語の文字を画像内に安定して描画可能)です。

QCode.cc 接続の特徴:

  • OpenAI SDK そのままbase_url だけ変更、リクエスト / レスポンス形式は 100% 互換
  • マルチリージョン:HK / 日本 / 米国 / 欧州 / 深圳直結 — ネットワーク環境に応じて選択
  • API キー統一:既存の QCode.cc cr_ キーを再利用、Claude Code / Codex / Gemini CLI と同一クォータ
  • 使用状況の統一表示:画像コールと対話コールが顧客ダッシュボードに統合表示、専用の使用状況ページも提供

主な用途:ポスター生成、挿絵、製品画像、UI モックアップ、SNS 素材。


クイックスタート

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 枚 30-90 秒、最低 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))

⚠️ timeout を必ず 180 秒以上に明示設定:OpenAI SDK のデフォルトは短く、gpt-image-2 は推論ベースのため従来の文字から画像より大幅に時間がかかります(生成時間とタイムアウト 参照)。


接続エンドポイント

gpt-image-2 は QCode.cc の全接続ドメインで利用可能です。{base}/qcode-img/v1 の形式で組み立ててください:

利用地域 推奨 base_url プロトコル 備考
中国本土 http://103.236.53.153/qcode-img/v1 HTTP 深圳直結、CDN 100 秒制限なし、medium / high には必須
中国本土(HTTPS 必須) https://api.qcode.cc/qcode-img/v1 HTTPS グローバル CDN 経由、medium / high で 524 の可能性あり(CDN 100 秒上限 参照)
香港 / 東南アジア https://asia.qcode.cc/qcode-img/v1 HTTPS 香港ノード
欧州 https://eu.qcode.cc/qcode-img/v1 HTTPS フランクフルトノード
北米 https://us.qcode.cc/qcode-img/v1 HTTPS ロサンゼルスノード

すべてのエンドポイントは同一の請求体系にルーティングされ、使用量とクォータは統一されます。全ドメインの仕様は 接続点と API 形式 を参照。

qcode-img は画像生成専用のパスプレフィックスで、Anthropic の /api、OpenAI の /openai/v1、Gemini の /gemini と並列です。


API 仕様

エンドポイント

POST {base_url}/images/generations

リクエストヘッダー

Header 必須
Authorization Bearer cr_xxxxxxxxxxxxxxxx(QCode.cc API キー)
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
prompt string 画像説明、多言語対応(英語 / 日本語 / 中国語など)
size string 1024x1024 1024x1024(正方形)/ 1024x1536(縦)/ 1536x1024(横)
quality string medium low / medium / high
n integer 1 1 回の生成枚数(1 – 4)

レスポンス

{
  "created": 1777135432,
  "data": [
    {
      "b64_json": "iVBORw0KGgo...(base64 PNG, 1-3 MB)",
      "revised_prompt": "A small ceramic vase with sunflower..."
    }
  ]
}
  • b64_json:画像の base64 PNG。<img src="data:image/png;base64,..."> で直接表示可能
  • revised_prompt:モデルが最適化したプロンプト(任意で表示)

エラーレスポンス

OpenAI 標準スキーマに準拠:

{
  "error": {
    "type": "rate_limit_error",
    "code": "image_daily_limit",
    "message": "Daily image generation count limit reached..."
  }
}
HTTP code 意味
401 invalid_api_key API キー無効または無効化済み
401 key_expired API キー期限切れ
422 unsupported_size サイズ非対応(上記 3 種のみ)
429 crs_daily_exhausted アカウントの日次予算到達
429 crs_total_exhausted アカウントの累積予算到達
429 image_daily_limit 1 キー 1 日 100 枚上限到達(デフォルト、引上げ可)
429 concurrency_exhausted 1 キー同時 2 件上限到達(デフォルト、引上げ可)
503 service_overloaded サービス全体過負荷、しばらく後再試行
503 image_provider_unavailable 上流が一時的に利用不可、再試行を

コードサンプル

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 を保存しました")

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

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;

制限とクォータ

デフォルト制限

項目 デフォルト 備考
日次画像数 100 枚 / 日 / キー 北京時間 0 時にリセット
同時実行数 2 件 超過時 429 concurrency_exhausted
アカウント予算 QCode.cc メインアカウントの dailyCostLimit / totalCostLimit と共有 超過時 429 crs_daily_exhausted

デフォルトで大多数のユーザーには十分です。引上げ希望の場合はサポートまで。

使用状況の確認

  • 顧客ダッシュボード:チャット呼び出しと統合表示(最終利用時間、当日コスト、累積コスト、モデル別内訳)
  • セルフサービス画面https://api.qcode.cc/qcode-img/usage — API キーを入力して 30 日間の使用量、詳細呼び出しリスト、ECharts トレンドグラフを表示(API キーはブラウザのローカルストレージにのみ保存、サーバーにアップロードしません)

課金ルール

1 枚あたりの基本価格

size low medium high
1024×1024 $0.08 (floor) $0.08 (floor) $0.211
1024×1536 $0.08 (floor) $0.08 (floor) $0.165
1536×1024 $0.08 (floor) $0.08 (floor) $0.165
2048×2048 $0.08 (floor) $0.08 (floor) $0.285

1 回あたり最低 $0.08

  • 実コスト < $0.08 の場合 $0.08 で課金(low / medium はほとんどこの floor に達する)
  • 実コスト ≥ $0.08 の場合は実額で課金(上乗せなし)

複数枚

n > 1 の場合は枚数に比例して加算。例:n=2 + 1024×1024 high = 2 × $0.211 = $0.422。

失敗時は無課金

4xx / 5xx の失敗リクエストは課金されません。クライアント切断(接続クローズ)も無課金。

通貨

費用は USD 計算。最終決済は QCode.cc メインアカウントの通貨ポリシー(人民元 / 米ドル)に従います。


生成時間とタイムアウト

gpt-image-2 は推論ベースのモデルで、従来の文字から画像(DALL·E 3 / SDXL など)より大幅に時間がかかります

quality 一般的な所要時間 複雑 prompt の上限
low 20 – 35 秒 約 50 秒
medium 50 – 90 秒 約 120 秒
high 70 – 120 秒 約 150 秒

実装上の注意

  • OpenAI Python SDK のデフォルトタイムアウトは短いため、timeout=180.0 以上を明示設定必須
  • ブラウザの fetch にはデフォルトタイムアウトはありませんが、AbortController でタイムアウトを設定する場合は最低 180 秒
  • 中国本土ユーザーが medium / high を使う場合は深圳直結エンドポイント必須、そうでないと下記の CDN 524 問題に当たります

CDN 100 秒ハード制限(524 エラー)

api.qcode.cc / asia.qcode.cc / eu.qcode.cc / us.qcode.cc 経由の HTTPS リクエストはグローバル CDN(CloudFlare)を通過します。CDN は 1 リクエストでオリジンの応答を 100 秒以上待つと強制的に 524 エラーを返します

quality CDN 100 秒で安全?
low ✅ 安全(< 35 秒)
medium ⚠️ たまに上限到達(100 秒近く)
high ❌ 頻繁に 524

対策(medium / high 推奨)

  1. 深圳 HTTP エンドポイントを直接利用 http://103.236.53.153/qcode-img/v1(CDN 経由なし、100 秒制限なし)
  2. または偶発的な 524 を許容してクライアント側で自動再試行

プロンプト記述のコツ

  • 多言語対応:日本語 / 英語 / 中国語、混在も可
  • 具体的に:環境、構図、ライティング、スタイル、レンズ / 焦点距離 / 視点など
  • ブランド名 / 著名人物は避ける:モデルが拒否したり曖昧な結果を返す場合あり(OpenAI コンテンツポリシー)
  • 文字レンダリングgpt-image-2 は画像内の文字描画が非常に強力。日本語 / 英語 / 中国語のタイトル、短文、ポスター文字をプロンプトに直接書き込めます(特殊な構文不要)

サンプルプロンプト:

A vintage poster in Bauhaus style, bold black text "MORNING COFFEE" centered,
warm orange and cream color palette, geometric shapes, slightly textured paper background

OpenAI 公式 API との差異

項目 OpenAI 公式 QCode.cc
SDK 互換性 ✅ 100% 互換、base_url 差し替えのみ
課金 トークンベース精算 上記の段階定価、最低 $0.08 / 枚
/v1/images/edits(画像編集) サポート ⏳ 未対応
stream + partial_images(増分返却) サポート ⏳ 未対応
/v1/images/generations メイン

オンライン Playground

https://api.qcode.cc/qcode-img/ — ブラウザで即試用:

  • API キー + Prompt 入力で即座に生成
  • 中英バイリンガル切替
  • デフォルト low 品質(CDN 524 回避)
  • 完全な API ドキュメント内蔵(curl / Python / JavaScript の 3 タブ + パラメーター表 + エラーコード表)
  • 生成 PNG をワンクリックダウンロード

関連ドキュメント

🚀
QCode を始めよう — Claude Code & Codex
1つのプランで Claude Code と Codex の両方を加速、アジア太平洋低遅延
料金プランを見る → アカウント登録
3人以上のチーム?
企業版:専用ドメイン + サブKey管理 + 封禁保護、¥250/人/月〜
企業版を見る →