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 and 3K resolution
tiers, nine aspect ratios, image-to-image via reference URLs,
and batch generation of up to four variations 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 rk_live_xxx" \
-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 rk_live_xxx",
"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 rk_live_xxx",
"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 rk_live_xxx")
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 |
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 |
1K and 4K are not supported on this model — only the two tiers
above.
n — integer, default 1
How many images to return per call. Range [1, 4].
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.
Pricing
Seedream 5.0 Lite charges a flat per-image rate at 2K and 3K.
Multiply the per-image credit cost by n to size a batch. Failed and
moderated requests are refunded automatically.
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.