curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Кошка гонится за змеей по траве, камера быстро следует за движением",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Девушка кружится под цветущими вишнями и в конце плавно останавливается",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-5-pro",
"prompt": "Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-5-pro',
prompt: 'Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
doubao-seedance-1-5-pro
Doubao SeeDance 1.5 Pro Генерация видео
Генерация видео с помощью модели ByteDance Doubao SeeDance 1.5 Pro
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Кошка гонится за змеей по траве, камера быстро следует за движением",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Девушка кружится под цветущими вишнями и в конце плавно останавливается",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-5-pro",
"prompt": "Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-5-pro',
prompt: 'Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Для пользователей из материкового Китая: используйте
https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.- Модель генерации видео ByteDance Doubao версии 1.5 Pro
- Поддержка генерации текста в видео
- Поддержка управления первым и последним кадром
- Режим референсных изображений не поддерживается
- Поддержка генерации аудио (эксклюзивная функция 1.5 Pro)
- Асинхронное управление задачами, запрос результатов по ID задачи
Authorizations
string
обязательно
Все запросы требуют Bearer Token авторизациюПолучите API Key на странице управления API KeyДобавьте в заголовок запроса:
Authorization: Bearer YOUR_API_KEY
Тело запроса
string
по умолчанию:"doubao-seedance-1-5-pro"
обязательно
Название модели генерации видеоДоступные модели:
doubao-seedance-1-5-pro- версия 1.5 Pro, поддерживает генерацию аудио и управление первым/последним кадром
string
обязательно
Описание содержимого видеоПодробно опишите сцену, действия и стиль для лучших результатов генерацииПример:
"Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок"integer
по умолчанию:5
Продолжительность видео (секунды)Поддерживаемый диапазон:
4 ~ 12 секундПо умолчанию: 5string
по умолчанию:"16:9"
Соотношение сторон видеоВарианты:
16:9- Горизонтальный9:16- Вертикальный1:1- Квадрат4:3- Традиционное соотношение3:4- Вертикальное традиционное соотношение21:9- Ультраширокий
16:9Комбинации разрешения и соотношения сторон
| Разрешение | Поддерживаемые соотношения | Примечания |
|---|---|---|
| 480p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | Все поддерживаются |
| 720p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | Все поддерживаются (по умолчанию) |
| 1080p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | Все поддерживаются |
string[]
Совместимый массив URL изображений для режима первого/последнего кадраПравила совместимости:
- 1 изображение: трактуется как
first_frame - 2 изображения: трактуются как
first_frameиlast_frame - Более 2 изображений: используются только первые два
image_with_roles для явного указания первого и последнего кадраПример: ["https://example.com/first.png", "https://example.com/last.png"]image_urls и image_with_roles нельзя использовать вместеarray
Массив изображений с ролями для явного управления первым и последним кадром
Пример:
Показать Описание полей
Показать Описание полей
[
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
]
image_urlsиimage_with_rolesнельзя использовать вместе- Поддерживается только по одному первому и последнему кадру
- 1.5 Pro не поддерживает роль
reference_image. Для референсных изображений используйте Seedance 2.0
object
Дополнительные параметры
Показать Описание полей
Показать Описание полей
string
по умолчанию:"720p"
Разрешение видеоВарианты:
480p- Стандартное разрешение720p- Высокое разрешение (по умолчанию)1080p- Full HD
integer
Целое число seed для контроля случайности генерацииДиапазон:
-1 ~ 2^32-1Одинаковый seed может давать похожие результаты, но не гарантирует идентичный выводboolean
по умолчанию:false
Генерировать ли аудиоЕсли
true, видео будет содержать сгенерированное AI аудиоЭксклюзивная функция 1.5 Proboolean
по умолчанию:false
Фиксировать ли камеруЕсли
true, положение камеры останется фиксированным на протяжении видеоОтличия от версии 1.0
| Функция | 1.0 fast/quality | 1.5 Pro |
|---|---|---|
| Разрешение по умолчанию | 1080p | 720p |
| Поддерживаемые разрешения | 480p/720p/1080p | 480p/720p/1080p |
| Диапазон продолжительности | 2-12с | 4-12с |
| Генерация аудио | Не поддерживается | Поддерживается |
| Режим управления изображением | reference одно референсное изображение | режим кадров first_frame / last_frame |
Response
string
Уникальный идентификатор задачи для запроса статуса
string
Тип объекта, всегда
generation.taskstring
Использованная модель
string
Статус задачи
queued- В очередиin_progress- В обработкеcompleted- Успешно завершенаfailed- Ошибка
integer
Процент выполнения задачи (0-100)
integer
Время создания задачи (Unix timestamp)
object
Метаданные задачи
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Кошка гонится за змеей по траве, камера быстро следует за движением",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Девушка кружится под цветущими вишнями и в конце плавно останавливается",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-5-pro",
"prompt": "Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-5-pro',
prompt: 'Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}