Routes to Volcengine's image generation service, supporting SSE streaming, image-to-image, and multi-image fusion.

Supported models

Basic generation

curl -X POST https://ai.win10030.com/image/v1/generations \
  -H 'Authorization: Bearer sk-xxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "doubao-seedream-5-0-260128",
    "prompt": "A golden retriever running on grass",
    "size": "2k"
  }'

Base64 output

curl -X POST https://ai.win10030.com/image/v1/generations \
  -H 'Authorization: Bearer sk-xxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "doubao-seedream-5-0-260128",
    "prompt": "a cat",
    "size": "1024x1024",
    "response_format": "b64_json"
  }'

Image-to-image

curl -X POST https://ai.win10030.com/image/v1/generations \
  -H 'Authorization: Bearer sk-xxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "doubao-seedream-5-0-260128",
    "prompt": "Turn this photo into a cartoon style",
    "image": "https://example.com/portrait.jpg",
    "size": "1024x1024",
    "upstream_options": { "watermark": false, "guidance_scale": 7.5 }
  }'

Multi-image fusion

curl -X POST https://ai.win10030.com/image/v1/generations \
  -H 'Authorization: Bearer sk-xxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "doubao-seedream-5-0-260128",
    "prompt": "Place the person into the scene",
    "image": ["https://example.com/person.jpg", "https://example.com/scene.jpg"],
    "size": "1024x1024"
  }'

image also supports object arrays [{ file_id, image_url }].

Streaming

curl -N -X POST https://ai.win10030.com/image/v1/generations \
  -H 'Authorization: Bearer sk-xxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "doubao-seedream-5-0-260128",
    "prompt": "Golden retriever running on grass",
    "size": "2k",
    "stream": true
  }'

Common upstream_options

ParameterDescription
watermarkToggle watermark. Default true
guidance_scalePrompt guidance strength, 1-20
sequential_image_generationSequential image mode
output_formatOutput format, e.g. png, webp

See also

Overview

Input and output pricing

All Seedream models use the same pricing structure with independently configured unit prices. The first input image is free; additional inputs are charged per image. Each successful output is priced using its actual width × height, with separate tiers for ≤2.61 million and >2.61 million pixels. Generation and layer decomposition have separate prices. Charges are summed, discounted and rounded once; output_tokens does not determine image charges.

GET /image/v1/models/:code/endpoints exposes the full customer pricing, discounts and fiat conversion in pricing.images.seedream. The legacy image price represents the lower generation tier. Usage details retain historical component prices.

Layer decomposition

Set upstream_options.layer_decomposition to true and provide one image. The prompt can be omitted in this mode. Each output preserves size; layer order, name, description and bounding box are returned in its provider_metadata.

{
  "model": "your-model-code",
  "image": "https://example.com/image.png",
  "size": "auto",
  "upstream_options": { "layer_decomposition": true }
}

Layer decomposition, streaming and sequential generation depend on upstream capabilities. Seedream 5.0 Pro / Flash currently do not support streaming or sequential generation.