Introduction
Seedream 5.0 Flash Layer Decomposition splits one finished image into a base plate and up to sixteen transparent PNG layers, one per element, each with a name and its position in the original. Use it when you want reusable pieces: a headline you can rewrite, a person you can move into another design, a product you can put on a new background.
Developed by ByteDance (model ID dola-seedream-5-0-flash-260915).
Choose a Seedream 5.0 Flash mode by starting material
| Starting material | Mode |
|---|---|
| A written brief for a new picture | Seedream 5.0 Flash Text to Image |
| One to ten images to revise or combine | Seedream 5.0 Flash Image Editing |
| A finished image whose parts you need separately | Seedream 5.0 Flash Layer Decomposition |
Key features & highlights
Automatic or directed splitting
With no prompt the model picks the main elements itself. On our retro film poster that meant eight images: the base plate plus the diner, a distant car, the neon sign, the woman, the tagline, the LATE SHIFT title and the ADMIT ONE stub.
Layers that know where they belong
Every layer carries a short name and a bounding box in the base plate's pixels. Scale each PNG into its box over the base plate and the original comes back, so the pieces can go straight onto a canvas in their original arrangement.
A repaired base plate
The elements that were lifted out are removed and the background is filled in, so the base plate stands on its own. On the poster it was a clean rainy street; on the ballroom scene it was an empty hall.
Transparent layers, always PNG
Every layer is a transparent PNG. output_format only changes the base plate.
Per-piece pricing
You pay $0.026 for each image returned, base plate included, at any resolution, with a reserve of 17 images refunded down to the actual count.
Request parameters
| Parameter | Required | Description |
|---|---|---|
image_url | Yes | One image to split: png, jpeg, webp, bmp, tiff or gif, up to 30 MB, 262,144 to 36,000,000 total pixels, aspect ratio between 1:16 and 16:1. HEIC is not supported. at least 1 characters |
prompt | No | Optional, but at least 3 characters when you write one. Leave it empty and the model picks the main elements itself; name elements and it splits those. at least 3 characters · at most 5000 characters |
resolution | No | auto, 1k, 1.5k or 2k. The base plate keeps the input's aspect ratio and each layer keeps its element's proportions. |
output_format | No | jpeg or png for the base plate only. Layers are always transparent PNG whichever you choose. |
Pricing
$0.026 / output image
Use cases
Rewrite a poster headline
Take the title layer out, redraw it in your design tool, and place it back at its box over the base plate.
Reuse a subject in new templates
Lift the person or product as a transparent PNG and drop it into another layout.
Prepare depth and parallax assets
Turn a flat illustration into ordered, positioned pieces for motion work.
Clean scenes for compositing
Keep the base plate as an empty set and add your own elements.
Prompt guide & pro tips
Start with no prompt
Leave prompt out and see what the model separates. It is the cheapest way to learn how it reads the picture.
Name what you want
When you write a prompt it must be at least 3 characters. Point at the elements you care about: "the dancing couple and the chandelier" returned exactly those two layers plus the base plate on the ballroom scene.
Circle an element with a bounding box
Add <bbox>x1 y1 x2 y2</bbox> after the element's name, using 0-1000 coordinates from the top-left corner.
Separate the title text <bbox>179 58 809 197</bbox> and the parrot <bbox>330 274 641 991</bbox> into independent layers
Put layers back with their boxes
Each boundingBox is [x1, y1, x2, y2] in the base plate's pixels. The PNG is often delivered larger than its box, so scale it to the box's width and height rather than pasting it at its own size.
Content boundaries
Seedream 5.0 Flash · Layer-Decomposition — Uncensored. SpicyAPI adds no platform-side content filter. Model restrictions still apply, and results are not guaranteed. You are responsible for complying with our content policy.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedream-5.0-flash/layer-decomposition",
"input": {
"image_url": "https://example.com/reference.png",
"output_format": "jpeg",
"resolution": "auto"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.











