doubao-seedream-5-0-lite
ByteDance Doubao Seedream 5.0 Lite — async image generation at 2K and 3K with image-to-image, batch output, and a flat per-image rate.
ByteDance Doubao's lean image model on reAPI. 2K, 3K and 4K
resolution tiers, eleven aspect ratios, image-to-image via
reference URLs, and batch generation of up to 15 images per call. Async-first:
submit returns a task_id; poll until ready. See current pricing on the
model page.
Quick example
curl https://reapi.ai/api/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-5-0-lite",
"prompt": "a kitten yawning into the camera, cinematic warm tones",
"size": "16:9",
"resolution": "2K",
"n": 1
}'import requests
resp = requests.post(
"https://reapi.ai/api/v1/images/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"model": "doubao-seedream-5-0-lite",
"prompt": "a kitten yawning into the camera, cinematic warm tones",
"size": "16:9",
"resolution": "2K",
"n": 1,
},
timeout=30,
)
print(resp.json())const r = await fetch("https://reapi.ai/api/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "doubao-seedream-5-0-lite",
prompt: "a kitten yawning into the camera, cinematic warm tones",
size: "16:9",
resolution: "2K",
n: 1,
}),
});
console.log(await r.json());package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]any{
"model": "doubao-seedream-5-0-lite",
"prompt": "a kitten yawning into the camera, cinematic warm tones",
"size": "16:9",
"resolution": "2K",
"n": 1,
})
req, _ := http.NewRequest("POST",
"https://reapi.ai/api/v1/images/generations", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}Submit response
{
"id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
"model": "doubao-seedream-5-0-lite",
"status": "processing",
"created_at": 1735000000
}Poll GET /api/v1/tasks/{id} (see the Tasks reference) until
status === "completed". The completed payload's output.image_urls
holds the generated image URLs, valid for 72 hours. Mirror to your
own storage if you need them longer.
Authentication
Every call needs a Bearer token. Generate keys at reapi.ai/settings/apikeys.
Authorization: Bearer YOUR_API_KEYKeys carry the active workspace's billing scope — there is no separate project header.
Endpoint
POST /api/v1/images/generations
GET /api/v1/tasks/{id}Submission is async. The POST returns immediately with a task_id; the
task endpoint returns the same envelope until completion. Polling does
not consume credits.
Request body
model — required
string. Must be doubao-seedream-5-0-lite exactly. The dotted /
capitalized aliases the upstream model card mentions are not accepted at
this gateway — send the canonical hyphen-only id.
prompt — string, required
Up to 4,000 characters. Free-form text describing the image. Detailed prompts that name the subject, the composition, the lighting, and the style consistently produce better results.
size — string, default "1:1"
Output aspect ratio. One of:
| Value | Shape |
|---|---|
1:1 | Square |
4:3 | Traditional landscape |
3:4 | Traditional portrait |
16:9 | Widescreen landscape |
9:16 | Widescreen portrait |
3:2 | Photo landscape |
2:3 | Photo portrait |
2:1 | Extra-wide landscape |
1:2 | Extra-tall portrait |
21:9 | Cinematic ultrawide |
auto | Match the first reference image's ratio (requires image_urls) |
9:21 is not supported on Seedream 5.0 Lite. Sending it returns
400 — use 21:9 for ultrawide framing instead.
resolution — string, default "2K"
Detail tier. Case-insensitive — "2K" and "2k" are equivalent.
| Value | 1:1 example | 16:9 example |
|---|---|---|
2K | 2048 × 2048 | 2848 × 1600 |
3K | 3072 × 3072 | 4096 × 2304 |
4K | 4096 × 4096 | 5504 × 3040 |
1K is not supported on this model — only the three tiers above.
n — integer, default 1
How many images to return per call. Range [1, 15]. The number of
image_urls plus n must not exceed 15 — a request over that
returns 400.
When n > 1, the upstream automatically promotes
sequential_image_generation to "auto" so the call returns a
consistent batch in one shot. You don't need to set the field yourself
unless you want to override the default.
image_urls — array, optional
Reference images for image-to-image / multi-ref fusion. Public HTTPS
URLs only — base64 / data: URIs are rejected at the gateway.
Per-image constraints (from the upstream vendor doc):
- Format: jpeg or png
- Aspect ratio per image must be in
[1/3, 3] - Each image ≤ 10 MB; total pixels ≤ 6000 × 6000
Upload to your own R2 / S3 / OSS / equivalent first, then pass the public URL.
output_format — string, default "jpeg"
Encoding for the returned files.
jpeg— small files, good for general usepng— needed for transparent backgrounds
sequential_image_generation — string, default "disabled"
Group-mode toggle. Two values:
disabled— single-image modeauto— multi-image series mode
When n > 1, the upstream auto-sets this to "auto". Most callers
should leave the field unset and let n drive the behavior.
sequential_image_generation_options — object, optional
Tuning for group mode. Only meaningful under "auto".
| Field | Type | Description |
|---|---|---|
max_images | integer | Cap on the number of images in the series |
Example:
{
"sequential_image_generation": "auto",
"sequential_image_generation_options": { "max_images": 4 }
}watermark — boolean, default false
Set true to add a Doubao watermark to the output. Off by default.
content_filter — boolean, default true
With the default (true), the prompt and input images are screened before the
task is submitted. A rejected request fails with a content-policy error
(80006) and is refunded.
Set content_filter: false to skip that screening. What changes:
- API keys only. The website playground always runs with the filter on.
- Same parameters. Every field and rule in this document applies unchanged. Unfiltered requests bill on their own line in the pricing table.
- Output lands in an isolated bucket and its URLs stay valid for 30 days — mirror the files if you need them longer.
Platform terms apply to everything you generate either way.
Pricing
Seedream 5.0 Lite charges a flat per-image rate at 2K, 3K and 4K.
Multiply the per-image credit cost by n to size a batch. Failed and
moderated requests are refunded automatically. content_filter: false
requests bill on a separate line of the pricing table.
The exact credit cost surfaces on the model page and through the estimator before submit.
Response
The poll envelope returns image URLs in output.image_urls:
{
"id": "task_019dfd44b7fd74168541552a3260a623",
"model": "doubao-seedream-5-0-lite",
"status": "completed",
"output": {
"image_urls": [
"https://cdn.reapi.ai/...png"
]
}
}URLs are valid for 72 hours. Mirror to your own storage for longer retention.