ByteDance Seedream
現在販売中の Seedream モデルは seedream-5.0-pro と seedream-5.0-lite です。Volcengine(Doubao)チャネルから提供され、OpenAI 画像フォーマット で説明したものと同じ OpenAI 互換 images エンドポイントで呼び出します。このページでは Volcengine アダプターが加える変更を説明します。
Seedream モデルの supported_endpoint_types には image-generation が含まれます。フィールドの読み方はモデルを参照してください。
エンドポイント
Section titled “エンドポイント”POST /v1/images/generationsPOST /v1/images/edits/v1/images/generations は JSON ボディを受け取ります。画像編集は /v1/images/edits を使い、元画像を image に文字列で渡します。どちらも上流の画像生成エンドポイントへ転送されます(このチャネルでは Volcengine はフォームベースの編集エンドポイントを別途公開していません)。
リクエストパラメータ
Section titled “リクエストパラメータ”| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
model | string | はい | seedream-5.0-pro または seedream-5.0-lite |
prompt | string | はい | テキスト説明または編集指示 |
size | string | いいえ | 出力サイズまたは段階。Volcengine に届く前に正規化されます(サイズの正規化を参照) |
image | string | いいえ | 画像編集の元画像。http(s) URL または data:image/...;base64,... 文字列。JSON ボディで送信します |
watermark | boolean | いいえ | 出力にウォーターマークを付けるかどうか。明示的な false も転送されます |
sequential_image_generation | string | いいえ | "auto" で複数枚生成を有効化、"disabled" で無効化 |
sequential_image_generation_options | object | いいえ | 連続生成のオプション。{"max_images": <整数>} で枚数を指定 |
layer_decomposition | boolean | いいえ | 結果をレイヤーに分割します。有効にすると課金方法も変わります(課金を参照) |
background | string | いいえ | 背景の扱い。例: "transparent"、"opaque" |
tools | array | いいえ | 上流ツール。例: [{"type": "web_search"}] |
optimize_prompt_options | object | いいえ | プロンプト最適化。例: {"mode": "standard"}、{"mode": "fast"} |
これらのフィールドはゲートウェイの画像リクエスト構造に含まれ、Volcengine へ転送されます。省略した任意フィールドは null ではなく上流ボディから省略されます。ゲートウェイが認識しない JSON フィールドは破棄されるため、モデル化されていないフィールドが必要な場合はチャネルでリクエストボディのパススルーを有効にしてください。
サイズの正規化
Section titled “サイズの正規化”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 | 上流へ送る値 |
|---|---|
1024x1024 | 2K |
2048x2048 | 2K |
1536x1536 | 2K |
1440x2560 | 3K |
3840x2160 | 4K |
1K | 2K |
5K | 4K |
auto | auto |
画像を生成する
Section titled “画像を生成する”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" }'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 枚として計算されます。
画像を編集する
Section titled “画像を編集する”元画像を JSON ボディに文字列で入れます。ゲートウェイは image の値をそのまま Volcengine へ転送します。http(s) URL でも data:image/...;base64,... 文字列でもかまいません。上記のサイズ正規化は編集リクエストにも適用されます。
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はレイヤー分割の料金設定に切り替わります(そのモデルに設定がある場合)。無料枠を超える参照画像や連続生成の出力も課金されます。適用される数値はモデル詳細ページに記載されています。
エラーと制限
Section titled “エラーと制限”| ステータス | 意味 | よくある原因 |
|---|---|---|
| 400 | 無効なリクエスト | model の欠落、n が 128 超、JSON ボディで区切りに × を使用、サイズ段階課金のモデルが Volcengine にルーティングされた |
| 401 | 認証失敗 | API Key の欠落、無効、期限切れ、クォータ枯渇 |
| 403 | 残高またはクォータ不足 | insufficient_user_quota または pre_consume_token_quota_failed |
| 429 | レート制限 | 同時実行数を下げてください |
| 500 | 変換または内部エラー | リクエストを変換できない、または上流が画像を返さない |
未対応の size や拒否されたプロンプトなどの上流エラーは、上流のステータスとメッセージに RouteAPI のリクエスト ID を付けて返されます。
次のステップ
Section titled “次のステップ”- OpenAI 画像フォーマット — 共通の
/v1/imagesボディ形式と OpenAI モデル。 - Nano Banana — Gemini 画像モデル。
- モデル — 画像モデルを探し、
image-generation対応を確認します。 - モデル料金 — サイズ段階と 1 枚あたり課金。