Seedance 2.0
Seedance 2.0 (bytedance/seedance-2.0) — видеомодель ByteDance: сильная консистентность персонажей, переходы между кадрами, нативный звук, семь форматов кадра вплоть до 4K. В семействе три тира: Standard — основной, Fast (bytedance/seedance-2.0-fast) — дешевле и быстрее для черновиков, Mini (bytedance/seedance-2.0-mini) — бюджетные короткие ролики со слайдером длительности. Генерация асинхронная: POST /v1/videos возвращает задачу, дальше опрос статуса и скачивание mp4.
Параметры
Заголовок раздела «Параметры»| Поле | Описание |
|---|---|
model |
bytedance/seedance-2.0 (короткое seedance-2.0; псевдоним seedance), bytedance/seedance-2.0-fast или bytedance/seedance-2.0-mini |
prompt |
Описание сцены, обязательное; до 30 000 символов |
seconds |
Standard/Fast: одно из 5, 10, 15 (по умолчанию 5). Mini: любое целое от 4 до 15 |
size |
Размер WxH из таблицы ниже; по умолчанию 1280x720 |
input_reference |
Image-to-video: одна картинка как стартовый кадр, {"image_url": "data:image/...;base64,..."} — только data:-URL |
input_references |
Reference-to-video: от 1 до 9 картинок в массиве, тоже только data:-URL |
input_video |
Видео-референс: {"video_url": "https://..."} или data:-URL — движение переносится на персонажа с картинок. Один ролик в API (в кабинете и боте — до 3) |
input_audio |
Аудио-референс: {"audio_url": "https://..."} или data:-URL — звук ролика по ритму и настроению трека. Один трек в API (в кабинете и боте — до 3) |
seed |
Сид повторяемости: целое 0…2147483647. Тот же промпт с тем же сидом даёт тот же ролик; без него апстрим берёт случайный |
Семь соотношений сторон; разрешений у тиров разное число — Standard четыре (до 4K), Fast и Mini два:
| Соотношение | 480p (все тиры) | 720p (все тиры) | 1080p (Std) | 4K (Std) |
|---|---|---|---|---|
16:9 |
852x480 |
1280x720 |
1920x1080 |
3840x2160 |
9:16 |
480x852 |
720x1280 |
1080x1920 |
2160x3840 |
1:1 |
480x480 |
720x720 |
1080x1080 |
2160x2160 |
4:3 |
640x480 |
960x720 |
1440x1080 |
2880x2160 |
3:4 |
480x640 |
720x960 |
1080x1440 |
2160x2880 |
21:9 |
1120x480 |
1680x720 |
2520x1080 |
5040x2160 |
9:21 |
480x1120 |
720x1680 |
1080x2520 |
2160x5040 |
Значение вне списка вернёт 400 с перечнем допустимых вариантов — сверяйтесь с полем sizes в каталоге, если сомневаетесь.
Правила входов
Заголовок раздела «Правила входов»- Картинки (
input_reference,input_references): толькоdata:-URL, до 9 референсов, дополнительной платы нет. - Ролик (
input_video): mp4 или mov, от 2 до 30 секунд (длиннее — обрезаем), кадр от 407 696 пикселей, ссылка до 50 MB илиdata:до 40 MB. Совместим сinput_references, несовместим сinput_reference. - Аудио (
input_audio): mp3, wav, m4a, aac, ogg, opus или flac; от 1 до 30 секунд, до 20 MB. - Ссылки — только
httpsна публичный адрес; редиректы не выполняются; файл проверяем до создания задачи. - В промпте ролик —
@video1, картинки —@image1,@image2…, аудио —@audio1. - Первый и последний кадр (переход): доступен в веб-кабинете и боте; в API передаётся только стартовый кадр.
Примеры
Заголовок раздела «Примеры»Генерация по тексту
Заголовок раздела «Генерация по тексту»import requests
job = requests.post( "https://api.mixen.ai/v1/videos", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": "bytedance/seedance-2.0", "prompt": "Девушка идёт по вечернему рынку, огни гирлянд отражаются в витринах, камера следует рядом", "seconds": "10", "size": "1280x720", },).json()print(job["id"], job["status"])curl https://api.mixen.ai/v1/videos \ -H "Authorization: Bearer $MIXEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance/seedance-2.0", "prompt": "Девушка идёт по вечернему рынку, огни гирлянд отражаются в витринах, камера следует рядом", "seconds": "10", "size": "1280x720" }'Image-to-video по картинке-референсу и промпту
Заголовок раздела «Image-to-video по картинке-референсу и промпту»Полный цикл: читаем файл, кодируем в base64, запускаем задачу, опрашиваем до готовности, скачиваем mp4:
import base64import timeimport requests
with open("scene.jpg", "rb") as f: img = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()
job = requests.post( "https://api.mixen.ai/v1/videos", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": "bytedance/seedance-2.0", "prompt": "Камера медленно отъезжает, герой оглядывает панораму, ровное движение", "seconds": "5", "size": "1280x720", "input_reference": {"image_url": img}, },).json()print(job["id"], job["status"])
while True: time.sleep(7) st = requests.get(f"https://api.mixen.ai/v1/videos/{job['id']}", headers={"Authorization": f"Bearer {API_KEY}"}).json() if st["status"] in ("completed", "failed"): print(st["status"], st.get("error")) break
if st["status"] == "completed": with requests.get(f"https://api.mixen.ai/v1/videos/{job['id']}/content", headers={"Authorization": f"Bearer {API_KEY}"}, stream=True) as r: r.raise_for_status() with open("out.mp4", "wb") as f: for chunk in r.iter_content(1 << 16): f.write(chunk) print("saved out.mp4")IMG=$(base64 -w0 scene.jpg)JOB=$(curl -s https://api.mixen.ai/v1/videos \ -H "Authorization: Bearer $MIXEN_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"model\": \"bytedance/seedance-2.0\", \"prompt\": \"Камера медленно отъезжает, герой оглядывает панораму, ровное движение\", \"seconds\": \"5\", \"size\": \"1280x720\", \"input_reference\": {\"image_url\": \"data:image/jpeg;base64,$IMG\"} }" | python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])')
curl -s https://api.mixen.ai/v1/videos/$JOB -H "Authorization: Bearer $MIXEN_API_KEY"curl -L https://api.mixen.ai/v1/videos/$JOB/content \ -H "Authorization: Bearer $MIXEN_API_KEY" -o out.mp4Reference-to-video по нескольким картинкам
Заголовок раздела «Reference-to-video по нескольким картинкам»От одной до девяти картинок — модель собирает сцену, удерживая персонажей и стиль из референсов. Для черновой прикидки той же сцены дешевле прогнать bytedance/seedance-2.0-fast:
{ "model": "bytedance/seedance-2.0-fast", "prompt": "Персонаж из @image1 садится в машину из @image2, ночной двор", "seconds": "5", "size": "1280x720", "input_references": [ "data:image/png;base64,iVBORw0...", "data:image/png;base64,iVBORw0..." ]}Картинки + ролик + аудио в одном запросе
Заголовок раздела «Картинки + ролик + аудио в одном запросе»{ "model": "bytedance/seedance-2.0", "prompt": "Герой с @image1 повторяет движение из @video1 в ритм @audio1, крыша ночью", "seconds": "10", "size": "720x1280", "input_references": ["data:image/jpeg;base64,/9j/4AAQ..."], "input_video": {"video_url": "https://example.com/move.mp4"}, "input_audio": {"audio_url": "https://example.com/beat.mp3"}}Дальше как обычно: GET /v1/videos/{id} раз в 5–10 секунд до completed, затем GET /v1/videos/{id}/content за mp4. Полный цикл — гайд по видео.
Тарификация посекундная, ставка зависит от разрешения. Standard: 480p — 10.24 ₽ за секунду, 720p — 22.02 ₽, 1080p — 54.49 ₽, 4K — 113.23 ₽. Fast: 480p — 8.19 ₽, 720p — 17.61 ₽ (480p/720p только). Mini: 480p — 5.12 ₽, 720p — 11.01 ₽. Ролик- и аудио-референс оплачиваются поверх секунд выхода — итог виден после завершения задачи (точную сумму заранее возвращает POST /videos/price); картинки-референсы бесплатны. Актуальные цены — каталог.
Сильные стороны и ограничения
Заголовок раздела «Сильные стороны и ограничения»- Сильная консистентность персонажей: один и тот же герой держится между кадрами и референсами.
- Семь форматов кадра — от квадрата до сверхшироких 21:9 и 9:21; Standard до 4K.
- Три вида референсов в одном запросе: до 9 картинок, ролик и аудио.
- Переход «первый → последний кадр» — в кабинете и боте; через
/v1только стартовый кадр. - Нативный звук; сид повторяемости.
- Длительности фиксированные 5/10/15 секунд (Mini — слайдер 4–15); непрерывного ряда и 30-секундных планов, как у Seedance 2.5, нет.
Все модели — в каталоге. Общий порядок работы с видео — гайд по видео.