Skip to content
Docs version r8
OpenAPIJSONYAML
Guides / Models

Seedream 5.0 Pro API

Every input field of Seedream 5.0 Pro, the rules between them, the price and a complete request with its responses.

POST/v1/generations"model": "seedream-5-0-pro"

Generates one image from a prompt and optional reference images.

What it does

Seedream 5.0 Pro makes one high-resolution image from a prompt, at 2K, 3K or a custom size up to 4K. Add up to 10 reference images to edit a picture, keep a product or character, or borrow a style. The prompt goes in input.prompt and the reference images in input.image; whether you send image chooses the mode:

ModeFields that select itOther fields to set
[Text to image](#text-to-image)prompt onlysize (optional)
[Reference images and editing](#reference-images-and-editing)prompt, image with 1 to 10 itemssize (optional)

Every task returns exactly one image. For a set of related images in one task, use Seedream 5.0 Lite.

Every example below is a complete body for POST /v1/generations. Send the same body to POST /v1/estimates first: it is free, creates no task, holds no Credits, and refuses an invalid body with the same 422 as a create. The https://media.vizoapi.com/... files are public samples, so the examples run as they are; replace them with your own files or uploaded ast_... asset IDs.

Modes

Text to image

Send only prompt. Pick the size with size: 2k, 3k, or an exact WIDTHxHEIGHT (see [Output](#output)). For 4K, send the pixel size, such as 3840x2160; the word 4k is refused.

Text to image

{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "A paper boat on a still pond at dawn, mist on the water, soft natural light, photorealistic, shallow depth of field",
    "size": "2k"
  }
}

4K landscape

{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "Wide cinematic view of a black monolith on an empty savanna at sunrise, long shadows, fine film grain",
    "size": "3840x2160",
    "output_format": "jpeg",
    "seed": 42
  }
}

Reference images and editing

Put 1 to 10 images in image, in the order you want to name them. With one image, the prompt can edit it: change an object, the background, the light or the style, and say what must stay. With several, combine them: a character from one, a place from another, the style of a third. Name each by its order in the prompt ("image 1", "image 2").

An 11th image is refused (rule too_many_items). Each item is a public https URL or an ast_... asset ID; anything else is refused (rule bad_format). The first reference image is included in the price; each one after it adds a small charge (see [How it is billed](#how-it-is-billed)).

Edit one image

{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "Replace the black monolith in image 1 with a tall crystal obelisk; keep the landscape, light and composition unchanged",
    "image": [
      "https://media.vizoapi.com/samples/seedance-2-5/odyssey-v1/keyframes/monolith.jpg"
    ],
    "size": "2k"
  }
}

Combine references

{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "Poster: the ring-shaped space station from image 2 hangs in the sky above the monolith and savanna from image 1, golden hour, clean title space at the top",
    "image": [
      "https://media.vizoapi.com/samples/seedance-2-5/odyssey-v1/keyframes/monolith.jpg",
      "https://media.vizoapi.com/samples/seedance-2-5/odyssey-v1/keyframes/station.jpg"
    ],
    "size": "2304x3072"
  }
}

Prompt optimization

Any mode can set "optimize_prompt": true to have the prompt rewritten before generation. optimize_prompt_options tunes it: thinking is auto, enabled or disabled, and mode is only standard. Sending optimize_prompt_options without "optimize_prompt": true is refused (rule optimize_options_without_optimize). The price does not change.

Optimized prompt
{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "cozy reading corner, rainy evening",
    "optimize_prompt": true,
    "optimize_prompt_options": { "thinking": "enabled", "mode": "standard" },
    "size": "3k"
  }
}

Input limits

LimitValueChecked
promptRequired and not blankAt create, 422 invalid_input (required, bad_format)
image itemsUp to 10At create, 422 invalid_input (too_many_items)
Image valuePublic https URL (up to 4,000 characters) or ast_... asset IDAt create, 422 invalid_input (bad_format)
size2k, 3k, or WIDTHxHEIGHT with 3,686,400 to 10,404,496 pixels in totalAt create, 422 invalid_input (bad_format for the shape, size_invalid for the pixel count)
Image filePNG, JPEG, WebP, BMP, TIFF, GIF, HEIC; up to 30 MBAt create when readable: 422 input_media_invalid (format) or input_media_too_large (size)
Uploaded assetimage/png, image/jpeg, image/webp; up to 20,000,000 bytesWhen you request the upload, 422
Reference pixel size and aspect ratio; output aspect ratioChecked by the model onlyWhen the task runs: the task fails with generation_failed and is not charged

Plain http, private or local addresses, URLs with a user name or #fragment, and Base64 data are refused with 422 (rule bad_format). The model fetches a linked image itself, possibly some time after acceptance, so keep it reachable until the task closes; if it cannot, the task fails with generation_failed. See Model inputs and media.

Output

SettingValues
size2k, 3k, or WIDTHxHEIGHT with 3,686,400 to 10,404,496 pixels, for example 2048x2048 (1:1), 2560x1440 (16:9), 2304x3072 (3:4), 3840x2160 (4K 16:9) or 3200x3200. When omitted, the model picks its default size
output_formatjpeg only (the default); png is refused with 422 because this model always returns JPEG
seed-1 (or omitted) for random, or a non-negative integer to repeat a result more closely
optimize_promptfalse (default) or true to rewrite the prompt first
watermarkfalse (default) or true for a visible watermark

A succeeded task lists one JPEG image in result.outputs: take its asset_id and get a download URL with download an asset. Outputs are kept for 7 days. See Get results.

How it is billed

The model has one tier, standard, priced per output image. The listed price, 20 Credits per image, already covers every size this model accepts, from 2K to 4K, so size, output_format, seed, optimize_prompt and watermark do not change it.

Reference images: the first is included; each one after it adds the extra input image charge shown in the [Pricing](#pricing) section below.

RequestOutput imagesReference imagesHeld
Text to image, any size1020.000
Edit one image1120.000
Combine 3 references1320.000 + 2 × the extra input image charge (see [Pricing](#pricing))

A succeeded task is charged for the image delivered, plus the same reference image charge, so price.charged equals the hold. A failed, canceled or unresolved task is not charged and its hold is released. Send the body to POST /v1/estimates to see the exact hold and its basis (outputs, input_images, large). See Billing.

Errors and behaviors

WhenResponseWhat to do
A field the schema does not list, a wrong value or type422 invalid_input, errors[].rule such as field_not_allowed, value_not_allowed, wrong_type, out_of_rangeSend only the fields in the reference below; model belongs outside input
A missing or blank prompt422 invalid_input, rule required or bad_formatSend a prompt
More than 10 reference images422 invalid_input, rule too_many_itemsSend at most 10
A size outside the pixel range, or a name other than 2k and 3k422 invalid_input, rule size_invalid or bad_formatUse 2k, 3k or a valid WIDTHxHEIGHT
optimize_prompt_options without "optimize_prompt": true422 invalid_input, rule optimize_options_without_optimizeSet optimize_prompt or drop the options
A linked image has the wrong format or is too large422 input_media_invalid or input_media_too_largeConvert or shrink it
The model refuses or cannot fetch an imageTask fails with generation_failedCheck the file and keep the URL public until the task closes, or upload it; nothing is charged
Content safety refuses the prompt or a reference imageTask fails with input_moderatedChange the prompt or image; nothing is charged
Content safety refuses the resultTask fails with output_moderated, no resultChange the prompt; nothing is charged
The model fails for another reasonTask fails with generation_failedRetry, or change the prompt; nothing is charged

Moderation is always on; no field turns it off. Each task has a 24-hour deadline from acceptance. A task still unfinished then closes as unresolved, releases its hold and is not charged; if its result arrives later, it is added at no charge and late_result_available becomes true. See Errors and Get results.

Prompting tips

  • Describe the picture, not the process: subject, setting, composition, light, lens and style. "Close-up product shot on white marble, soft window light, 85 mm" works better than a list of keywords.
  • Pick size for the framing you want. A tall 2304x3072 suits posters and phone screens, a wide 3840x2160 suits banners and desktop backgrounds.
  • To edit, say exactly what changes and what stays: "replace the sky with a storm; keep the people, their pose and the framing unchanged".
  • With several references, name each by its order and say what to take from it: "the jacket from image 2 on the person in image 1, in the style of image 3".
  • Put text you want in the image in quotes, and say where it goes: a title "NORTH STAR" at the top, in bold white letters.
  • Keep seed fixed while you adjust the wording, to see what the wording changes.

Pricing

Each output image is billed at the tier’s price.

TierSelected byPrice
standardany input20 Credits per image

Rules

  • optimize_prompt_options is allowed only with optimize_prompt set to true.

Input fields

Send these fields in input. A field the table does not list is refused with HTTP 422 invalid_input.

Input fields
FieldDescription
promptstringRequired

Text prompt. Must not be blank.

seedintegerOptional

Random seed; -1 picks one at random.

Minimum -1 · Maximum 9223372036854775807

sizestringOptional

Output size: WIDTHxHEIGHT with 3,686,400 to 10,404,496 pixels in total, or 2k or 3k.

Pattern^([1-9][0-9]*x[1-9][0-9]*|2k|3k)$

imagearray of stringsOptional

Reference images, up to 10.

At most 10 items

optimize_promptbooleanOptional

Rewrites the prompt before generation.

Default false

optimize_prompt_optionsobjectOptional

Allowed only with optimize_prompt set to true.

optimize_prompt_options.thinkingstringOptional

Prompt expansion.

Allowed valuesautoenableddisabled
optimize_prompt_options.modestringOptional

Optimization mode. Only standard.

Only standard

output_formatstringOptional

Image file format. Seedream 5.0 Pro returns JPEG only.

Allowed valuesjpeg

Default jpeg

watermarkbooleanOptional

Add a visible watermark. Defaults to false; the tier price is unchanged.

Default false

Example

A complete create request, the 202 answer and the task once it has succeeded.

Request

cURL

curl https://api.vizoapi.com/v1/generations \
  -H "Authorization: Bearer $VIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "A paper boat on a pond at dawn, soft watercolor"
  },
  "metadata": {
    "client_reference": "my-unique-reference-1"
  }
}'

Python

import os, requests

# Send once: do not retry this request automatically.
task = requests.post(
    "https://api.vizoapi.com/v1/generations",
    headers={"Authorization": f"Bearer {os.environ['VIZO_API_KEY']}"},
    json={
      "model": "seedream-5-0-pro",
      "input": {
        "prompt": "A paper boat on a pond at dawn, soft watercolor"
      },
      "metadata": {
        "client_reference": "my-unique-reference-1"
      }
    },
    timeout=60,
).json()
print(task["id"], task["status"])

Node.js

// Send once: do not retry this request automatically.
const res = await fetch("https://api.vizoapi.com/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VIZO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "seedream-5-0-pro",
    "input": {
      "prompt": "A paper boat on a pond at dawn, soft watercolor"
    },
    "metadata": {
      "client_reference": "my-unique-reference-1"
    }
  }),
});
const task = await res.json();
console.log(task.id, task.status);

