Seedance 2.5
Seedance 2.5 (bytedance/seedance-2.5) — видеомодель ByteDance для длинных историй: мультимодальные референсы (картинки, ролики, аудио), первый и последний кадр, нативный звук, сид повторяемости. Генерация асинхронная: POST /v1/videos возвращает задачу, дальше опрос статуса и скачивание mp4.
Параметры
Заголовок раздела «Параметры»| Поле | Описание |
|---|---|
model |
bytedance/seedance-2.5 (или короткое seedance-2.5) |
prompt |
Описание сцены, обязательное; до 30 000 символов |
seconds |
Любое целое от 4 до 30; по умолчанию 4. Особое значение -1 — режим редактирования (см. ниже) |
size |
Размер WxH из таблицы ниже; по умолчанию 1280x720 |
input_reference |
Image-to-video: одна картинка как стартовый кадр, {"image_url": "data:image/...;base64,..."} — только data:-URL |
input_references |
Reference-to-video: от 1 до 30 картинок в массиве, тоже только data:-URL |
input_video |
Видео-референс: {"video_url": "https://..."} или data:-URL. Движение, танец или хореография переносится на персонажа с картинок. Один ролик в API (в кабинете и боте — до 10). С seconds: "-1" — режим редактирования: модель переснимает сам ролик по промпту |
input_audio |
Аудио-референс: {"audio_url": "https://..."} или data:-URL. Звук ролика пойдёт по ритму и настроению трека, но это не копия входа. Один трек в API (в кабинете и боте — до 10) |
seed |
Сид повторяемости: целое 0…2147483647. Тот же промпт с тем же сидом даёт тот же ролик; без него апстрим берёт случайный |
Восемнадцать допустимых размеров — шесть соотношений сторон в трёх разрешениях:
| Соотношение | 480p | 720p | 1080p |
|---|---|---|---|
16:9 |
852x480 |
1280x720 |
1920x1080 |
9:16 |
480x852 |
720x1280 |
1080x1920 |
1:1 |
480x480 |
720x720 |
1080x1080 |
4:3 |
640x480 |
960x720 |
1440x1080 |
3:4 |
480x640 |
720x960 |
1080x1440 |
21:9 |
1120x480 |
1680x720 |
2520x1080 |
Значение вне списка вернёт 400 с перечнем допустимых вариантов — сверяйтесь с полем sizes в каталоге, если сомневаетесь.
Правила входов
Заголовок раздела «Правила входов»- Картинки (
input_reference,input_references): толькоdata:-URL, до 30 референсов, дополнительной платы за них нет. - Ролик (
input_video): mp4 или mov, от 2 до 30 секунд (длиннее — обрезаем), кадр от 407 696 пикселей (например, 720×576), ссылка до 50 MB илиdata:до 40 MB. Совместим сinput_references, несовместим сinput_reference(первый кадр). - Аудио (
input_audio): mp3, wav, m4a, aac, ogg, opus или flac; от 1 до 30 секунд (длиннее — обрезаем), до 20 MB. - Ссылки — только
httpsна публичный адрес; редиректы не выполняются. Мы скачиваем файл до создания задачи, поэтому ошибка в нём сразу вернёт400с причиной. - В промпте ролик —
@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.5", "prompt": "Дрон облетает маяк на скалистом берегу, рассвет, брызги волн", "seconds": "8", "size": "1920x1080", },).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.5", "prompt": "Дрон облетает маяк на скалистом берегу, рассвет, брызги волн", "seconds": "8", "size": "1920x1080" }'Image-to-video по картинке-референсу и промпту
Заголовок раздела «Image-to-video по картинке-референсу и промпту»Картинка передаётся одной строкой data:-URL — внешние ссылки не принимаются. Полный цикл: читаем файл, кодируем в base64, запускаем задачу, опрашиваем до готовности, скачиваем mp4:
import base64import timeimport requests
with open("portrait.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.5", "prompt": "Портрет оживает: взгляд в камеру, лёгкая улыбка, шевелятся волосы, мягкий свет", "seconds": "10", "size": "720x1280", "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")# 1) картинка → data:-URLIMG=$(base64 -w0 portrait.jpg)
# 2) запуск задачи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.5\", \"prompt\": \"Портрет оживает: взгляд в камеру, лёгкая улыбка, шевелятся волосы, мягкий свет\", \"seconds\": \"10\", \"size\": \"720x1280\", \"input_reference\": {\"image_url\": \"data:image/jpeg;base64,$IMG\"} }" | python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])')
# 3) опрос до completed и скачивание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 по нескольким картинкам»От одной до тридцати картинок — модель собирает сцену, удерживая персонажей и стиль из референсов:
{ "model": "bytedance/seedance-2.5", "prompt": "Девушка из @image1 идёт по улице из @image2, вечерние огни", "seconds": "6", "size": "1280x720", "input_references": [ "data:image/png;base64,iVBORw0...", "data:image/png;base64,iVBORw0..." ]}Картинки + ролик + аудио в одном запросе
Заголовок раздела «Картинки + ролик + аудио в одном запросе»Движение берётся из ролика, персонаж — из картинок, звук — по ритму трека:
{ "model": "bytedance/seedance-2.5", "prompt": "Девушка с @image1 повторяет танец из @video1 в ритм @audio1, неоновый зал", "seconds": "10", "size": "720x1280", "input_references": ["data:image/jpeg;base64,/9j/4AAQ..."], "input_video": {"video_url": "https://example.com/dance.mp4"}, "input_audio": {"audio_url": "https://example.com/beat.mp3"}}Редактирование готового ролика (v2v)
Заголовок раздела «Редактирование готового ролика (v2v)»Переделка СВОЕГО ролика промптом — без картинок: "seconds": "-1" и один input_video. Модель переснимает тот же ролик с правками из промпта: наследуются длительность и формат кадра, выход рендерится в 720p, звук сохраняется. size в этом режиме не учитывается, референсы и кадры не передаются:
{ "model": "bytedance/seedance-2.5", "prompt": "Add golden sunset light, warm cinematic grade", "seconds": "-1", "input_video": {"video_url": "https://example.com/clip.mp4"}}Опрос и скачивание — как обычно (GET /v1/videos/{id} → GET /v1/videos/{id}/content). В кабинете ролик приводится к ≤15 с, в API — к ≤30 с; оплачивается пересъёмка (выход 720p × длина) плюс вход токенами — точную сумму заранее вернёт POST /videos/price.
Дальше как обычно: GET /v1/videos/{id} раз в 5–10 секунд до completed, затем GET /v1/videos/{id}/content за mp4. Полный цикл — гайд по видео.
Тарификация посекундная и зависит от разрешения: 480p — 15.65 ₽ за секунду, 720p — 33.66 ₽, 1080p — 82.80 ₽. Ролик- и аудио-референс оплачиваются поверх секунд выхода — сумма зависит от кадра и длины ролика и от длины аудио, поэтому итог виден после завершения задачи (точную сумму заранее возвращает POST /videos/price). Картинки-референсы бесплатны. Редактирование (seconds: "-1") считается по ставке 720p × длина исходника плюс вход ролика токенами. Актуальные цены — каталог.
Сильные стороны и ограничения
Заголовок раздела «Сильные стороны и ограничения»- Длительности от 4 до 30 секунд — непрерывный ряд: длинные планы и целые сцены одной моделью.
- Шесть форматов кадра, включая широкий 21:9, в трёх разрешениях до 1080p.
- Три вида референсов в одном запросе: до 30 картинок, ролик и аудио.
- Переход «первый → последний кадр» поддерживается (кабинет и бот).
- Сид повторяемости для воспроизводимых дублей; нативный звук в готовом ролике.
- Видео- и аудио-референс — по одному в API; списком (до 10 каждого) — только кабинет и бот.
- Редактирование готового ролика (
seconds: "-1"): выход наследует длительность и формат исходника, рендер 720p.
Все модели — в каталоге. Общий порядок работы с видео — гайд по видео.