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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"metadata": {
"resolution": "2K"
}
}'
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/panda.jpg"
],
"metadata": {
"resolution": "1K"
}
}'
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": "Точно раздели изображение на слои: верни базовое изображение и несколько независимых прозрачных PNG-слоёв.",
"image_urls": [
"https://example.com/office-desk.png"
],
"size": "2K",
"n": 1,
"layer_decomposition": true
}'
При включённом layer_decomposition указывайте в size сразу пресет разрешения 1K или 2K, а не явный размер в пикселях. После успешной отправки запросите полный результат по слоям через GET /v1/images/generations/{task_id}.
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 4,
"metadata": {
"resolution": "2K",
"sequential_image_generation": "auto",
"sequential_image_generation_options": { "max_images": 4 },
"watermark": false
}
}'
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"metadata": {
"resolution": "2K"
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"image_urls": ["https://example.com/panda.jpg"],
"metadata": {
"resolution": "1K"
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
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: 'Милая панда играет в бамбуковом лесу',
size: '1:1',
n: 1,
metadata: {
resolution: '2K'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
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: 'Милая панда играет в бамбуковом лесу',
size: '1:1',
n: 1,
image_urls: ['https://example.com/panda.jpg'],
metadata: {
resolution: '1K'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "doubao-seedream-5-0-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
{
"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": "Группа офисного оборудования на фоне",
"description": "Извлечены края монитора и органайзер для документов на фоне, без лишнего содержимого"
},
{
"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": "Стопка белых листов",
"description": "Извлечено несколько стопок белой офисной бумаги на столе, без лишнего содержимого"
}
]
},
"status": "completed"
}
Seedream-5.0-Pro
Seedream-5.0-Pro Генерация изображений
Генерация высококачественных изображений с помощью модели Seedream 5.0 Pro с поддержкой разрешений 1K/2K
POST
/
v1
/
images
/
generations
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"metadata": {
"resolution": "2K"
}
}'
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/panda.jpg"
],
"metadata": {
"resolution": "1K"
}
}'
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": "Точно раздели изображение на слои: верни базовое изображение и несколько независимых прозрачных PNG-слоёв.",
"image_urls": [
"https://example.com/office-desk.png"
],
"size": "2K",
"n": 1,
"layer_decomposition": true
}'
При включённом layer_decomposition указывайте в size сразу пресет разрешения 1K или 2K, а не явный размер в пикселях. После успешной отправки запросите полный результат по слоям через GET /v1/images/generations/{task_id}.
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 4,
"metadata": {
"resolution": "2K",
"sequential_image_generation": "auto",
"sequential_image_generation_options": { "max_images": 4 },
"watermark": false
}
}'
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"metadata": {
"resolution": "2K"
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"image_urls": ["https://example.com/panda.jpg"],
"metadata": {
"resolution": "1K"
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
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: 'Милая панда играет в бамбуковом лесу',
size: '1:1',
n: 1,
metadata: {
resolution: '2K'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
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: 'Милая панда играет в бамбуковом лесу',
size: '1:1',
n: 1,
image_urls: ['https://example.com/panda.jpg'],
metadata: {
resolution: '1K'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "doubao-seedream-5-0-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
{
"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": "Группа офисного оборудования на фоне",
"description": "Извлечены края монитора и органайзер для документов на фоне, без лишнего содержимого"
},
{
"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": "Стопка белых листов",
"description": "Извлечено несколько стопок белой офисной бумаги на столе, без лишнего содержимого"
}
]
},
"status": "completed"
}
Для пользователей из материкового Китая: используйте
https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.- Seedream 5.0 Pro — модель высококачественной генерации изображений от команды ByteDance Seed
- Используйте параметр model для выбора модели
doubao-seedream-5-0-pro - Параметры в основном совпадают с
Seedream-5.0, отличие в том, что Pro поддерживает разрешения 1K и 2K - Поддерживает генерацию по тексту, по изображению и с несколькими референсами
- Правила оплаты: первое референсное изображение бесплатно, оплата начисляется со второго референсного изображения
- Асинхронное управление задачами, запрос результатов по ID задачи
Важное изменение: Для повышения производительности и контроля затрат мы больше не поддерживаем передачу данных изображений в формате base64 напрямую в
image_urls. Пожалуйста, сначала используйте API загрузки изображений для загрузки изображений и получения URL, а затем вызывайте этот эндпоинт.Авторизация
string
обязательно
Все API требуют аутентификации Bearer TokenПолучите API Key на странице управления API KeyДобавьте в заголовок запроса:
Authorization: Bearer YOUR_API_KEY
Тело запроса
string
по умолчанию:"doubao-seedream-5-0-pro"
обязательно
Название модели генерации изображенийПример:
"doubao-seedream-5-0-pro"string
обязательно
Текстовое описание для генерации изображения
string
по умолчанию:"1:1"
Соотношение сторон изображенияПри включённом
layer_decomposition в этом поле передаётся готовый пресет разрешения 1K или 2K.Поддерживаемые соотношения:1:1- Квадрат (по умолчанию)4:3- Горизонтальный 4:33:4- Вертикальный 3:416:9- Горизонтальный широкоэкранный9:16- Вертикальный длинный3:2- Горизонтальный 3:22:3- Вертикальный 2:321:9- Ультраширокий9:21- Ультравысокий
integer
по умолчанию:1
Количество генерируемых изображенийДиапазон: 1-10 (минимум 1, максимум 10)По умолчанию: 1Примечание:
- Суммарное количество референсных изображений + генерируемых изображений должно быть ≤ 15
- Вводите только число (например
1), не добавляйте кавычки, иначе возникнет ошибка
boolean
по умолчанию:false
Включить уникальную для Seedream 5.0 Pro возможность разделения на слои.
false: возвращается обычное плоское изображение (по умолчанию)true: возвращается базовое изображение и несколько независимых PNG-слоёв с альфа-каналом
result.data[] в результате запроса задачи дополнительно возвращает z_index; независимые слои дополнительно возвращают bounding_box, name и description. Параметр поддерживается только в Seedream 5.0 Pro.string[]
Список URL референсных изображений для изображения-в-изображение или редактирования изображений⚠️ Только формат URL (base64 больше не поддерживается)
- Публично доступный URL изображения (http:// или https://)
- Можно использовать API загрузки изображений для загрузки локальных изображений и получения URL
- Количество изображений: 1-10
- Форматы изображений: jpeg, png
- Диапазон соотношения сторон (ширина/высота): [1/3, 3]
- Ширина и высота (px) > 14
- Размер: не более 10 МБ
- Общее количество пикселей: не более 6000×6000 px
- Первое референсное изображение бесплатно
- Со второго референсного изображения оплата начисляется по обычным правилам
object
Специфичные параметры канала для передачи расширенной конфигурации модели Seedream 5.0 Pro
Показать Свойства metadata
Показать Свойства metadata
string
по умолчанию:"2K"
Разрешение изображенияПоддерживаемые разрешения:
1K- Базовое разрешение2K- Стандартное разрешение (по умолчанию)
Примечание: Seedream 5.0 Pro не поддерживает разрешения 3K и 4K; Seedream 5.0 без Pro поддерживает 2K и 3K
string
по умолчанию:"disabled"
Режим последовательной генерации изображений (специфическая функция Doubao)Управляет генерацией нескольких изображений:
disabled: последовательный режим отключён, даже при нескольких референсных изображениях генерируется только 1 изображение (по умолчанию)auto: последовательный режим включён, можно генерировать несколько изображений
- ✅ Установите
n: 3или используйтеsequential_image_generation: "auto"+max_images: 3 - ✅ Поддерживается генерация серии по тексту: только по текстовому промпту, до 10 изображений
- ✅ Поддерживается изображение-в-изображение и генерация серии по изображению: укажите
image_urlsи генерируйте несколько изображений на основе референсного - ⚠️ При
n > 1автоматически устанавливаетсяauto
- Количество входных референсных изображений + итоговых сгенерированных изображений ≤ 15
object
Параметры последовательной генерации изображенийДоступно, когда
sequential_image_generation установлен в autoСвойства:max_images(целое число): количество генерируемых изображений, диапазон: 1-10
"sequential_image_generation_options": { "max_images": 3 }
boolean
по умолчанию:false
Добавлять ли водяной знак к сгенерированному изображению
true: с водяным знакомfalse: без водяного знака (по умолчанию)
Ответ
string
Уникальный идентификатор задачи для запроса статуса
string
Тип объекта, всегда
generation.taskstring
Используемое имя модели
string
Статус задачи
queued- В очереди на обработкуin_progress- Обработкаcompleted- Успешно завершеноfailed- Не удалось
integer
Процент выполнения задачи (0-100)
integer
Временная метка создания задачи (временная метка Unix)
object
Метаданные задачи
integer
Временная метка завершения задачи (временная метка Unix). Возвращается только после завершения задачи.
integer
Временная метка истечения срока хранения файла результата (временная метка Unix). Скачайте или сохраните файл результата до истечения срока.
object
Результат генерации после успешного завершения задачи. Возвращается только когда
status равен completed.string
Тип результата, для задач изображений всегда
image.array
Список результатов-изображений. При включённом разделении на слои первый элемент обычно является базовым изображением, остальные — независимыми PNG-слоями с альфа-каналом.
string
Публично доступный адрес базового изображения или независимого слоя.
integer
Порядок наложения слоёв. При включённом
layer_decomposition базовое изображение обычно 0, а независимые слои идут по возрастанию.string
Размер текущего базового изображения или независимого слоя в пикселях, например
2048x2048.string
Формат файла текущего результата. Базовое изображение может быть в запрошенном формате, прозрачные независимые слои — в
png.object
Положение независимого слоя на базовом изображении: содержит
absolute (абсолютные координаты) и normalized (нормализованные координаты).array
Абсолютные пиксельные координаты слоя на базовом изображении в формате
[x1, y1, x2, y2], где указаны координаты левого верхнего и правого нижнего углов.array
Нормализованные координаты слоя в формате
[x1, y1, x2, y2], диапазон координат 0-1000.string
Название слоя.
string
Описание содержимого слоя.
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"metadata": {
"resolution": "2K"
}
}'
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/panda.jpg"
],
"metadata": {
"resolution": "1K"
}
}'
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": "Точно раздели изображение на слои: верни базовое изображение и несколько независимых прозрачных PNG-слоёв.",
"image_urls": [
"https://example.com/office-desk.png"
],
"size": "2K",
"n": 1,
"layer_decomposition": true
}'
При включённом
layer_decomposition указывайте в size сразу пресет разрешения 1K или 2K, а не явный размер в пикселях. После успешной отправки запросите полный результат по слоям через GET /v1/images/generations/{task_id}.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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 4,
"metadata": {
"resolution": "2K",
"sequential_image_generation": "auto",
"sequential_image_generation_options": { "max_images": 4 },
"watermark": false
}
}'
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"metadata": {
"resolution": "2K"
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
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": "Милая панда играет в бамбуковом лесу",
"size": "1:1",
"n": 1,
"image_urls": ["https://example.com/panda.jpg"],
"metadata": {
"resolution": "1K"
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
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: 'Милая панда играет в бамбуковом лесу',
size: '1:1',
n: 1,
metadata: {
resolution: '2K'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
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: 'Милая панда играет в бамбуковом лесу',
size: '1:1',
n: 1,
image_urls: ['https://example.com/panda.jpg'],
metadata: {
resolution: '1K'
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "doubao-seedream-5-0-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
{
"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": "Группа офисного оборудования на фоне",
"description": "Извлечены края монитора и органайзер для документов на фоне, без лишнего содержимого"
},
{
"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": "Стопка белых листов",
"description": "Извлечено несколько стопок белой офисной бумаги на столе, без лишнего содержимого"
}
]
},
"status": "completed"
}