> ## 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.

# Doubao SeeDance 1.5 Pro Генерация видео

> Генерация видео с помощью модели ByteDance Doubao SeeDance 1.5 Pro

> [!NOTE]
>
> **Для пользователей из материкового Китая:** используйте `https://toapis.cn` в качестве эндпоинта (Base URL). Замените `https://toapis.com` на `https://toapis.cn` во всех примерах этого документа.

* Модель генерации видео ByteDance Doubao версии 1.5 Pro
* Поддержка генерации текста в видео
* Поддержка управления первым и последним кадром
* Режим референсных изображений не поддерживается
* Поддержка генерации аудио (эксклюзивная функция 1.5 Pro)
* Асинхронное управление задачами, запрос результатов по ID задачи

## Authorizations

**Authorization** `string` *required*

Все запросы требуют Bearer Token авторизацию

Получите API Key на странице [управления API Key](https://toapis.com/console/token)

Добавьте в заголовок запроса:

```
Authorization: Bearer YOUR_API_KEY
```

## Тело запроса

**model** `string` *required* (default: doubao-seedance-1-5-pro)

Название модели генерации видео

Доступные модели:

* `doubao-seedance-1-5-pro` - версия 1.5 Pro, поддерживает генерацию аудио и управление первым/последним кадром

**prompt** `string` *required*

Описание содержимого видео

Подробно опишите сцену, действия и стиль для лучших результатов генерации

Пример: `"Закат на пляже, золотой солнечный свет на море, волны мягко ударяются о песок"`

**duration** `integer` (default: 5)

Продолжительность видео (секунды)

Поддерживаемый диапазон: `4` \~ `12` секунд

По умолчанию: `5`

**aspect\_ratio** `string` (default: 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 | Все поддерживаются |

**image\_urls** `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` нельзя использовать вместе

**image\_with\_roles** `array`

Массив изображений с ролями для явного управления первым и последним кадром

**Описание полей**

**url** `string` *required*

URL изображения

**role** `string` *required*

Роль изображения

Варианты:

* `first_frame` - Первый кадр, используется как стартовый кадр видео (поддерживается только один)
* `last_frame` - Последний кадр, используется как финальный кадр видео (поддерживается только один)

Пример:

```json theme={null}
[
  {"url": "https://example.com/first.png", "role": "first_frame"},
  {"url": "https://example.com/last.png", "role": "last_frame"}
]
```

> [!WARNING]
>
> * `image_urls` и `image_with_roles` нельзя использовать вместе
> * Поддерживается только по одному первому и последнему кадру
> * 1.5 Pro не поддерживает роль `reference_image`. Для референсных изображений используйте Seedance 2.0

**metadata** `object`

Дополнительные параметры

**Описание полей**

**resolution** `string` (default: 720p)

Разрешение видео

Варианты:

* `480p` - Стандартное разрешение
* `720p` - Высокое разрешение (по умолчанию)
* `1080p` - Full HD

**seed** `integer`

Целое число seed для контроля случайности генерации

Диапазон: `-1` \~ `2^32-1`

Одинаковый seed может давать похожие результаты, но не гарантирует идентичный вывод

**audio** `boolean` (default: false)

Генерировать ли аудио

Если `true`, видео будет содержать сгенерированное AI аудио

**Эксклюзивная функция 1.5 Pro**

**camerafixed** `boolean` (default: 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`** |

## Проверка материалов

Если запрос содержит изображения, некоторые каналы автоматически проверяют их перед отправкой на генерацию. Дополнительный параметр не нужен: передавайте URL изображений в прежних полях.

* Принятый запрос сразу возвращает видеозадачу. Если нужна проверка, задача остается в `queued`, а генерация отправляется только после того, как все материалы запроса пройдут проверку. Первая проверка может занять несколько минут; повторное использование того же URL тем же пользователем в том же канале переиспользует результат проверки.
* Один раунд подготовки материалов по умолчанию длится не более 20 минут. Отказ в проверке или тайм-аут подготовки завершают задачу со статусом `failed`, причина указана в `error.message`. Если проверка не пройдена, плата за генерацию видео не взимается.
* Изображения передаются только публичными HTTP(S) URL; Base64 и локальные пути не принимаются. Размер изображения не больше 20 MB (в некоторых каналах до 30 MB). Прежние ограничения форматов модели сохраняются.
* Каналы с проверкой валидируют URL изображений при приеме запроса: URL с учетными данными или длиннее 2048 байт возвращает HTTP 400 с `error.code` `invalid_private_assets`.
* Материалы определяются по URL. После изменения содержимого файла используйте новый URL.
* Прежние ссылки `asset://` выведены из использования и возвращают HTTP 400.

## Response

**id** `string`

Уникальный идентификатор задачи для запроса статуса

**object** `string`

Тип объекта, всегда `generation.task`

**model** `string`

Использованная модель

**status** `string`

Статус задачи

* `queued` - В очереди
* `in_progress` - В обработке
* `completed` - Успешно завершена
* `failed` - Ошибка

**progress** `integer`

Процент выполнения задачи (0-100)

**created\_at** `integer`

Время создания задачи (Unix timestamp)

**metadata** `object`

Метаданные задачи

```bash cURL (Текст в видео с аудио) theme={null}
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
    }
  }'
```

```bash cURL (Видео по первому кадру) theme={null}
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
    }
  }'
```

```bash cURL (Видео по первому и последнему кадру) theme={null}
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
    }
  }'
```

```python Python theme={null}
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']}")
```

```javascript JavaScript theme={null}
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}`);
```

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


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