画像

画像の編集

プロンプトとソース画像に基づいて画像を編集します

POST
/v1/images/edits

概要

元の画像とプロンプトに基づいて、編集済みまたは拡張された画像を作成します。

このエンドポイントは以下の両方をサポートしています:

  • 以下に記載されているOpenAI互換の multipart/form-data アップロードフロー
  • サポートされている画像間(image-to-image)ファミリー向けの image_url、image_urls、または公式の images 参照を提供するJSONリクエスト

gpt-image-2 はここでサポートされています。これは、最大16枚のソース画像を含む、マルチパートの image アップロード、JSONの image_url / image_urls、および公式の images[] 参照(image_url または file_id)を受け入れます。file_id 値は、事前に /v1/files を通じて作成してください。最初にタスクを返すには async: true を設定します。公式の FLUX/BFL 編集モデルも同じタスクポーリングフローを使用します。

gpt-image-2 の編集では resolution は受け付けられません。出力サイズには size を使用してください。background は auto または opaque を受け付けます。transparent はサポートされていません。複数画像や高レイテンシの編集には、async: true を使用し、返されたタスクをポーリングすることをお勧めします。

Nano Banana 参照画像リクエスト(nano-banana-2、nano-banana-2.1、nano-banana-2-lite、および nano-banana-pro)は、この /v1/images/edits エンドポイントではなく、operation: "image-to-image" と image_urls を指定した /v1/images/generations で公開されています。nano-banana-2、nano-banana-2.1、nano-banana-2-lite、および nano-banana-pro の画像編集リクエストも、operation: "image-edit" を指定して /v1/images/generations を使用します。

gemini-3.1-flash-image、gemini-nano-banana-2.1、gemini-3.1-flash-lite-image、および gemini-3-pro-image は、画像編集にこのエンドポイントを使用します。これらの画像間(image-to-image)リクエストは、operation: "image-to-image" を指定して /v1/images/generations を使用します。

xAI Grok Imagine 画像編集モデル(grok-imagine-image、grok-imagine-image-quality、およびレガシーの grok-imagine-image-pro)は、最大3枚のソース画像を受け入れます。3枚を超えるソース画像を含むリクエストは、400 too_many_images で入力バリデーションエラーとなります。

input_fidelity は、gpt-image-2 の現在の TokenLab サポートフィールドに含まれていません。省略するか、リクエストが 400 unsupported_parameter を返します。

リクエストボディ

同期リクエストのタイムアウト: 一部の画像リクエストは、最終的な画像をインラインで返し、生成が完了するまで待機します。高解像度または高品質のリクエストは1分以上かかる場合があるため、HTTPクライアントのタイムアウトを少なくとも 120s に設定してください。作成レスポンスに status: "pending"、task_id、または poll_url が含まれている場合は、返された poll_url に従ってください。

リモート画像URL: マルチパート入力が必要な場合、TokenLab は JSON の image_url、image_urls、または images[].image_url をフェッチし、そのバイトデータをマルチパートの image パーツとして送信します。URLは公開されている http/https である必要があり、埋め込み認証情報やフラグメントを含めてはならず、localhost、プライベート、または予約済みIP範囲に解決されてはなりません。リダイレクトのたびにチェックが行われます。フェッチされたペイロードは、有効な PNG、JPEG、または WebP 画像である必要があります。制限は、画像1枚あたり 50 MiB、1リクエストあたりのURLフェッチ画像合計で 200 MiB、フェッチタイムアウト 30s、最大 3 回のリダイレクトです。

JSONリクエストの場合、image_url、image_urls、または images のいずれか1つを正確に提供してください。各 images[] オブジェクトには、image_url または file_id のいずれか1つが含まれている必要があります。200 MiB の合計制限には、すべてのソース画像とマスクが含まれます。

imagefile

マルチパートのソース画像。複数の GPT Image ソースを提供するには image を繰り返します。ファイルは PNG、JPEG、または WebP である必要があり、最大16枚のソース画像、各 50 MiB までです。xAI Grok Imagine 編集モデルは同じ入力フィールドを使用しますが、ソース画像は最大3枚に制限されます。

promptstring必須

希望する編集のテキスト説明。

maskfile | object

完全に透明な領域が画像の編集箇所を示す追加画像。有効な PNG ファイルである必要があり、50 MiB 未満で、image と同じ寸法である必要があります。

JSONリクエストの場合、mask は image_url または file_id のいずれか1つを持つオブジェクトでも可能です。file_id 値は /v1/files から取得し、同じ画像編集構成にバインドされたままである必要があります。

modelstring必須

画像編集に使用するモデル。GPT Image 編集には gpt-image-2 を使用するか、GET /v1/models?recommended_for=image によって返される他の現在の画像編集モデルを使用してください。

nintegerデフォルト: 1

生成する画像の数(1〜10、モデル依存)。

sizestring

