各エンドポイントを使用するタイミング
| ユーザーワークフロー | エンドポイント | 使用する場合 | 避ける場合 |
|---|---|---|---|
| テキストから画像 | POST /v1/images/generations | ユーザーがプロンプトのみから始める場合 | 公式のGPT画像編集フローが必要な場合 |
| 画像から画像 | POST /v1/images/generations | モデルドキュメントがoperation: "image-to-image"とimage_url、image_urls、またはreference_image_urlsを参照する場合 | モデルがマルチパート編集入力を期待している場合 |
| 画像編集 | POST /v1/images/edits | GPT画像ファミリーモデルなどのサポートされている編集モデルで既存の画像を編集する場合 | Nano Bananaスタイルの画像から画像生成を使用している場合 |
| バリエーション | POST /v1/images/variations | レガシーのバリエーション互換統合を維持している場合 | 新しいリファレンス画像ワークフローを構築している場合 |
| ステータス | GET /v1/tasks/{id} | 作成レスポンスがtask_id、status: "pending"、またはpoll_urlを返す場合 | 作成レスポンスにすでに最終的なdata[]が含まれている場合 |
modelを送信してください。画像エンドポイントは、プロダクショントラフィックのために歴史的な暗黙のデフォルトモデルに依存しないように設計されています。
モデルを選択する
モデルの発見から始め、選択したモデルのTokenLab契約を確認します:tokenlab.public_contract_summaryが含まれることがあります。モデル詳細ページは、より完全なtokenlab.public_contractを公開する場合があります。これらのフィールドを使用して確認します:
- サポートされている操作、例えば
text-to-image、image-to-image、またはimage-edit。 - モデルが期待するリクエストエンドポイント。
- リファレンスに使用する形状、例えば
image_url、image_urls、reference_image_urls、マルチパートimage、またはJSONimages[]。 - モデルが
size、aspect_ratio、resolution、quality、background、output_format、またはresponse_formatを受け入れるかどうか。
リクエスト形状ルール
gpt-image-2スタイルのリクエストは、OpenAIのようなsize、quality、および編集フィールドを使用します。モデルまたはTokenLabが自動デフォルトを使用する場合は、オプションフィールドを省略してください。- GeminiおよびNano Banana画像ファミリーは通常
aspect_ratioを使用します。モデル契約がそれを公開している場合にのみresolutionを送信してください。 - Nano Banana画像から画像への生成は、
operation: "image-to-image"とリファレンス画像URLを持つ/v1/images/generationsに属します。 /v1/images/generationsはトップレベルのimages[]またはfile_idを受け入れません。これらは編集フローの形状です。- リモート画像リファレンスは、公開の
httpまたはhttpsURLでなければなりません。プライベートネットワークのURL、埋め込まれた資格情報、URLフラグメント、または処理開始前に期限切れになる可能性のある署名付きURLを送信しないでください。
テキストから画像の例
リファレンス画像の例
結果の処理
画像レスポンスは同期または非同期です:- 同期レスポンスは、最終的な
data[]をurlまたはb64_jsonで返します。 - 非同期レスポンスは
id、task_id、status、通常はpoll_urlを返します。 poll_urlが存在する場合はそれを優先してください。固定のルートが必要な場合は、GET /v1/tasks/{id}をポーリングしてください。- 特に
b64_jsonが必要な場合は同期リクエストを使用してください。非同期画像結果はURL指向です。
プロダクションチェックリスト
- TokenLabを呼び出す前にユーザー入力を検証します:プロンプトの長さ、画像の数、URLの到達可能性、およびファイルタイプ。
- 同期の高解像度リクエストのためにHTTPタイムアウトを十分に高く設定します。長時間の作業には利用可能な場合は非同期モードを使用してください。
- サポートのために
request_id、task_id、poll_url、モデル、エンドポイント、およびサニタイズされたリクエスト形状を保存します。 - クライアントタイムアウト時には、再試行する前にタスクが作成されたかどうかを確認します。
- 提供者のタスクIDではなく、使用記録および
billing_transaction_idが存在する場合はそれとコストを照合します。
一般的なエラー
| 症状 | 考えられる原因 | 修正 |
|---|---|---|
400とparam: "model" | 明示的なモデルが欠落 | /v1/models?recommended_for=imageをクエリし、modelを送信 |
| サポートされていないフィールド | フィールドがそのモデルの公開契約に含まれていない | フィールドを削除するか、それを文書化しているモデル/エンドポイントを選択 |
非同期結果にb64_jsonがない | 非同期画像タスクはURL指向の結果を返す | base64出力のために同期モードを使用 |
| リファレンス画像が拒否された | 間違ったエンドポイントまたはプライベート/期限切れのURL | モデルの文書化されたリファレンス形状に一致させ、到達可能なURLを使用 |
APIリファレンス
| トピック | リファレンス |
|---|---|
| 画像の作成 | 画像の作成 |
| 画像の編集 | 画像の編集 |
| 画像バリエーションの作成 | 画像バリエーションの作成 |
| 画像のステータス取得 | 画像のステータス取得 |
| タスクのステータス取得 | タスクのステータス取得 |