Seedream 5.0 Pro
seedream-5.0-proPublisher's APIText to imageImage editing
ByteDance's Seedream 5.0 Pro through BytePlus ModelArk: one image per task, from text or up to ten of your images. BytePlus's content moderation applies, so explicit requests are refused.
Inputs
Send these in the task's input object. Only required fields are needed; GET /v1/models/seedream-5.0-pro returns them as a JSON Schema.
| Field | Type | Default | Details |
|---|---|---|---|
promptrequired | string | — | What to draw, or how to change the reference images. BytePlus recommends at most ~600 English words. up to 20,000 characters |
width | integer | — | Multiple of 16; width x height must total 921,600-2,610,000 pixels, at most 16:1 either way. Set both or neither; without them the model picks a ~1.5K size that suits the prompt. 256 to 4,096 · multiple of 16 |
height | integer | — | Multiple of 16; width x height must total 921,600-2,610,000 pixels, at most 16:1 either way. Set both or neither. 256 to 4,096 · multiple of 16 |
reference_images | array of URLs | [] | Up to ten output URLs of images this account generated, to edit or combine. The prompt refers to them in order. up to 10 items |
output_format | string | "jpeg" | one of jpeg, png |
Example
Create a task with your API key, then poll it or pass a webhook_url. user is your own id for the end user who asked for the image.
curl https://api.velvetapi.dev/v1/tasks \
-H "Authorization: Bearer $VELVET_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5.0-pro",
"user": "user-123",
"input": {
"prompt": "A candid photograph of a woman with auburn hair reading on a sunlit balcony, soft morning light, 35mm film grain."
}
}'import { VelvetAPI } from "@velvetapi/sdk";
const velvet = new VelvetAPI({ apiKey: process.env.VELVET_API_KEY });
const task = await velvet.tasks.create({
model: "seedream-5.0-pro",
user: "user-123",
input: {
prompt: "A candid photograph of a woman with auburn hair reading on a sunlit balcony, soft morning light, 35mm film grain.",
},
});
const done = await velvet.tasks.wait(task.id);
console.log(done.state, done.outputs.map((output) => output.url));import os
from velvetapi import VelvetAPI
client = VelvetAPI(api_key=os.environ["VELVET_API_KEY"])
task = client.tasks.create(
model="seedream-5.0-pro",
user="user-123",
input={
"prompt": "A candid photograph of a woman with auburn hair reading on a sunlit balcony, soft morning light, 35mm film grain.",
},
)
done = client.tasks.wait(task["id"])
print(done["state"], [output["url"] for output in done["outputs"]])Response 202 Accepted
{
"id": "0b9c6c2e-4d3f-4a51-9a8e-2f7d1c3b5a90",
"object": "task",
"model": "seedream-5.0-pro",
"state": "queued",
"user": "user-123",
"price_usd": 0.05,
"outputs": [],
"error": null,
"meta": {},
"created_at": "2026-10-20T06:31:00.000Z",
"started_at": null,
"finished_at": null
}Next: tasks and webhooks, errors and the API reference.