Claude Opus 5.5 is live on SeedRouter

Image

Seedream 5.0 Pro

View Markdown

Call Seedream 5.0 Pro for text to image, editing with up to 10 references, layer decomposition and transparent backgrounds, priced per image and delivered as a task.

Seedream 5.0 Pro is ByteDance's image model. One request makes one image from a prompt, from a prompt plus up to 10 reference images, or splits one image into a base image and up to 16 transparent layers. Send the request, keep the returned task ID, and read the finished images from the task. Reference images go in as URLs.

Model IDs

Model IDInputsOutput sizeImages per request
seedream-5-0-protext, 0–10 images1K, 1.5K, 2K or WIDTHxHEIGHT1, or a base image plus up to 16 layers

See the model page for current prices.

Quick example

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-5-0-pro",
    "prompt": "A red ceramic mug on a white table, soft studio light, product photography. No text, no logos.",
    "size": "1K",
    "watermark": false
  }'

Endpoint

POST https://api.seedrouter.ai/v1/images/generations
HeaderValue
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

The response is a task ({"id": "task_...", "status": "processing"}), not the finished image. Poll GET /v1/tasks/{task_id} for the result. Keep API keys in server-side code. References and layer decomposition go in the same request through image; /v1/images/edits is not used for this model and returns 400.

Parameters

FieldTypeDefaultNotes
modelstringrequiredseedream-5-0-pro
promptstringrequiredDescribes the image to make. Optional with layer_decomposition: say which elements to split out, or leave it out to split every major element.
imageURL or URL listnoneOne public image URL, or a list of 2–10. Without it the request is text to image. With layer_decomposition, exactly one.
sizestring2K1K, 1.5K or 2K (describe the shape in prompt), or exact pixels WIDTHxHEIGHT totalling 921,600 to 4,624,220 with an aspect ratio between 1:16 and 16:1, for example 2048x1024. With layer_decomposition: auto (default), 1K, 1.5K or 2K only.
layer_decompositionbooleanfalseSplit the one input image into a base image and up to 16 transparent PNG layers.
optimize_prompt_options.modeenumstandardstandard for higher quality, fast for lower latency.
output_formatenumjpegjpeg or png. With layer_decomposition it sets the base image only; layers are always PNG.
backgroundenumopaqueopaque or transparent. transparent needs exactly one input image that has an alpha channel, cannot use jpeg output and cannot be combined with layer_decomposition.
watermarkbooleantruetrue adds an "AI generated" mark in the lower-right corner. Set false for a clean image.
content_filterbooleantrueAvailable through the API only. The Playground always keeps it on.

Fields outside this list are dropped before the request is forwarded; they never cause an error and never change the output. n, stream, seed, response_format and sequential generation are not available. callback_url is not available; poll the task instead.

Output size

A tier sets the scale and the prompt sets the shape. Name the aspect ratio in prompt (for example "a 16:9 landscape") and the model picks the frame:

Tier1:14:33:416:99:163:22:321:9
1K1024x10241152x864864x11521424x800800x14241248x832832x12481568x672
1.5K1536x15361792x13441344x17922048x11521152x20481872x12481248x18722352x1008
2K2048x20482368x17761776x23682816x15841584x28162496x16641664x24963136x1344

For a fixed frame, send exact pixels instead of a tier. 1K and 1.5K cost the same; 2K and any size above 2.61 million pixels cost more (see Pricing dimensions).

Reference images

Pass one image to edit it, or 2–10 to combine them, and say in prompt what to keep and what to change. Refer to them by order ("the jacket from image 1").

{
  "model": "seedream-5-0-pro",
  "prompt": "Put the jacket from image 1 on the model from image 2, standing on a rainy street at night.",
  "image": ["https://example.com/jacket.png", "https://example.com/model.jpg"],
  "size": "1.5K"
}

Layer decomposition

Send exactly one image with layer_decomposition: true. The task returns the base image first and then each layer as a transparent PNG.

{
  "model": "seedream-5-0-pro",
  "image": "https://example.com/poster.png",
  "layer_decomposition": true,
  "prompt": "Separate the headline, the product and the background."
}

