コンテンツにスキップ

ByteDance Seedream

現在販売中の Seedream モデルは seedream-5.0-pro と seedream-5.0-lite です。Volcengine(Doubao)チャネルから提供され、OpenAI 画像フォーマット で説明したものと同じ OpenAI 互換 images エンドポイントで呼び出します。このページでは Volcengine アダプターが加える変更を説明します。

Seedream モデルの supported_endpoint_types には image-generation が含まれます。フィールドの読み方はモデルを参照してください。

POST /v1/images/generations
POST /v1/images/edits

/v1/images/generations は JSON ボディを受け取ります。画像編集は /v1/images/edits を使い、元画像を image に文字列で渡します。どちらも上流の画像生成エンドポイントへ転送されます(このチャネルでは Volcengine はフォームベースの編集エンドポイントを別途公開していません)。

フィールドタイプ必須説明
modelstringはいseedream-5.0-pro または seedream-5.0-lite
promptstringはいテキスト説明または編集指示
sizestringいいえ出力サイズまたは段階。Volcengine に届く前に正規化されます(サイズの正規化を参照)
imagestringいいえ画像編集の元画像。http(s) URL または data:image/...;base64,... 文字列。JSON ボディで送信します
watermarkbooleanいいえ出力にウォーターマークを付けるかどうか。明示的な false も転送されます
sequential_image_generationstringいいえ"auto" で複数枚生成を有効化、"disabled" で無効化
sequential_image_generation_optionsobjectいいえ連続生成のオプション。{"max_images": <整数>} で枚数を指定
layer_decompositionbooleanいいえ結果をレイヤーに分割します。有効にすると課金方法も変わります(課金を参照)
backgroundstringいいえ背景の扱い。例: "transparent"、"opaque"
toolsarrayいいえ上流ツール。例: [{"type": "web_search"}]
optimize_prompt_optionsobjectいいえプロンプト最適化。例: {"mode": "standard"}、{"mode": "fast"}

これらのフィールドはゲートウェイの画像リクエスト構造に含まれ、Volcengine へ転送されます。省略した任意フィールドは null ではなく上流ボディから省略されます。ゲートウェイが認識しない JSON フィールドは破棄されるため、モデル化されていないフィールドが必要な場合はチャネルでリクエストボディのパススルーを有効にしてください。

size の扱いはモデルによって異なります。

モデルsize の扱い
seedream-5.0-proネイティブサイズをそのまま送信します。1K、1.5K、1024x1024 などのピクセル値、その他の値もそのままです
seedream-5.0-liteピクセル形式のサイズは 2K / 3K / 4K の段階に書き換えられます

書き換えられるモデルでは長辺が段階を決めます。長辺を 1024 で割り、最も近い整数に丸め(.5 は切り上げ)、2K–4K の範囲にクランプします。直接渡した段階(2K、3k など)はクランプのみで、auto のような認識できない値はそのまま渡され Volcengine が検証します。seedream-5.0-lite の例:

リクエストの size上流へ送る値
1024x10242K
2048x20482K
1536x15362K
1440x25603K
3840x21604K
1K2K
5K4K
autoauto
Terminal window
curl https://api.routeapi.ai/v1/images/generations \
-H "Authorization: Bearer $ROUTEAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-pro",
"prompt": "A misty mountain lake at sunrise, cinematic",
"size": "2K"
}'
Terminal window
curl https://api.routeapi.ai/v1/images/generations \
-H "Authorization: Bearer $ROUTEAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-lite",
"prompt": "A series of four postcards from the same coastal town, consistent style",
"sequential_image_generation": "auto",
"sequential_image_generation_options": { "max_images": 4 }
}'

sequential_image_generation が "auto" で max_images が指定されていない場合、追加出力の料金設定があるモデルでは、事前のコスト見積もりが 15 枚として計算されます。

元画像を JSON ボディに文字列で入れます。ゲートウェイは image の値をそのまま Volcengine へ転送します。http(s) URL でも data:image/...;base64,... 文字列でもかまいません。上記のサイズ正規化は編集リクエストにも適用されます。

Terminal window
curl https://api.routeapi.ai/v1/images/edits \
-H "Authorization: Bearer $ROUTEAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-pro",
"prompt": "Replace the background with a sunset beach, keep the subject unchanged",
"image": "https://example.com/photo.png",
"size": "2K"
}'

layer_decomposition: true は結果を独立したレイヤーに分割するよう上流に要求します。background: "transparent" は透明背景を要求します。どちらもそのまま転送されます。

Volcengine の画像オブジェクトはそのまま返されます。解析できるフィールドは次のとおりです。

{
"data": [
{
"url": "https://example.com/generated.png",
"size": "2048x2048"
}
],
"usage": {
"input_images": 1,
"generated_images": 1,
"output_tokens": 4096,
"total_tokens": 4096
}
}
  • 画像は data[].url から読み取ります。各要素には実際に納品された size が含まれることがあり、要求した段階と異なる場合があります。
  • モデルが 1 枚あたり課金の場合、usage.input_images と usage.generated_images が精算に使われます。output_tokens はトークン課金の精算に使われます。

Seedream モデルは、そのように設定されている場合に 1 枚あたりで課金されます。モデル詳細ページにサイズ段階が表示される場合、段階は送信した size のピクセル数に基づき、チャネル選択前に決まります。適用される料金はモデル料金とモデル詳細ページを参照してください。

Seedream 固有の注意点が 2 つあります。

  • アダプターは seedream-5.0-lite の size を書き換えるため、納品される画像が課金された段階と異なる段階になることがあります。この不一致を防ぐため、サイズ段階課金のモデルが Volcengine チャネルにルーティングされると 400 で拒否されます。パススルーモードはアダプターがボディを書き換えないため対象外です。
  • layer_decomposition: true はレイヤー分割の料金設定に切り替わります(そのモデルに設定がある場合)。無料枠を超える参照画像や連続生成の出力も課金されます。適用される数値はモデル詳細ページに記載されています。
ステータス意味よくある原因
400無効なリクエストmodel の欠落、n が 128 超、JSON ボディで区切りに × を使用、サイズ段階課金のモデルが Volcengine にルーティングされた
401認証失敗API Key の欠落、無効、期限切れ、クォータ枯渇
403残高またはクォータ不足insufficient_user_quota または pre_consume_token_quota_failed
429レート制限同時実行数を下げてください
500変換または内部エラーリクエストを変換できない、または上流が画像を返さない

未対応の size や拒否されたプロンプトなどの上流エラーは、上流のステータスとメッセージに RouteAPI のリクエスト ID を付けて返されます。