GPT Image 2:最初のImage APIリクエスト

BetterToken経由で最初のGPT Image 2リクエストを送り、b64_json画像を保存し、Key・モデル・残高のエラーを解決します。

目次

BetterTokenで最初の画像を生成するのに必要なのは、HTTPリクエスト1回だけです。 自分のAPI Keyと、https://www.bettertoken.ai/v1/images/generationsへのPOSTリクエストを用意します。リクエスト本文でモデルをgpt-image-2に指定し、テキストによる説明を渡してください。応答には画像がb64_jsonで返るため、これをデコードしてファイルに保存します。

BetterTokenはOpenAI互換のImage APIを提供しますが、独立したサービスです。Key、残高、リクエスト履歴はOpenAIではなくBetterTokenアカウントに属します。開始前にBetterToken DashboardでKeyを作成し、モデルと料金のページで現在の条件を確認してください。

必要なもの

  • リクエストを送るためのcurl;
  • 自分のBetterToken API Key;
  • 正確なBase URL https://www.bettertoken.ai/v1;
  • このImage API用のgpt-image-2モデル;
  • Base64デコーダー、または短いPythonスクリプト。

実際のKeyをソースコード、スクリーンショット、あるいはShell履歴に残るコマンドへ書き込まないでください。環境変数に保存します。

export BETTERTOKEN_API_KEY="your_api_key_here"

上記の値はプレースホルダーです。自分のKeyを使い、公開しないでください。

最初のGPT Image 2リクエスト

自分のKeyでリクエストを実行する準備はできましたか? BetterTokenアカウントを作成し、API Keyを取得してソースコードの外に保管してください。BetterTokenアカウントを作成

画像生成Endpointへリクエストを送ります。

curl https://www.bettertoken.ai/v1/images/generations \
  -H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A clean editorial illustration of a coding desk at night, green and graphite palette",
    "n": 1,
    "size": "1024x1024",
    "response_format": "b64_json",
    "output_format": "png"
  }' \
  -o image-response.json

これは同期コントラクトです。示した最初のリクエストに別の task ID、polling、callback は不要です。data[0].b64_json を読み、デコードして PNG を保存します。

画像を保存する

次の例はJSONを読み、Base64値をデコードしてbettertoken-image.pngを作成します。Python標準ライブラリだけを使います。

import base64
import json

with open("image-response.json", "r", encoding="utf-8") as source:
    payload = json.load(source)

image_base64 = payload["data"][0]["b64_json"]

with open("bettertoken-image.png", "wb") as target:
    target.write(base64.b64decode(image_base64))

print("Saved: bettertoken-image.png")

ファイルを開き、promptに合っているか確認してください。HTTP 200はリクエストが成功したことを示しますが、結果の目視確認に代わるものではありません。

2回目のリクエストを改善する

最初のテストでは、次の4要素を持つ短いpromptを使います。

  1. 被写体またはシーン;
  2. ビジュアルスタイル;
  3. 構図;
  4. 配色または照明。

例:

Editorial illustration of a developer reviewing an API response,
clean geometric style, centered composition, dark graphite background
with restrained green accents, no text, no logos

相反する要件を長く列挙するところから始めないでください。まず基本の構図を確認し、その後は1回に1つのパラメーターだけを変更します。どの表現が結果に影響したかを判断しやすくなります。

サイズ、quality、format は現在のパラメーターです。2回目のリクエスト前に、現在の Image API Docs で対応値を選んでください。このコントラクトは非同期 task/callback、batch processing、seller templates、画像品質の保証を確認するものではありません。

よくあるエラー

401:Keyが拒否される

BETTERTOKEN_API_KEYが現在の端末で設定され、AuthorizationヘッダーにBearerプレフィックスが含まれていることを確認します。echoでKeyを表示したり、完全な値をサポートに送ったりしないでください。

402 または残高不足

BetterToken Dashboardを開き、利用可能な残高を確認します。支払い済みのBetterToken残高は月末に自動でリセットされませんが、各リクエストには十分な残高が必要です。

404:パスが正しくない

画像生成では次の完全なパスを使います。

https://www.bettertoken.ai/v1/images/generations

Chat Completions Endpointに置き換えたり、api.openai.comを使ったりしないでください。BetterToken KeyはBetterToken Endpointで使用します。

400:モデルまたはパラメーターが正しくない

まず必須フィールドのmodelとpromptだけで試します。このガイドではgpt-image-2を使います。APIがモデルを利用できないと返す場合は、現在のModel IDとパラメーターをImage APIドキュメントと照合してください。

429 または 5xx

無限のリトライループを始めないでください。HTTP status、時刻、応答の安全な一部を記録し、待機後に再試行します。BetterToken Dashboardでは時刻で照合し、model、status、actual charge だけを確認します。

アプリケーションへ組み込む前の確認

リクエストをバックエンドや自動化フローへ移す前に、次を確認してください。

  • Keyが環境変数またはsecrets managerに保存されている;
  • リクエスト先が他社のEndpointではなくBetterTokenである;
  • モデルとパラメーターが現在のドキュメントに基づく;
  • Base64 payloadがエラーなくデコードできる;
  • アプリケーションがリトライを制限し、non-2xx応答を処理する;
  • コストを古いレビューではなく現在の価格ページで確認している。

要点

最初に動くフローは3ステップです。BetterToken Image APIへPOSTリクエストを送り、data[0].b64_jsonを読み、ファイルにデコードします。リクエスト実行前に現在のパラメーターと料金を確認してください。

LLM ワークフローを最適化しませんか?

単一 API でモデルを接続し、キーと AI コストを管理できます。

無料で始める