# Seedance 2.0 Fast (https://wanapi.app/ru/docs/seedance-2-0-fast)





Seedance 2.0 Fast поддерживает текст, первый и последний кадры, референсы изображений, видео и аудио; разрешения: 480p, 720p. Генерируйте до 15 секунд на запрос. [Описание модели и Playground](/ru/models/seedance-2-0-fast).

## Подключение к Wan API [#подключение-к-wan-api]

Используйте `https://api.wanapi.app` как базовый URL API. Создайте ключ в [настройках API](/ru/settings/apikeys): один ключ подходит для всех моделей. Передавайте его как `Authorization: Bearer YOUR_API_KEY`. Храните ключи на сервере. Playground использует вашу сессию сайта и тот же баланс аккаунта; вставлять ключ в браузер не требуется.

Для доступа нужен активный аккаунт с достаточным балансом. `GET /v1/models` возвращает модели, доступные вашему ключу. Модели Seedance используют `POST /v1/videos`; выберите модель в теле JSON.

| Параметр             | Seedance 2.0 Fast                                                                  |
| -------------------- | ---------------------------------------------------------------------------------- |
| Идентификатор модели | `bytedance/seedance-2.0-fast`                                                      |
| `resolution`         | `480p`, `720p`; по умолчанию: `720p`.                                              |
| `duration`           | 4–15 секунд видео или `-1` для автоматического выбора; по умолчанию: `5`.          |
| `aspectRatio`        | `adaptive`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`; по умолчанию: `adaptive`. |
| `generateAudio`      | `true` по умолчанию. `false` не снижает тариф за токены.                           |
| Результат            | Одно видео на запрос, 24 fps.                                                      |

Раздел [поля запроса](#поля-запроса) описывает все 13 полей верхнего уровня. Используйте приведённые имена полей, включая `aspectRatio` и `generateAudio`.

## Отправка задачи Seedance 2.0 Fast [#отправка-задачи-seedance-20-fast]

Это запрос генерации четырёхсекундного видео из текста в 720p. Задайте ваш ключ в `WAN_API_KEY` на сервере. Отправьте запрос один раз и сохраните полученный `id`.

```bash
curl https://api.wanapi.app/v1/videos \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "bytedance/seedance-2.0-fast",
  "prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
  "resolution": "720p",
  "aspectRatio": "16:9",
  "duration": 4,
  "generateAudio": true
}'
```

## Проверка задачи Seedance 2.0 Fast [#проверка-задачи-seedance-20-fast]

Сохраните полученный `id` как `TASK_ID`, затем проверяйте статус с тем же ключом. Отправка возвращает подтверждение задачи; видео доступно после завершения. Начните с опроса каждые пять секунд; см. [статусы задач и скачивание](#проверка-статуса-и-скачивание-видео).

```bash
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer $WAN_API_KEY"
```

## Цены Seedance 2.0 Fast [#цены-seedance-20-fast]

Тарифы указаны в USD за один миллион видеотокенов. Итоговая стоимость зависит от входных и выходных видеотокенов. На расход влияют разрешение, длительность и референсные видео; используйте тариф для запросов с референсным видео или без него. Отдельного тарифа для аудио нет.

<SeedanceModelPricing model="findSeedanceModel('seedance-2-0-fast')" />

[Цены и оценки Seedance 2.0 Fast](/ru/models/seedance-2-0-fast#pricing). Проверьте оценку в [Playground](/ru/models/seedance-2-0-fast#playground) перед отправкой.

## Поля запроса [#поля-запроса]

Передайте объект JSON. Обязательны `model` и непустой промпт либо хотя бы один медиафайл. Остальные поля необязательны. Неизвестные поля отклоняются.

| Поле              | Тип                | Условия                                                                                                                                                     |
| ----------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `model`           | string             | Обязательно: `bytedance/seedance-2.0-fast`.                                                                                                                 |
| `prompt`          | string             | Текстовые инструкции: до 20 000 символов в этом сервисе. Обязателен промпт или медиафайл.                                                                   |
| `image`           | URL или объект URL | URL изображения первого кадра либо объект с `type: "url"`, `url` и необязательным `mediaType`. Используйте только одно из полей: `image` или `frameImages`. |
| `frameImages`     | array              | Один `first_frame` и необязательный `last_frame`. Каждая запись содержит `frameType` и `image`; см. пример кадров ниже.                                     |
| `inputReferences` | array              | До 9 изображений и 3 видео. Каждая запись содержит `type: "url"`, `url` и `mediaType`. Также принимается URL в форме `data`/`mediaType`.                    |
| `aspectRatio`     | string             | `adaptive` (по умолчанию), `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`.                                                                                     |
| `resolution`      | string             | `480p`, `720p`. По умолчанию: `720p`. Также принимает `854x480`, `1280x720` как уровни разрешения; используйте `aspectRatio` для выбора соотношения сторон. |
| `duration`        | integer            | 4–15 секунд видео или `-1` для автоматического выбора. По умолчанию: `5`.                                                                                   |
| `fps`             | integer            | Фиксированное значение `24`; не указывайте или передайте `24`.                                                                                              |
| `generateAudio`   | boolean            | Генерация аудио. По умолчанию: `true`; отключение не меняет тариф за токены.                                                                                |
| `n`               | integer            | Фиксированное значение `1`; одно видео на запрос.                                                                                                           |
| `providerOptions` | object             | Необязательный объект `bytedance` с нативными параметрами из раздела [параметры провайдера](#параметры-провайдера). Неизвестные параметры отклоняются.      |

### Параметры провайдера [#параметры-провайдера]

Поместите эти нативные параметры в `providerOptions.bytedance`. Для пропущенных параметров используются указанные значения по умолчанию.

| Параметр                  | Тип       | По умолчанию | Условия                                                                             |
| ------------------------- | --------- | ------------ | ----------------------------------------------------------------------------------- |
| `referenceAudio`          | string\[] | —            | До 3 URL аудио HTTP(S) для референсов. Требуется референсное изображение или видео. |
| `content_filter`          | boolean   | `true`       | `false` отключает фильтрацию содержимого для этого запроса. Цена не меняется.       |
| `watermark`               | boolean   | `false`      | Добавить водяной знак.                                                              |
| `return_last_frame`       | boolean   | `false`      | Также вернуть последний кадр как изображение в `lastFrame`.                         |
| `execution_expires_after` | integer   | `172800`     | 3600–259200 секунд. Незавершённая за это время задача истекает и не оплачивается.   |
| `priority`                | integer   | `0`          | 0–9.                                                                                |
| `safety_identifier`       | string    | —            | 1–64 байта для идентификации вашего конечного пользователя; можно использовать хеш. |
| `service_tier`            | string    | `default`    | Только `default`.                                                                   |

### Сочетания входных данных и ограничения медиа [#сочетания-входных-данных-и-ограничения-медиа]

* Используйте `image` для первого кадра или `frameImages` для первого и необязательного последнего кадра. Последний кадр без первого и повторяющиеся типы кадров отклоняются.

* Кадры нельзя сочетать с `inputReferences` или `providerOptions.bytedance.referenceAudio`.

* Режим референсов принимает до 9 изображений, 3 видео и 3 аудиоклипов, всего не более 15 референсов.

* Медиаданные должны быть общедоступными URL HTTP(S). Загрузка байтов и URL с учётными данными не принимаются.

* Изображения: JPEG, PNG, WebP, BMP, TIFF или GIF; менее 30 MB; каждая сторона 300–6000 пикселей; соотношение сторон 0.4–2.5.

* Видео: MP4 или MOV; не более 50 MB на файл; каждый клип 2–15 секунд, суммарно не более 15 секунд; 300–6000 пикселей на сторону, соотношение сторон 0.4–2.5, 24–60 fps.

* Аудио: MP3 или WAV; не более 15 MB на файл; каждый клип 2–15 секунд, суммарно не более 15 секунд. Требуется хотя бы одно референсное изображение или видео.

* Размер, кодировка и длительность удалённых медиа проверяются при обработке; проверка URL сама по себе не гарантирует пригодность файла.

* Эта модель не поддерживает финальный рендер из черновика предыдущей задачи. Нативные параметры задачи указываются в `providerOptions.bytedance`; другие нативные поля не принимаются.

## Примеры кадров и референсов [#примеры-кадров-и-референсов]

Отправьте эти тела запроса в тот же эндпоинт `POST /v1/videos`. Перед отправкой замените каждый URL `example.com` своим URL с прямым доступом к медиа. Сохраняйте доступность входных URL до завершения задачи.

### Первый и последний кадры [#первый-и-последний-кадры]

Для одного первого кадра используйте `image: "https://example.com/first-frame.jpg"` и не указывайте `frameImages`. Чтобы задать оба крайних кадра клипа, используйте:

```json
{
  "model": "bytedance/seedance-2.0-fast",
  "prompt": "The camera slowly moves from the opening scene to the closing scene.",
  "frameImages": [
    {
      "frameType": "first_frame",
      "image": "https://example.com/first-frame.jpg"
    },
    {
      "frameType": "last_frame",
      "image": "https://example.com/last-frame.jpg"
    }
  ],
  "aspectRatio": "adaptive",
  "resolution": "720p",
  "duration": 4
}
```

### Референсы изображений, видео и аудио [#референсы-изображений-видео-и-аудио]

Поместите изображения и видео в `inputReferences`, явно указав MIME-тип. URL аудио поместите в `providerOptions.bytedance.referenceAudio`. Не добавляйте кадры в этот запрос.

```json
{
  "model": "bytedance/seedance-2.0-fast",
  "prompt": "Use the character from the image and the camera movement from the video.",
  "inputReferences": [
    {
      "type": "url",
      "url": "https://example.com/character.jpg",
      "mediaType": "image/jpeg"
    },
    {
      "type": "url",
      "url": "https://example.com/motion.mp4",
      "mediaType": "video/mp4"
    }
  ],
  "providerOptions": {
    "bytedance": {
      "referenceAudio": [
        "https://example.com/sound.wav"
      ]
    }
  },
  "resolution": "720p",
  "duration": 4
}
```

## Проверка статуса и скачивание видео [#проверка-статуса-и-скачивание-видео]

Принятая задача возвращает подобный объект. Идентификаторы и временные метки приведены для примера:

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0-fast",
  "status": "queued",
  "progress": 0,
  "created_at": 1792022400
}
```

