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リクエスト

画像生成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" }' \ -o image-response.json

リクエストが成功すると、image-response.jsonにはdataオブジェクトが入ります。画像はdata[0].b64_jsonにあります。この応答形式はサーバーサイドのフローに適しています。payloadをオブジェクトストレージへ保存したり、次の処理に渡したり、直接ローカルファイルへデコードしたりできます。

画像を保存する

次の例は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つのパラメーターだけを変更します。どの表現が結果に影響したかを判断しやすくなります。

よくあるエラー

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:モデルまたはパラメーターが正しくない

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

429 または 5xx

無限のリトライループを始めないでください。HTTP status、リクエスト時刻、応答の安全な一部を記録してから、待機後に再試行します。BetterToken Dashboardでは、時刻でリクエストを照合し、完全なpromptを表示せずにモデル、status、input/output/cache token使用量、請求を確認できます。

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

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

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

同じ契約をアプリケーションのSDKまたはHTTP clientへ移せます。最小リクエストから始め、結果を1つ保存してから、dimensions、quality settings、バッチ処理、自身のストレージ層を追加してください。

要点

最初に動くフローは3ステップです。BetterToken Image APIへPOSTリクエストを送り、data[0].b64_jsonを読み、ファイルにデコードします。自分のKeyと従量課金が必要なら、BetterTokenアカウントを作成し、リクエスト実行前に現在のパラメーターと料金を確認してください。

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

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