
Seedream image model with native transparent output, precise multi-round editing, and decomposition into up to 99 editable layers with text recognition.
Seedream image model with native transparent output, precise multi-round editing, and decomposition into up to 99 editable layers with text recognition.
Also known as ByteDance Seedream 5.5
seedream-5-5/v1/images/generationsbytedance/dola-seedream-5-5-261028bytedance/seedream-5-5byteplus/dola-seedream-5-5-261028byteplus/seedream-5-5dola-seedream-5-5-261028seedream-5-5-261028seedream-5.5Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
Seedream 5.5 runs through POST /v1/images/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Or add "sync": true to skip polling: the request stays open and returns the finished OpenAI-style image response directly, so OpenAI SDKs work as-is. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/images/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5-5",
"prompt": "Describe what you want Seedream 5.5 to generate."
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/images/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "seedream-5-5",
"prompt": "Describe what you want Seedream 5.5 to generate.",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the Seedream 5.5 API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| prompt | string | - | - | Text prompt. With image attached, becomes an editing or fusion instruction. |
| image | array | - | - | Reference image URL, data URI, or uploaded image object. Seedream 5.5 supports up to 10 reference images, and exactly one for layer decomposition. |
| images | array | - | - | Alias for image. Use this for multiple uploaded image references. |
| aspect_ratio | enum | auto | auto, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 | Auto lets the model choose dimensions within the selected resolution tier. Explicit ratios use the preset size for that tier. |
| layer_decomposition | boolean | false | - | Split one input image into a base image plus up to 99 transparent PNG layers, each returned with its stacking order, its position in the base image, a name, and a... |
| max_images | number | 30 | 2 to 100 | Layer decomposition only. Maximum images returned, the base image included, from 2 to 100; the model decides the actual count. You are billed only for images returned. |
| text_recognition | boolean | false | - | Layer decomposition only. Also return the text, line positions, and styling (similar font, color, bold, italic, underline, strikethrough, shadow, and translucency)... |
| quality | enum | 2K | 1K, 1.5K, 2K | Output resolution tier. 1.5K has the same price as 1K and provides higher resolution. Defaults to 2K. In layer decomposition, leaving this unset matches the input... |
| size | string | - | - | Resolution tier or explicit pixel size such as 1K, 1.5K, 2K, or 2048x1152. Explicit pixels override aspect_ratio and quality. Layer decomposition accepts tiers or... |
| use_custom_size | boolean | false | - | Use custom_width and custom_height instead of preset aspect_ratio and quality. Applies when aspect_ratio is auto. |
| custom_width | number | - | 15 to 8600 | Custom output width in pixels. Total area must be in [0.92MP, 4.62MP] and aspect must be in [1:16, 16:1]. |
| custom_height | number | - | 15 to 8600 | Custom output height in pixels. Total area must be in [0.92MP, 4.62MP] and aspect must be in [1:16, 16:1]. |
| watermark | boolean | false | - | When enabled, the generated image includes an AI-generated provenance watermark. EmpirioLabs does not add a separate watermark. |
| output_format | enum | png | jpeg, png | Output image file format. In layer decomposition this sets the base image format, and layers are always returned as PNG. |
Mark the region to change directly on the input image with a sketch, circle, or arrow, then describe it in the prompt. For exact placement, use coordinate tags on a 0 to 1000 normalized grid:
Place the subject from image 1 <bbox>179 283 796 986</bbox> at the position in image 2 <bbox>118 331 933 871</bbox>.Set layer_decomposition to true with exactly one input image to split it into a base image plus up to 99 transparent PNG layers. max_images sets the most images returned, the base image included, from 2 to 100, and defaults to 30; a higher value allows a finer decomposition. Every returned image carries its stacking order as z_index, and each layer also carries its position in the base image as bounding_box.absolute and bounding_box.normalized, plus a name and a description. Scale each layer to its box when you reassemble the image. Leave the prompt empty to let the model choose the elements, or name the elements or coordinate regions to separate. Resolution accepts 1K, 1.5K, or 2K, and matches the input image when unset.
With text_recognition on, each regular text layer also returns text_recognition: its full text, the position of each line, and the styling of each run of text (a similar font, color, bold, italic, underline, strikethrough, shadow, and translucency). Artistic text and handwriting are not recognized.
background defaults to auto, which lets the model decide from the prompt and output format. Transparent returns an image with an alpha channel, from text alone or from up to 10 reference images that need no alpha channel, and requires PNG output. Opaque returns an image without one. Each returned image reports its actual transparency as background. Layer decomposition does not take background, and its layers are always transparent PNG.
Each returned image bills at its own size: up to 2.61MP, which covers 1K and 1.5K, or above 2.61MP, which covers 2K. Every input image bills, the one for layer decomposition included. Layer decomposition bills every returned image, the base image and each layer, at its own size.
Generated images pass an automated content-safety check. An image flagged as explicit is not returned. Because the image is generated before the check runs, a flagged generation is still billed.
On EmpirioLabs, Seedream 5.5 is billed pay as you go: Output up to 2.61MP $0.0332 per image; Output above 2.61MP $0.0581 per image; Input image $0.0133 per input image. The live rate card on this page always matches what the API charges.
Seedream 5.5 is served through POST /v1/images/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs Seedream 5.5 in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.