> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toapis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedream-5.0-Pro Image Generation

> Generate high-quality images using Seedream 5.0 Pro model with 1K/2K resolution

> [!NOTE]
>
> **Note for users in mainland China:** Please use `https://toapis.cn` as the API endpoint (Base URL). Replace `https://toapis.com` with `https://toapis.cn` in the examples in this document.

* Seedream 5.0 Pro high-quality image generation model from ByteDance Seed team
* Use the model parameter to select `doubao-seedream-5-0-pro`
* Parameters are largely the same as `Seedream-5.0`, but Pro supports **1K** and **2K** resolutions
* Supports text-to-image, image-to-image, and multi-reference generation
* **Billing rule**: the first reference image is free; billing starts from the second reference image
* Async task management, query results by task ID

> [!WARNING]
>
> **Important Change**: For better performance and cost control, we no longer support passing base64 image data directly in `image_urls`. Please use the [Upload Image API](https://docs.toapis.com/docs/en/api-reference/uploads/images.md) first to upload images and get URLs, then call this endpoint.

## Authorizations

**Authorization** `string` *required*

All endpoints require Bearer Token authentication

Get your API Key from the [API Key Management Page](https://toapis.com/console/token)

Add to request header:

```
Authorization: Bearer YOUR_API_KEY
```

## Body

**model** `string` *required* (default: doubao-seedream-5-0-pro)

Image generation model name

Example: `"doubao-seedream-5-0-pro"`

**prompt** `string` *required*

Text description for image generation

**size** `string` (default: 1:1)

Image aspect ratio

When `layer_decomposition` is enabled, pass the `1K` or `2K` resolution preset directly in this field.

Supported aspect ratios:

* `1:1` - Square (default)
* `4:3` - Landscape 4:3
* `3:4` - Portrait 3:4
* `16:9` - Landscape widescreen
* `9:16` - Portrait vertical
* `3:2` - Landscape 3:2
* `2:3` - Portrait 2:3
* `21:9` - Ultra-wide
* `9:21` - Ultra-tall

**n** `integer` (default: 1)

Number of images to generate

Range: 1-10 (minimum 1, maximum 10)

Default: 1

**Note:**

* The total of reference images + generated images must be ≤ 15
* **Must enter a plain number (e.g., `1`), do not use quotes or it will cause an error**

Charges will be pre-deducted based on generated image count and reference image count, with the first reference image free

**layer\_decomposition** `boolean` (default: false)

Enables the layer decomposition capability available only in Seedream 5.0 Pro.

* `false`: returns a regular flattened image (default)
* `true`: returns a base image plus independent transparent PNG layers

When enabled, each `result.data[]` item includes `z_index`; independent layers also include `bounding_box`, `name`, and `description`.

**image\_urls** `string[]`

Reference image URL list for image-to-image or image editing

**⚠️ URL format only (base64 no longer supported)**

* Publicly accessible image URL (http\:// or https\://)
* You can use the [Upload Image API](https://docs.toapis.com/docs/en/api-reference/uploads/images.md) to upload local images and get URLs

**Limitations:**

* Image count: 1-10
* Image formats: jpeg, png
* Aspect ratio (width/height) range: \[1/3, 3]
* Width and height (px) > 14
* Size: not exceeding 10MB
* Total pixels: not exceeding 6000×6000 px

**Billing notes:**

* The first reference image is free
* Billing applies from the second reference image onward

**metadata** `object`

Channel-specific parameters for advanced Seedream 5.0 Pro model configuration

**metadata properties**

**metadata.resolution** `string` (default: 2K)

Image resolution

Supported resolutions:

* `1K` - Basic resolution
* `2K` - Standard resolution (default)

> **Note:** Seedream 5.0 Pro does not support 3K or 4K resolution; non-Pro Seedream 5.0 supports 2K and 3K

**metadata.sequential\_image\_generation** `string` (default: disabled)

Sequential image generation mode (Doubao-specific feature)

Controls whether to generate multiple images:

* `disabled`: Disable sequential mode, generates only 1 image even with multiple reference images (default)
* `auto`: Enable sequential mode, can generate multiple images

**Usage Notes:**

* ✅ Set `n: 3` or use `sequential_image_generation: "auto"` + `max_images: 3`
* ✅ Supports text-to-image sets: up to 10 images from text prompt only
* ✅ Supports image-to-image sets: provide `image_urls` to generate multiple variations
* ⚠️ When `n > 1`, it will automatically be set to `auto`

**Note:**

* Total reference images + generated images must be ≤ 15

**metadata.sequential\_image\_generation\_options** `object`

Sequential image generation options

Available when `sequential_image_generation` is set to `auto`

**Properties:**

* `max_images` (integer): Specify the number of images to generate, Range: 1-10

**Example:**

```json theme={null}
"sequential_image_generation_options": { "max_images": 3 }
```

**metadata.watermark** `boolean` (default: false)

Whether to add a watermark to the generated image

* `true`: Add watermark
* `false`: No watermark (default)

## Response

**id** `string`

Unique task identifier for status queries

**object** `string`

Object type, always `generation.task`

**model** `string`

Model name used

**status** `string`

Task status

* `queued` - Queued for processing
* `in_progress` - Processing
* `completed` - Successfully completed
* `failed` - Failed

**progress** `integer`

Task progress percentage (0-100)

**created\_at** `integer`

Task creation timestamp (Unix timestamp)

**metadata** `object`

Task metadata

**completed\_at** `integer`

Task completion timestamp (Unix timestamp). Returned only after the task completes.

**expires\_at** `integer`

Result file expiration timestamp (Unix timestamp). Download or persist the files before they expire.

**result** `object`

Generated result returned when `status` is `completed`.

**result.type** `string`

Result type. Always `image` for image tasks.

**result.data** `array`

Image result list. With layer decomposition enabled, the first item is normally the base image and the remaining items are independent transparent PNG layers.

**result.data\[].url** `string`

Public URL of the base image or independent layer.

**result.data\[].z\_index** `integer`

Layer stacking order. With layer decomposition enabled, the base image is normally `0` and independent layers increase from there.

**result.data\[].size** `string`

Pixel dimensions of the base image or independent layer, for example `2048x2048`.

**result.data\[].output\_format** `string`

File format of this result item. The base image can use the requested format; transparent independent layers use `png`.

**result.data\[].bounding\_box** `object`

Layer position on the base image, with `absolute` and `normalized` coordinates.

**result.data\[].bounding\_box.absolute** `array`

Absolute pixel coordinates on the base image in `[x1, y1, x2, y2]` order, representing the top-left and bottom-right corners.

**result.data\[].bounding\_box.normalized** `array`

Normalized coordinates in `[x1, y1, x2, y2]` order, with values ranging from `0` to `1000`.

**result.data\[].name** `string`

Layer name.

**result.data\[].description** `string`

Description of the layer contents.

```bash cURL theme={null}
curl --request POST \
  --url https://toapis.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "A cute panda playing in a bamboo forest",
    "size": "1:1",
    "n": 1,
    "metadata": {
      "resolution": "2K"
    }
  }'
```

```bash cURL (Image-to-Image) theme={null}
curl --request POST \
  --url https://toapis.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "A cute panda playing in a bamboo forest",
    "size": "1:1",
    "n": 1,
    "image_urls": [
      "https://example.com/panda.jpg"
    ],
    "metadata": {
      "resolution": "1K"
    }
  }'
```

```bash cURL (Layer Decomposition) theme={null}
curl --request POST \
  --url https://toapis.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "Precisely separate the image into a base image and independent transparent PNG layers.",
    "image_urls": [
      "https://example.com/office-desk.png"
    ],
    "size": "2K",
    "n": 1,
    "layer_decomposition": true
  }'
```

> [!NOTE]
>
> When `layer_decomposition` is enabled, set `size` directly to the `1K` or `2K` resolution preset. Do not use an explicit `WIDTHxHEIGHT` pixel size. After submission, query `GET /v1/images/generations/{task_id}` for the complete layer result.

```bash cURL (Batch Generation) theme={null}
curl --request POST \
  --url https://toapis.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "doubao-seedream-5-0-pro",
    "prompt": "A cute panda playing in a bamboo forest",
    "size": "1:1",
    "n": 4,
    "metadata": {
      "resolution": "2K",
      "sequential_image_generation": "auto",
      "sequential_image_generation_options": { "max_images": 4 },
      "watermark": false
    }
  }'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://toapis.com/v1/images/generations",
    headers={
        "Authorization": "Bearer your-ToAPIs-key",
        "Content-Type": "application/json"
    },
    json={
        "model": "doubao-seedream-5-0-pro",
        "prompt": "A cute panda playing in a bamboo forest",
        "size": "1:1",
        "n": 1,
        "metadata": {
            "resolution": "2K"
        }
    }
)

task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
```

```python Python (Image-to-Image) theme={null}
import requests

response = requests.post(
    "https://toapis.com/v1/images/generations",
    headers={
        "Authorization": "Bearer your-ToAPIs-key",
        "Content-Type": "application/json"
    },
    json={
        "model": "doubao-seedream-5-0-pro",
        "prompt": "A cute panda playing in a bamboo forest",
        "size": "1:1",
        "n": 1,
        "image_urls": ["https://example.com/panda.jpg"],
        "metadata": {
            "resolution": "1K"
        }
    }
)

task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
```

```javascript JavaScript theme={null}
const response = await fetch('https://toapis.com/v1/images/generations', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer your-ToAPIs-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'doubao-seedream-5-0-pro',
    prompt: 'A cute panda playing in a bamboo forest',
    size: '1:1',
    n: 1,
    metadata: {
      resolution: '2K'
    }
  })
});

const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
```

```javascript JavaScript (Image-to-Image) theme={null}
const response = await fetch('https://toapis.com/v1/images/generations', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer your-ToAPIs-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'doubao-seedream-5-0-pro',
    prompt: 'A cute panda playing in a bamboo forest',
    size: '1:1',
    n: 1,
    image_urls: ['https://example.com/panda.jpg'],
    metadata: {
      resolution: '1K'
    }
  })
});

const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
```

```json 200 theme={null}
{
  "id": "task_img_abc123def456",
  "object": "generation.task",
  "model": "doubao-seedream-5-0-pro",
  "status": "queued",
  "progress": 0,
  "created_at": 1703884800,
  "metadata": {}
}
```

```json 200 Layer decomposition completed theme={null}
{
  "completed_at": 1787128810,
  "created_at": 1787128650,
  "expires_at": 1787215210,
  "id": "tsk_img_example_layer_decomposition",
  "model": "doubao-seedream-5-0-pro",
  "object": "generation.task",
  "progress": 100,
  "result": {
    "type": "image",
    "data": [
      {
        "url": "https://files.toapis.com/images/example/base.jpg",
        "size": "1600x2848",
        "output_format": "jpeg",
        "z_index": 0
      },
      {
        "url": "https://files.toapis.com/images/example/layer-1.png",
        "size": "3040x955",
        "output_format": "png",
        "z_index": 1,
        "bounding_box": {
          "absolute": [0, 0, 1600, 503],
          "normalized": [0, 0, 999, 176]
        },
        "name": "Background office equipment",
        "description": "The monitor edge and file organizer extracted from the background"
      },
      {
        "url": "https://files.toapis.com/images/example/layer-2.png",
        "size": "1982x1162",
        "output_format": "png",
        "z_index": 2,
        "bounding_box": {
          "absolute": [800, 589, 1599, 1058],
          "normalized": [500, 207, 999, 371]
        },
        "name": "Stacked white papers",
        "description": "Several stacked white office papers extracted from the desk"
      }
    ]
  },
  "status": "completed"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.