Seedance 2.0 Mini
API Seedance 2.0 Mini: генерация видео, кадры и референсы, примеры запросов, проверка задач, скачивание и цены.
Seedance 2.0 Mini поддерживает текст, первый и последний кадры, референсы изображений, видео и аудио; разрешения: 480p, 720p. Генерируйте до 15 секунд на запрос. Описание модели и Playground.
Подключение к Wan API
Используйте https://api.wanapi.app как базовый URL API. Создайте ключ в настройках API: один ключ подходит для всех моделей. Передавайте его как Authorization: Bearer YOUR_API_KEY. Храните ключи на сервере. Playground использует вашу сессию сайта и тот же баланс аккаунта; вставлять ключ в браузер не требуется.
Для доступа нужен активный аккаунт с достаточным балансом. GET /v1/models возвращает модели, доступные вашему ключу. Модели Seedance используют POST /v1/videos; выберите модель в теле JSON.
| Параметр | Seedance 2.0 Mini |
|---|---|
| Идентификатор модели | bytedance/seedance-2.0-mini |
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 Mini
Это запрос генерации четырёхсекундного видео из текста в 720p. Задайте ваш ключ в WAN_API_KEY на сервере. Отправьте запрос один раз и сохраните полученный id.
curl https://api.wanapi.app/v1/videos \
-H "Authorization: Bearer $WAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.0-mini",
"prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
"resolution": "720p",
"aspectRatio": "16:9",
"duration": 4,
"generateAudio": true
}'Проверка задачи Seedance 2.0 Mini
Сохраните полученный id как TASK_ID, затем проверяйте статус с тем же ключом. Отправка возвращает подтверждение задачи; видео доступно после завершения. Начните с опроса каждые пять секунд; см. статусы задач и скачивание.
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $WAN_API_KEY"Цены Seedance 2.0 Mini
Тарифы указаны в USD за один миллион видеотокенов. Итоговая стоимость зависит от входных и выходных видеотокенов. На расход влияют разрешение, длительность и референсные видео; используйте тариф для запросов с референсным видео или без него. Отдельного тарифа для аудио нет.
| Разрешение | Референсное видео | Цена fal.ai | Цена Wan API | Ваша экономия |
|---|---|---|---|---|
| 480p | Без видео | 0,0703 $ | Недоступно | — |
| 480p | С видео | 0,0422 $ | Недоступно | — |
| 720p | Без видео | 0,1512 $ | Недоступно | — |
| 720p | С видео | 0,0907 $ | Недоступно | — |
Расчёт основан на результате 16:9 с частотой 24 fps. Другие соотношения сторон и фактические размеры результата могут менять стоимость.
Без референсного видео учитывается только длительность результата. С референсным видео учитывается длительность входного и выходного видео. Для черновиков Seedance 2.5 и генерации из черновика с референсным видео минимальная оплачиваемая длительность входа составляет две трети длительности результата с округлением вверх до целой секунды. Итоговая стоимость определяется отчётом об использовании.
Сравнение с fal.ai: Цены моделей fal.ai. Проверено 2026-10-22. Цены Wan API обновляются автоматически.
Итоговая стоимость зависит от входных и выходных видеотокенов. Неудачные запросы не оплачиваются.
Цены и оценки Seedance 2.0 Mini. Проверьте оценку в Playground перед отправкой.
Поля запроса
Передайте объект JSON. Обязательны model и непустой промпт либо хотя бы один медиафайл. Остальные поля необязательны. Неизвестные поля отклоняются.
| Поле | Тип | Условия |
|---|---|---|
model | string | Обязательно: bytedance/seedance-2.0-mini. |
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. Чтобы задать оба крайних кадра клипа, используйте:
{
"model": "bytedance/seedance-2.0-mini",
"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. Не добавляйте кадры в этот запрос.
{
"model": "bytedance/seedance-2.0-mini",
"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
}Проверка статуса и скачивание видео
Принятая задача возвращает подобный объект. Идентификаторы и временные метки приведены для примера:
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0-mini",
"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 появляется при регистрации завершения.
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0-mini",
"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. Для примера выше:
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, например:
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0-mini",
"status": "failed",
"error": {
"code": "generation_failed",
"message": "Video generation failed"
}
}Оплата и обработка ошибок
Итоговое списание определяется фактическим расходом видеотокенов и текущим тарифом модели. Оценка Playground — максимальная оценка, а не фиксированная цена. Более длинные клипы и высокое разрешение могут увеличить расход токенов. Неудачные запросы не оплачиваются.
- Неверные параметры: исправьте поля или сочетание входных данных перед повторной отправкой. Проверьте форматы и ограничения медиа, а также синтаксис URL.
- Авторизация или доступ к модели: используйте действительный ключ API.
- Недостаточный баланс: пополните счёт перед новым платным запросом. Лимит ключа не пополняет баланс аккаунта.
- Временная ошибка опроса: повторите GET с увеличивающимися интервалами и предельным временем ожидания. Ошибка запроса статуса не означает ошибку генерации.
- Тайм-аут отправки или отсутствие идентификатора задачи: результат может быть неизвестен. Не повторяйте POST автоматически: это может создать вторую платную задачу.
- Ошибка скачивания: повторите скачивание существующего результата перед новой генерацией.
Сохраните идентификатор задачи и обратитесь в поддержку, если нужно выяснить результат отправки.