メインコンテンツへスキップ
POST
Image Editing / Multi-image Fusion / Batch Sequence
1つのエンドポイント、複数のモード: Seedream には個別の /v1/images/edits エンドポイントはありません。編集、複数画像の融合、バッチシーケンスはすべて POST /v1/images/generations で行われます。このページのプレイグラウンドは テキストから画像生成 と同じエンドポイントを呼び出します — 唯一の違いは、リクエスト本文内の image と sequential_image_generation パラメータです。
モード:
  • 単一画像の編集 — image: ["url"] + sequential_image_generation: "disabled"
  • 複数画像の融合 — image: ["url1", "url2", ...] + disabled
  • バッチシーケンス — sequential_image_generation: "auto" + sequential_image_generation_options.max_images: N
  • 画像からシーケンス — 2 つを組み合わせます: image 配列 + auto + max_images
🖥️ ブラウザ版 Playground の制限(b64_json モードのみ)デフォルトの response_format: "url" モードでは、Playground は問題なく動作します(レスポンスは一時的な BytePlus TOS リンクだけです)。response_format: "b64_json" に切り替えると、レスポンスに数 MB の base64 文字列が含まれ、ブラウザ版 Playground では 请求时发生错误: unable to complete request と表示されることがあります — リクエスト自体は実際には成功しています。ブラウザがそのような長い base64 文字列をレンダリングできないだけです。推奨ワークフロー:
  • 画像を表示したいだけですか? デフォルトの url モードのままにしてください — Playground はリンクを直接返します(24 時間以内にご自身のストレージへダウンロードしてください)。
  • b64_json が必要ですか? 下のコードサンプルをコピーしてローカルで実行してください — コードが画像をデコードしてファイルに自動保存します。
⚠️ OpenAI gpt-image-2 の編集との主な違い
  • multipart/form-data アップロードは不要です — まず画像を OSS か公開画像ホストにアップロードし、その後 image 配列に URL を渡します
  • image は URL 配列であり、繰り返しの image[] フィールドではありません(OpenAI の multipart/form-data 形式とは異なります)
  • mask フィールドはありません — Seedream はアルファチャンネルマスクのインペインティングをサポートしておらず、画像全体が prompt によって書き換えられます
  • 合計数には厳しい上限があります: 入力参照 + 出力 ≤ 15 枚の画像
📎 複数画像では順序が重要ですimage 配列内の URL の順序が、prompt で参照される「画像 1 / 画像 2 / 画像 3」になります。順序を明示してください:
画像 1 の服を画像 2 の衣装に置き換え、画像 3 の照明は維持してください。
英語の prompt が最も効果的です(モデルは主に英語で学習されています)が、表現が明確であれば中国語もサポートされています。

コード例

extra_bodyについて(重要 — 追加のネスト層だと誤解しないでください)image、sequential_image_generation、watermarkは、OpenAI SDK の images.generate() の標準パラメータではないため、Python SDK で送信するには extra_body 内に配置する必要があります。ただし、extra_bodyは SDK のパラメータコンテナにすぎず、そのフィールドは 最上位レベルにフラット化されて統合されます。リクエストボディでは、modelおよびpromptと同じレベルになります。実際に送信される JSON は、以下の cURL 例と同一です(imageは最上位レベルに配置されます)。リクエスト内に実際の "extra_body": {...} のネストはありません。OpenAI SDK を使用せず、JSON を直接(requests / fetch などで)構築する場合は、extra_bodyを記述しないでください。imageやその他のフィールドは、modelと同じレベルに配置してください。

Python(OpenAI SDK · 単一画像編集)

Python(OpenAI SDK · 複数画像の融合)

Python(OpenAI SDK · バッチシーケンス)

cURL(複数画像の融合)

Node.js(fetch · バッチシーケンス)

参照画像は base64 ではなく公開 URL として渡してください(2026-09-11 以降、強調)image配列のエントリが URL の場合、リクエストボディは数 KB にすぎず、BytePlus はシンガポールリージョンから画像を直接ダウンロードします(確認済み:取得元の IP は BytePlus に属しており、APIYI ゲートウェイは関与していません)。 エントリが data:image/...;base64,...文字列の場合、高解像度の参照画像を数枚指定するだけで、ボディのサイズは簡単に 20〜30 MB に達します。そのボディ全体をまず APIYI ゲートウェイにアップロードしてからシンガポールへ転送する必要があります。国境をまたぐアップロードが遅い場合、リクエストボディの読み取りに対するプロバイダーの 600 秒の受信制限を超過し、400 Error when parsing requestで失敗します。 リクエスト全体が失敗し、URL モードにはフォールバックしません。これは、ゲートウェイが base64 をダウンロード可能なリンクに変換してくれないためです。
  • ✅ 画像を自分のオブジェクトストレージまたは画像ホストに保存し、認証なしの通常の GET で取得できる公開 URL を渡してください。各画像は約 10 MB 未満にしてください
  • ⚠️ base64 が避けられない場合は、先に圧縮してください:長辺を 2048 px 以内にし、品質 0.9 で再エンコードし、複数画像の場合は合計 6 MB 未満にしてください
  • ❌ 20 MB を超える base64 ボディを送信したり、プライベートネットワークのアドレスやログインが必要なリンクを渡したりしないでください(取得に失敗すると BytePlus は InvalidParameter: Error while downloadingを返します)

