Seedream 5.0 PRO API
Seedream 5.0 PRO images from a prompt and reference pictures (up to 10), 1K or 2K quality. It also splits a picture into layers with transparency and edits a PNG with a transparent background keeping the transparency.
For AI assistants:Download .mdAll documentation .mdOpen as text
Connect in three steps
- Get a keyCreate a key in the dashboard after you confirm your email. One key opens every model.
- Check the pricePOST /v1/price shows the cost of a run in advance, without charging you.
- Run a task and collect the resultPOST /v1/tasks starts a task, GET /v1/tasks/{id} shows its status and files.
Ready-to-use code
Replace YOUR_API_KEY with your key. The code starts a task and waits for the result. In cURL, repeat the second request with the id from the first response instead of TASK_ID until status becomes succeeded.
curl -X POST "https://api.cyhub.ai/v1/tasks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedream",
"settings": {
"mode": "5.0_pro",
"prompt": "Горный хребет на рассвете, туман в долинах",
"aspect_ratio": "21:9",
"quality": "2K"
}
}'
curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"import time
import requests
API = "https://api.cyhub.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
body = {
"model": "seedream",
"settings": {
"mode": "5.0_pro",
"prompt": "Горный хребет на рассвете, туман в долинах",
"aspect_ratio": "21:9",
"quality": "2K",
},
}
response = requests.post(f"{API}/tasks", json=body, headers=HEADERS, timeout=60)
response.raise_for_status()
task = response.json()
while task["status"] in ("queued", "running"):
time.sleep(5)
task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
print(task["status"], task["result"])const API = "https://api.cyhub.ai/v1";
const HEADERS = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const body = {
"model": "seedream",
"settings": {
"mode": "5.0_pro",
"prompt": "Горный хребет на рассвете, туман в долинах",
"aspect_ratio": "21:9",
"quality": "2K"
}
};
async function main() {
let response = await fetch(`${API}/tasks`, { method: "POST", headers: HEADERS, body: JSON.stringify(body) });
if (!response.ok) throw new Error(await response.text());
let task = await response.json();
while (task.status === "queued" || task.status === "running") {
await new Promise((resolve) => setTimeout(resolve, 5000));
response = await fetch(`${API}/tasks/${task.id}`, { headers: HEADERS });
task = await response.json();
}
console.log(task.status, task.result);
}
main();Price before the run
Prices as of 15.10.2026: from 9 ₽. POST /v1/price shows the exact price of your settings.
| Mode | Price |
|---|---|
| Seedream 5.0 PRO | from 9 ₽ |
| Split into layers | from 55 ₽ |
| Edit keeping transparency | from 9 ₽ |
Send the same settings to POST /v1/price: the response shows the price of the run without charging you.
curl -X POST "https://api.cyhub.ai/v1/price" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedream",
"settings": {
"mode": "5.0_pro",
"prompt": "Горный хребет на рассвете, туман в долинах",
"aspect_ratio": "21:9",
"quality": "2K"
}
}'amount_minor: the price of the run in minor units (kopecks for rubles)currency: the wallet currencyavailable_minor: how much your balance has for new tasks right now
Modes
Each mode has its own parameters and examples. The mode is set by the mode field.
- Seedream 5.0 PRO
mode = 5.0_pro - Split into layers
mode = layers - Edit keeping transparency
mode = keep_transparency
Seedream 5.0 PRO
The newest version: 1K or 2K quality, up to 10 references. Every reference after the first one adds a little to the price.
Value of the mode field: 5.0_pro
Price in this mode from 9 ₽.
Parameters
Model parameters go inside settings. Omitted optional fields take their default values.
promptRequiredWhat to draw, or what to do with the reference images.
Type: StringMinimum characters: 1Maximum characters: 5000image_urlsOptionalReference image URLs, up to 10. Without them the image is drawn from the prompt alone.
Type: List (String, uri)Maximum items: 10aspect_ratioOptionalAspect ratio.
Type: StringAllowed values:1:12:33:23:44:39:1616:921:9Default:"9:16"qualityOptionalImage quality: 1K or 2K. The price depends on it.
Type: StringAllowed values:1K2KDefault:"1K"output_formatOptionalResult file format.
Type: StringAllowed values:pngjpegDefault:"png"
Parameters not listed here are not accepted: the response is 422 unknown_setting.
The API sets these settings itself, do not send them: model_version = "5.0_pro"
Input
- References are URLs of JPEG, PNG, WebP, BMP, TIFF or GIF images, up to 30 MB each.
- Each picture has both sides longer than 14 pixels, an area of at most 6000×6000 pixels, and one side at most 16 times longer than the other.
| Field | Accepts | Formats | Files | File size up to |
|---|---|---|---|---|
image_urls | Images | jpeg, jpg, png, webp, bmp, tiff, tif, gif | 10 | 30 MB |
Request example
Send this JSON to POST /v1/tasks with your API key. To check the price first, send the same JSON to POST /v1/price.
Wide image in 2K
{
"model": "seedream",
"settings": {
"mode": "5.0_pro",
"prompt": "Горный хребет на рассвете, туман в долинах",
"aspect_ratio": "21:9",
"quality": "2K"
}
}A character from a reference
{
"model": "seedream",
"settings": {
"mode": "5.0_pro",
"prompt": "Этот персонаж на обложке журнала о путешествиях",
"image_urls": [
"https://example.com/character.png"
],
"aspect_ratio": "3:4"
}
}The price is calculated when the task is accepted, currency RUB.
Output
- One image per run in the chosen format.
| Kind | Formats | How many | Note |
|---|---|---|---|
image | png, jpg | 1 | The format is set by output_format. |
A finished task as GET /v1/tasks/{id} returns it (some fields left out). The caption may sit on the task or on a single file and may be empty; the model picks the file name.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Caption of the result: the model and its settings",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "image",
"filename": "image.png",
"size": 1843200,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
}
]
}
}Split into layers
Version 5.0 PRO takes one picture apart: the base without the extracted elements and every noticeable element as its own PNG with transparency. The model decides how many parts come out. The price shown is the ceiling, the charge covers only the files that come back.
Value of the mode field: layers
Price in this mode from 55 ₽.
Parameters
Model parameters go inside settings. Omitted optional fields take their default values.
image_urlsRequiredOne URL of the picture to split.
Type: List (String, uri)Maximum items: 1promptOptionalWhat to take out, in words, for example "the cat and the caption on top". A part can also be pointed at with a frame <bbox>x1 y1 x2 y2</bbox>: the top left and bottom right corners in fractions of the picture from 0 to 1000. Without a description the model finds every noticeable element itself.
Type: StringMaximum characters: 5000qualityOptionalSize of the base and the layers. 1K and 1.5K cost the same, 1.5K gives larger files. 2K costs more.
Type: StringAllowed values:1K1.5K2KDefault:"1.5K"output_formatOptionalFormat of the base. Layers are always PNG.
Type: StringAllowed values:pngjpegDefault:"png"
Parameters not listed here are not accepted: the response is 422 unknown_setting.
The API sets these settings itself, do not send them: model_version = "5.0_pro" layer_decomposition = true
Input
- One JPEG or PNG picture up to 30 MB, with an area from 512×512 to 6000×6000 pixels and one side at most 16 times longer than the other.
| Field | Accepts | Formats | Files | File size up to |
|---|---|---|---|---|
image_urls | Images | jpeg, jpg, png | 1 | 30 MB |
Request example
Send this JSON to POST /v1/tasks with your API key. To check the price first, send the same JSON to POST /v1/price.
Split the whole picture
{
"model": "seedream",
"settings": {
"mode": "layers",
"image_urls": [
"https://example.com/poster.png"
]
}
}Take out the named elements
{
"model": "seedream",
"settings": {
"mode": "layers",
"image_urls": [
"https://example.com/poster.png"
],
"prompt": "Кот и надпись сверху",
"quality": "2K"
}
}The price is calculated when the task is accepted, currency RUB.
Output
- The base as an image and a ZIP archive: the base, every layer as its own PNG with transparency, the frame assembled from the layers and a list of layers named by the model.
- There are from one to sixteen layers.
| Kind | Formats | How many | Note |
|---|---|---|---|
image | png, jpg | 1 | The base; the format is set by output_format. |
document | zip | 1 | An archive: the base, every layer as its own PNG, the frame assembled from the layers and the list of layers. |
A finished task as GET /v1/tasks/{id} returns it (some fields left out). The caption may sit on the task or on a single file and may be empty; the model picks the file name.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Caption of the result: the model and its settings",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "image",
"filename": "image.png",
"size": 1843200,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
},
{
"index": 1,
"kind": "document",
"filename": "result.zip",
"size": 2097152,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
}
]
}
}Edit keeping transparency
Version 5.0 PRO edits a PNG picture with a transparent background and keeps the transparency. An ordinary photo cannot be made transparent this way: splitting into layers is for that.
Value of the mode field: keep_transparency
Price in this mode from 9 ₽.
Parameters
Model parameters go inside settings. Omitted optional fields take their default values.
promptRequiredWhat to change in the picture.
Type: StringMinimum characters: 1Maximum characters: 5000image_urlsRequiredOne URL of a PNG that already has transparent areas.
Type: List (String, uri)Maximum items: 1aspect_ratioOptionalAspect ratio.
Type: StringAllowed values:1:12:33:23:44:39:1616:921:9Default:"9:16"qualityOptionalImage quality: 1K or 2K. The price depends on it.
Type: StringAllowed values:1K2KDefault:"1K"
Parameters not listed here are not accepted: the response is 422 unknown_setting.
The API sets these settings itself, do not send them: model_version = "5.0_pro" keep_transparency = true output_format = "png"
Input
- One PNG picture up to 30 MB that already has transparent areas.
- Each picture has both sides longer than 14 pixels, an area of at most 6000×6000 pixels, and one side at most 16 times longer than the other.
| Field | Accepts | Formats | Files | File size up to |
|---|---|---|---|---|
image_urls | Images | png | 1 | 30 MB |
Request example
Send this JSON to POST /v1/tasks with your API key. To check the price first, send the same JSON to POST /v1/price.
Recolor a logo without a background
{
"model": "seedream",
"settings": {
"mode": "keep_transparency",
"prompt": "Сделай логотип синим, форму не меняй",
"image_urls": [
"https://example.com/logo.png"
],
"aspect_ratio": "1:1"
}
}The price is calculated when the task is accepted, currency RUB.
Output
- One PNG image with a transparent background.
| Kind | Formats | How many | Note |
|---|---|---|---|
image | png | 1 |
A finished task as GET /v1/tasks/{id} returns it (some fields left out). The caption may sit on the task or on a single file and may be empty; the model picks the file name.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Caption of the result: the model and its settings",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "image",
"filename": "image.png",
"size": 1843200,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
}
]
}
}See also
Try Seedream 5.0 PRO through the API
One key opens every CyHUB model. Payment in rubles, and you see the price before the run.
Get an API key