Each layer carries z_index (the base image is 0; higher numbers sit on top), name, description and bounding_box. bounding_box.absolute is [left, top, right, bottom] in pixels of the base image; bounding_box.normalized is the same box in thousandths of the base image's width and height. To rebuild the picture, scale each layer to its box and place it on the base image in ascending z_index order.

With size: "auto" the base image and every layer keep their size in the input image. The input must be PNG or JPEG with a total pixel count (width × height) between 262,144 (512 × 512) and 36,000,000 (6000 × 6000).

Transparent background

Send one PNG that has an alpha channel with background: "transparent" to get a PNG whose background is transparent:

{
  "model": "seedream-5-0-pro",
  "prompt": "Turn this sticker into a glossy enamel pin, keep the outline.",
  "image": "https://example.com/sticker.png",
  "background": "transparent",
  "output_format": "png"
}

Media inputs

Each reference is a public HTTP(S) URL. Base64 data URIs are not accepted: upload the file to your own storage and pass its URL. Accepted formats are JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC and HEIF, up to 30 MB each, between 1:16 and 16:1, wider and taller than 14 pixels, and at most 36,000,000 pixels in total. Layer decomposition takes PNG or JPEG only.

Pricing dimensions

Check the model pricing section for current rates. Seedream 5.0 Pro is priced per output image by scenario and pixel tier, plus every reference image after the first:

generation:          cost = image price for its tier + extra references × reference price
layer decomposition: cost = images returned × per-image price for the request's tier
  • The lower tier covers images up to 2.61 million pixels (1.5K and below); anything larger is the upper tier.
  • Layer decomposition charges the base image and every layer. The whole request uses one tier: the lower price only when every returned image stays within 2.61 million pixels.
  • The amount reserved when a task is accepted covers the largest result: one image at the requested tier, or 17 images for layer decomposition (auto counts as the upper tier). The task is then charged for the images actually returned, and the difference is released.

View final charges in your account usage history. Failed tasks are not charged.

Output schema

Submission returns the task:

{"id": "task_...", "model": "seedream-5-0-pro", "status": "processing", "created_at": 1789689600}

Get the task

GET https://api.seedrouter.ai/v1/tasks/{task_id}

Poll every 10–20 seconds until status is completed or failed. A network timeout while polling does not mean generation failed: keep the task ID and resume checking it. Do not create another task to check progress.

Completed task

{
  "id": "task_...",
  "model": "seedream-5-0-pro",
  "status": "completed",
  "created_at": 1789689600,
  "finished_at": 1789689653,
  "output": {
    "created": 1789689650,
    "data": [
      {
        "url": "https://static.seedrouter.ai/media/tasks/task_example/0.jpg",
        "size": "1024x1024",
        "output_format": "jpeg"
      }
    ],
    "usage": { "output_tokens": 4096, "total_tokens": 4096 }
  }
}

A layer decomposition task lists the base image and then each layer:

{
  "data": [
    { "url": "https://static.seedrouter.ai/media/tasks/task_example/0.jpg", "size": "832x1248", "output_format": "jpeg", "z_index": 0 },
    {
      "url": "https://static.seedrouter.ai/media/tasks/task_example/1.png",
      "size": "527x1044",
      "output_format": "png",
      "z_index": 1,
      "name": "Ceramic coffee cup",
      "description": "White ceramic cup with a matte glaze, extracted without the table.",
      "bounding_box": { "absolute": [212, 418, 610, 1206], "normalized": [255, 335, 733, 966] }
    }
  ]
}

In our tests a 1K image took about 35–55 seconds, and a 1K layer decomposition that returned a base image plus 13 layers took about 140 seconds.

Errors

Requests rejected before a task is created return an HTTP error with an error object and are not charged. A task that fails after acceptance returns HTTP 200 when queried, with status: "failed" and an error object.

See the shared error catalog for codes, HTTP statuses, and retry guidance.

{
  "id": "task_...",
  "model": "seedream-5-0-pro",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

If submission itself times out, check your tasks before submitting again: the first request may have been accepted.

Tips

  • Start at 1K or 1.5K to iterate; 1.5K costs the same as 1K.
  • Name the shape in the prompt when you use a tier, or send exact pixels for a fixed layout.
  • With several references, say what each one contributes and refer to them by order.
  • Set watermark: false when you need a clean image; the default adds a mark.
  • For layer decomposition, list the elements you want split out to keep the layer count small.