Опрашивайте `GET /v1/videos/{task_id}` с вашим ключом API. Ответ содержит тот же публичный идентификатор задачи и модель. Определяйте момент окончания опроса по `status`; `progress` не является оценкой оставшегося времени.

| Статус        | Значение                       | Следующий шаг                               |
| ------------- | ------------------------------ | ------------------------------------------- |
| `queued`      | Задача принята.                | Продолжайте проверять статус.               |
| `in_progress` | Идёт генерация.                | Продолжайте проверять статус.               |
| `completed`   | Видео готово.                  | Прочитайте `videos[0].url` и скачайте файл. |
| `failed`      | Генерация завершилась ошибкой. | Прекратите опрос и проверьте `error`.       |

Ответ завершённой задачи содержит `videos` — массив объектов с `url` и `mediaType`. Временные метки указаны в секундах Unix; `completed_at` появляется при регистрации завершения.

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0-fast",
  "status": "completed",
  "progress": 100,
  "created_at": 1792022400,
  "completed_at": 1792022460,
  "videos": [
    {
      "url": "/v1/tasks/task_EXAMPLE/artifacts/video/content",
      "mediaType": "video/mp4"
    }
  ]
}
```

При `providerOptions.bytedance.return_last_frame: true` завершённая задача также содержит `lastFrame` — объект с `url` и `mediaType` (`image/jpeg`).

Если полученный URL является относительным путём, дополните его относительно `https://api.wanapi.app` и авторизуйтесь вашим ключом API. Для примера выше:

