メインコンテンツへスキップ
TokenLabは、テキストから画像、画像から画像、画像編集を公開画像エンドポイントを通じてサポートしています。画像モデルは共通のパラメータセットを共有しないため、プロダクションクライアントはまずエンドポイントを選択し、次にモデルを選択し、そのモデルがサポートするフィールドのみを送信する必要があります。

各エンドポイントを使用するタイミング

ユーザーワークフローエンドポイント使用する場合避ける場合
テキストから画像POST /v1/images/generationsユーザーがプロンプトのみから始める場合公式のGPT画像編集フローが必要な場合
画像から画像POST /v1/images/generationsモデルドキュメントがoperation: "image-to-image"image_urlimage_urls、またはreference_image_urlsを参照する場合モデルがマルチパート編集入力を期待している場合
画像編集POST /v1/images/editsGPT画像ファミリーモデルなどのサポートされている編集モデルで既存の画像を編集する場合Nano Bananaスタイルの画像から画像生成を使用している場合
バリエーションPOST /v1/images/variationsレガシーのバリエーション互換統合を維持している場合新しいリファレンス画像ワークフローを構築している場合
ステータスGET /v1/tasks/{id}作成レスポンスがtask_idstatus: "pending"、またはpoll_urlを返す場合作成レスポンスにすでに最終的なdata[]が含まれている場合
常にmodelを送信してください。画像エンドポイントは、プロダクショントラフィックのために歴史的な暗黙のデフォルトモデルに依存しないように設計されています。

モデルを選択する

モデルの発見から始め、選択したモデルのTokenLab契約を確認します:
curl "https://api.tokenlab.sh/v1/models?recommended_for=image" \
  -H "Authorization: Bearer sk-your-api-key"
非チャットモデルの場合、リストレスポンスにはtokenlab.public_contract_summaryが含まれることがあります。モデル詳細ページは、より完全なtokenlab.public_contractを公開する場合があります。これらのフィールドを使用して確認します:
  • サポートされている操作、例えばtext-to-imageimage-to-image、またはimage-edit
  • モデルが期待するリクエストエンドポイント。
  • リファレンスに使用する形状、例えばimage_urlimage_urlsreference_image_urls、マルチパートimage、またはJSONimages[]
  • モデルがsizeaspect_ratioresolutionqualitybackgroundoutput_format、またはresponse_formatを受け入れるかどうか。

リクエスト形状ルール

  • gpt-image-2スタイルのリクエストは、OpenAIのようなsizequality、および編集フィールドを使用します。モデルまたはTokenLabが自動デフォルトを使用する場合は、オプションフィールドを省略してください。
  • GeminiおよびNano Banana画像ファミリーは通常aspect_ratioを使用します。モデル契約がそれを公開している場合にのみresolutionを送信してください。
  • Nano Banana画像から画像への生成は、operation: "image-to-image"とリファレンス画像URLを持つ/v1/images/generationsに属します。
  • /v1/images/generationsはトップレベルのimages[]またはfile_idを受け入れません。これらは編集フローの形状です。
  • リモート画像リファレンスは、公開のhttpまたはhttps URLでなければなりません。プライベートネットワークのURL、埋め込まれた資格情報、URLフラグメント、または処理開始前に期限切れになる可能性のある署名付きURLを送信しないでください。

テキストから画像の例

curl https://api.tokenlab.sh/v1/images/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "クリーンな製品写真、ウォルナットデスクの上に置かれたセラミックコーヒーカップ",
    "size": "1024x1024",
    "response_format": "url"
  }'

リファレンス画像の例

curl https://api.tokenlab.sh/v1/images/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana",
    "operation": "image-to-image",
    "prompt": "製品の形状を保持し、背景を明るいスタジオセットアップに変更する",
    "image_urls": ["https://example.com/input/product.png"],
    "aspect_ratio": "1:1"
  }'

結果の処理

画像レスポンスは同期または非同期です:
  • 同期レスポンスは、最終的なdata[]urlまたはb64_jsonで返します。
  • 非同期レスポンスはidtask_idstatus、通常はpoll_urlを返します。
  • poll_urlが存在する場合はそれを優先してください。固定のルートが必要な場合は、GET /v1/tasks/{id}をポーリングしてください。
  • 特にb64_jsonが必要な場合は同期リクエストを使用してください。非同期画像結果はURL指向です。
curl "https://api.tokenlab.sh/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer sk-your-api-key"
返された画像URL、タスクID、モデル、および自分のユーザー/ジョブIDを保持してください。ターミナルステータスの後はポーリングを続けないでください。

プロダクションチェックリスト

  • TokenLabを呼び出す前にユーザー入力を検証します:プロンプトの長さ、画像の数、URLの到達可能性、およびファイルタイプ。
  • 同期の高解像度リクエストのためにHTTPタイムアウトを十分に高く設定します。長時間の作業には利用可能な場合は非同期モードを使用してください。
  • サポートのためにrequest_idtask_idpoll_url、モデル、エンドポイント、およびサニタイズされたリクエスト形状を保存します。
  • クライアントタイムアウト時には、再試行する前にタスクが作成されたかどうかを確認します。
  • 提供者のタスクIDではなく、使用記録およびbilling_transaction_idが存在する場合はそれとコストを照合します。

一般的なエラー

症状考えられる原因修正
400param: "model"明示的なモデルが欠落/v1/models?recommended_for=imageをクエリし、modelを送信
サポートされていないフィールドフィールドがそのモデルの公開契約に含まれていないフィールドを削除するか、それを文書化しているモデル/エンドポイントを選択
非同期結果にb64_jsonがない非同期画像タスクはURL指向の結果を返すbase64出力のために同期モードを使用
リファレンス画像が拒否された間違ったエンドポイントまたはプライベート/期限切れのURLモデルの文書化されたリファレンス形状に一致させ、到達可能なURLを使用

APIリファレンス

トピックリファレンス
画像の作成画像の作成
画像の編集画像の編集
画像バリエーションの作成画像バリエーションの作成
画像のステータス取得画像のステータス取得
タスクのステータス取得タスクのステータス取得