Seedream Image Generation
Seedream is ByteDance's image generation model series, supporting text-to-image, high-resolution output, and fine prompt understanding (including Chinese text rendering), via the OpenAI-compatible images API with synchronous responses.
Endpoint
POST $URL/v1/images/generationsWhen using the OpenAI SDK, set base_url to $URL/v1.
Supported Models
| Model | Description |
|---|---|
dola-seedream-5.0-pro | Pro, highest quality, with two resolution bands (≤1.5K / >1.5K) |
seedream-5.0-lite | Lite, cost-efficient |
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
model | string | yes | One of the models above |
prompt | string | yes | Image description; include subject, style, and any text to render |
n | integer | no | Number of images, default 1. Each request currently returns 1 image: larger values are accepted without error but only 1 image is returned |
size | string | no | Output size, e.g. 1024x1024, 1536x1536, 2048x2048. seedream-5.0-lite requires at least 1920x1920 (≥ 3,686,400 pixels); smaller sizes return 400 |
seed | integer | no | Random seed for reproducibility |
response_format | string | no | url (default, temporary link) / b64_json |
quality | string | no | Output quality tier; support depends on the model |
style | string | no | Image style; support depends on the model |
background | string | no | Background mode (e.g. transparent); supported by some models only |
output_format | string | no | Output file format (e.g. jpeg / png); supported by some models only |
watermark | boolean | no | Whether to add a watermark |
Request Example
bash
curl $URL/v1/images/generations \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dola-seedream-5.0-pro",
"prompt": "A futuristic product poster featuring wireless earbuds on a deep-blue gradient background, bold white text at the bottom: FUTURE SOUND",
"n": 1,
"size": "2048x2048"
}'python
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="$URL/v1")
resp = client.images.generate(
model="seedream-5.0-lite",
prompt="A futuristic product poster featuring wireless earbuds on a deep-blue gradient background",
n=1,
size="2048x2048",
seed=42,
)
print(resp.data[0].url)Response Fields
| Field | Type | Description |
|---|---|---|
created | integer | Unix timestamp (seconds) |
model | string | Actual model code that processed the request (vendor-normalized, e.g. seedream-5-0-260128) |
data | array | Generated results (currently 1 image) |
data[].url | string | Temporary image URL (download promptly) |
data[].size | string | Actual generated size, e.g. 2048x2048 |
data[].b64_json | string | Base64 image content (returned when response_format: "b64_json") |
usage.generated_images | integer | Number of images actually generated |
usage.output_tokens | integer | Output tokens consumed (metering only, not billed) |
Response Example
json
{
"model": "seedream-5-0-260128",
"created": 1791869249,
"data": [
{
"url": "https://.../seedream-5-0/xxxx.jpeg",
"size": "2048x2048"
}
],
"usage": {
"generated_images": 1,
"output_tokens": 16384,
"total_tokens": 16384
}
}Pricing
Billed per output image; dola-seedream-5.0-pro is tiered by resolution:
| Model | ≤1.5K (≤2.61M px) | >1.5K | Input reference image |
|---|---|---|---|
dola-seedream-5.0-pro | $0.045/image | $0.09/image | 1st free, $0.003/image from the 2nd |
seedream-5.0-lite | $0.035/image | $0.035/image | — |
Example: dola-seedream-5.0-pro at 2048x2048 (≈4.19M px, falls into the >1.5K band) = $0.09; 1536x1536 (≈2.36M px) = $0.045.
Notes
- Result URLs are temporary — download promptly (or use
response_format: "b64_json"for base64). - Seedream handles Chinese prompts and text rendering well — great for posters, covers, and e-commerce visuals.
- Do not rely on
nfor multiple images: send concurrent requests instead. seedream-5.0-litehas a minimum size (1920x1920);dola-seedream-5.0-proworks from1024x1024up.- Group multipliers apply on top; prices above are in the base currency.