```bash
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -o video.mp4
```

Если возвращён подписанный HTTPS URL медиа, используйте его напрямую, не передавая ключ API этому хосту. Срок действия URL может истечь. Сохраняйте нужные видео в собственном хранилище. Опрос и скачивание готового результата не создают новую генерацию.

Неудачная задача содержит объект `error` с `code` и `message`, например:

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0-fast",
  "status": "failed",
  "error": {
    "code": "generation_failed",
    "message": "Video generation failed"
  }
}
```

## Оплата и обработка ошибок [#оплата-и-обработка-ошибок]

Итоговое списание определяется фактическим расходом видеотокенов и текущим тарифом модели. Оценка Playground — максимальная оценка, а не фиксированная цена. Более длинные клипы и высокое разрешение могут увеличить расход токенов. Неудачные запросы не оплачиваются.

* **Неверные параметры:** исправьте поля или сочетание входных данных перед повторной отправкой. Проверьте форматы и ограничения медиа, а также синтаксис URL.
* **Авторизация или доступ к модели:** используйте действительный ключ API.
* **Недостаточный баланс:** пополните счёт перед новым платным запросом. Лимит ключа не пополняет баланс аккаунта.
* **Временная ошибка опроса:** повторите GET с увеличивающимися интервалами и предельным временем ожидания. Ошибка запроса статуса не означает ошибку генерации.
* **Тайм-аут отправки или отсутствие идентификатора задачи:** результат может быть неизвестен. Не повторяйте POST автоматически: это может создать вторую платную задачу.
* **Ошибка скачивания:** повторите скачивание существующего результата перед новой генерацией.

Сохраните идентификатор задачи и обратитесь в [поддержку](/ru/contact), если нужно выяснить результат отправки.

[Скачать схему OpenAPI для Seedance 2.0 Fast](https://wanapi.app/models/seedance-2-0-fast/openapi.json).