This input selects the standard tier at 20 Credits per image. One image holds 20.000 Credits.

Response

202 Accepted

{
  "id": "gen_01JD8Z5QW3XR",
  "model": "seedream-5-0-pro",
  "source": "api",
  "created_at": "2026-11-08T09:00:00Z",
  "customer_resolution_deadline": "2026-11-09T09:00:00Z",
  "late_result_available": false,
  "metadata": {
    "client_reference": "my-unique-reference-1"
  },
  "status": "processing",
  "execution_status": "processing",
  "delivery_status": "pending",
  "billing_status": "pending",
  "version": 1,
  "price": {
    "unit": "credit",
    "estimated": "20.000",
    "reserved": "0.000",
    "charged": "0.000",
    "refunded": "0.000"
  },
  "allowed_actions": [],
  "closed_at": null,
  "error": null,
  "result": null
}

200 Succeeded

{
  "id": "gen_01JD8Z5QW3XR",
  "model": "seedream-5-0-pro",
  "source": "api",
  "created_at": "2026-11-08T09:00:00Z",
  "customer_resolution_deadline": "2026-11-09T09:00:00Z",
  "late_result_available": false,
  "metadata": {
    "client_reference": "my-unique-reference-1"
  },
  "status": "succeeded",
  "execution_status": "succeeded",
  "delivery_status": "ready",
  "billing_status": "settled",
  "version": 4,
  "price": {
    "unit": "credit",
    "estimated": "20.000",
    "reserved": "0.000",
    "charged": "20.000",
    "refunded": "0.000"
  },
  "allowed_actions": [],
  "closed_at": "2026-11-08T09:01:31Z",
  "error": null,
  "result": {
    "asset_id": "ast_01JD8Z9M2C4V",
    "outputs": [
      {
        "index": 0,
        "asset_id": "ast_01JD8Z9M2C4V",
        "content_type": "image/jpeg"
      }
    ]
  }
}