パラメータリファレンス

複数画像およびシーケンスモードにおけるカウント制約

反復的な精緻化: 以前の出力の URL を次の入力として、新しい編集指示を与え、段階的に精緻化します。各ラウンドは画像ごとに課金されます。累積コストに注意してください。

5.0 Flash レイヤー分離(透過レイヤー)

seedream-5-0-flash-260915は完成した画像を背景ベースと透過レイヤー上の個別要素に分離することができ、レイアウトの再調整、背景の差し替え、アセットの再利用に役立ちます。prompt内で透明な背景を指定してもアルファチャンネルは生成されないため、透過アセットが必要な場合はこの機能をご利用ください。
テスト結果 (2026-09-24, UTC+8):
  • 参照画像1枚に対して、data配列から12枚の画像が返されました。最初の1枚は要素が除去されて補完された背景ベース(ファイル名の末尾は_base.png、RGB)であり、残りの11枚はRGBA透過レイヤー(_layer_1.pngから)で、それぞれ自身のサイズに合わせて切り抜かれた1つの要素が含まれています
  • 1Kでは約78秒でした。同じリクエストを2Kで行った場合、15分経過しても何も返されませんでしたが、12枚分の画像として$0.216が課金されました。1Kを使用し、クライアントのタイムアウトを300秒以上に設定してください
  • レイヤー分離は失敗することがあります。同じ画像で約60秒後に400が返されたケースがありました(the image content could not be processed for layer decomposition)。失敗した場合は課金されませんので、再試行してください
  • ベースから除去された領域はモデルによって補完されるため、商用利用の前に確認してください
レイヤー分離は出力画像ごとに課金されます:返された画像1枚につき$0.018の費用がかかります。1回のリクエストで12枚の画像が返され、$0.216が課金されました(usage.generated_imagesは12でした)。レイヤー数は画像の内容に依存し、事前に設定することはできません。また、同じ画像であっても分離結果が毎回異なる場合があります(ある画像では12枚、次に14枚が出力され、それぞれ$0.216と$0.252が課金されました)。そのため、十数枚分以上の予算を見積もっておいてください。

応答形式

⚠️ data 配列の長さは実際の出力数を反映します
  • sequential_image_generation: "disabled" → 単一要素の data
  • sequential_image_generation: "auto" + max_images: N → 通常は N 要素(prompt の生成結果が少ない場合は、さらに少なくなることがあります)
  • 課金は usage.generated_images 単位で、max_images 単位ではありません
編集リクエストは text-to-image と同様に、出力画像ごとに課金されます。参照画像の入力は別途課金されません。

承認

Authorization
string
header
必須

API Key obtained from APIYI Console

ボディ

application/json
model
enum<string>
デフォルト:seedream-5-0-260128
必須

Model ID

利用可能なオプション:
seedream-5-0-260128,
seedream-5-0-lite-260128,
seedream-4-5-251128,
seedream-4-0-250828,
seedream-5-0-pro-260628,
seedream-5-0-flash-260915
prompt
string
必須

Editing / fusion / sequence instruction. For multi-image scenarios, refer to images explicitly as 'image 1 / image 2'

例:

"Replace the clothing in image 1 with the outfit from image 2."

image
string<uri>[]

Reference image URL array. Up to 10 images (per official 4.5 / 5.0-pro / 5.0-flash docs; an 11th returns 400 on 5.0-flash in our tests). Note: input + output count ≤ 15

Maximum array length: 10
例:
sequential_image_generation
enum<string>
デフォルト:disabled

Generation mode switch. disabled = single output (default); auto = batch sequence, paired with max_images. Not accepted by 5.0-pro / 5.0-flash — any value returns 400

利用可能なオプション:
disabled,
auto
sequential_image_generation_options
object

Batch sequence options. Effective only when sequential_image_generation=auto

size
string
デフォルト:2K

Output size. Preset tiers (vary by version):

  • 1K (4.0 / 5.0-pro / 5.0-flash) / 1.5K (5.0-flash only) / 2K (all) / 3K (5.0 only) / 4K (4.5, 4.0)

Or exact pixel size WxH, total pixels ∈ [1280×720, 4096×4096], aspect ratio ∈ [1/16, 16]

例:

"2K"

response_format
enum<string>
デフォルト:url
利用可能なオプション:
url,
b64_json
output_format
enum<string>
デフォルト:jpeg

Output format. The 5.0 series supports png/jpeg; 4.5/4.0 only jpeg

利用可能なオプション:
png,
jpeg
watermark
boolean
デフォルト:false
layer_decomposition
boolean
デフォルト:false

5.0-flash only: pass 1 reference image to get a background base plus several RGBA transparent layers. Billed per output image (12 in one test); use size 1K and a timeout of 300 seconds or more

stream
boolean
デフォルト:false

Streaming output. Recommended for long prompts and multi-image sequence scenarios. Not accepted by 5.0-pro / 5.0-flash (returns 400)

レスポンス

Edited image generated successfully

model
string
例:

"seedream-5-0-260128"

created
integer
例:

1768518000

data
object[]

Result array. disabled mode returns 1 element; auto mode typically returns max_images elements (may be fewer)

usage
object

Billed by generated_images actual count, NOT by max_images