生成される画像のサイズ。gpt-image-2 の場合は auto または WIDTHxHEIGHT を使用します。寸法は16の倍数である必要があり、長辺は最大 3840px、長辺と短辺の比率は最大 3:1、合計ピクセル数は 655,360 から 8,294,400 の間である必要があります。

gemini-3.1-flash-image、gemini-nano-banana-2.1、gemini-3-pro-image、および gemini-3.1-flash-lite-image の場合、size はモデルのサイズテーブルからの出力サイズ、または解像度ティア(1K、2K、または 4K)を受け入れます。TokenLab はティアを resolution として送信します。モデルがサポートしていないティア、または resolution と異なるティアは、400 コード invalid_image_size_contract を返します。推奨される形式は aspect_ratio と resolution の組み合わせです。

response_formatstring

画像の返却方法: url または b64_json。

  • 省略時: モデルが画像バイトを返す場合、各画像は data[].b64_json に含まれ、TokenLab が保存した場合は data[].url にも含まれます。モデルがリンクを返す場合、各画像は data[].url に含まれます。
  • url: 各画像は data[].url にのみ含まれます。
  • b64_json: 各画像は Base64 データとして data[].b64_json にのみ含まれます。

リンクは TokenLab のメディア結果URLです。これらは30日間有効です。データ保持 を参照してください。

asyncbooleanデフォルト: false

gpt-image-2 または公式の FLUX/BFL 編集モデルで true に設定すると、最終的な画像が準備できる前にタスクを返します。完了した非同期編集は、要求された response_format に関係なくURLを返します。b64_json が必要な場合は同期リクエストを使用してください。

userstring

不正利用監視のためにエンドユーザーを表す一意の識別子。

レスポンス

createdinteger

画像が作成された Unix タイムスタンプ。

dataarray

生成された画像の配列。

各オブジェクトには以下が含まれます:

  • url (string): 編集済み画像の TokenLab メディア結果URL(30日間有効)。response_format が b64_json の場合は存在しません。response_format が省略された場合、TokenLab が画像を保存できなかった場合は欠落します。
  • b64_json (string): Base64 画像データ。response_format が b64_json の場合、または省略されてモデルが画像バイトを返す場合に存在します。

非同期タスクレスポンス

gpt-image-2 または公式の FLUX/BFL 編集モデルで async: true を設定すると、リクエスト内で編集済み画像を待機する代わりにタスクが作成されます。レスポンスには status: "pending"、task_id、および poll_url が含まれます。タスクが completed または failed になるまで /v1/tasks/{task_id} をポーリングしてください。

非同期編集タスクは最終的な画像URLのみを返します。生の b64_json 画像データが必要な場合は、同期リクエストを使用してください。

課金は、タスク作成時に見積もり額が予約される場合があります。完了したタスクは実際の使用量に基づいて課金され、失敗またはタイムアウトしたタスクは解放または返金されます。

リクエスト

curl -X POST "https://api.tokenlab.sh/v1/images/edits" \
  -H "Authorization: Bearer sk-your-api-key" \
  -F "model=gpt-image-2" \
  -F "image=@sunlit_lounge.png" \
  -F "mask=@mask.png" \
  -F "prompt=A sunlit indoor lounge area with a pool" \
  -F "n=1" \
  -F "size=1024x1024"

レスポンス

Response
{
  "created": 1706000000,
  "data": [
    {
      "url": "https://..."
    }
  ]
}

注意事項

リモート画像のフェッチ失敗は、生成開始前に入力エラーとして返されます。到達不可能なURL、タイムアウト、403/404レスポンス、プライベート/内部ホスト、URL内の認証情報やフラグメント、画像以外のコンテンツ、サポートされていない形式、サイズ制限違反は 400 または 413 を返し、image_url / image_urls[n] 入力を特定します。プライベートまたはヘッダーで保護されたアセットについては、マルチパートの image ファイルを直接アップロードするか、/v1/files 参照を作成してください。

Hy Image 3.5 Preview は、テキストから1024ピクセルの正方形画像を生成し、書面による指示を使用して参照画像を編集します。ビジュアルのドラフト作成や構成の洗練に役立ちます。

{
  "model": "hy-image-v3.5-preview",
  "prompt": "Change the table to pale blue",
  "image_url": "https://example.com/reference.png",
  "size": "1024x1024",
  "n": 1,
  "response_format": "url"
}

認証

BearerAuth
AuthorizationBearer <token>

APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。

場所: header

ヘッダー

X-TokenLab-Delivery-Policy?string

リクエストごとの配信ポリシー。APIキーおよびWorkspaceのデフォルト設定を上書きします。自動的にまず TokenLab Verified を試行し、出力、リクエストの受け入れ、または永続的なリソース作成の前に、一度だけ Official に切り替える場合があります。

指定できる値

  • "auto"
  • "verified"
  • "official"

リクエストボディ

レスポンス

application/json

application/json

application/json

application/json

application/json

application/json