Seedance API: Seedance 2.5 и 2.0 из России
Видео ByteDance по одному ключу: по описанию, из первого/последнего кадра (image-to-video), по фото-, видео- и аудиореференсам. Цена за секунду в рублях, возврат при ошибке.
- Seedance 2.5 — до 30 сек, от 8,88 ₽/сек
- Seedance 2.0 — до 4K, от 1 ₽/сек
- 2.0 Fast и Mini — для черновиков
- Со звуком
Seedance 2.5 — новейшая модель
Ролики до 30 секунд со звуком, до 30 фото- и 10 видеореференсов, 480p/720p/1080p. ID: seedance-2.5.
Seedance 2.0, 2.0 Fast, 2.0 Mini
До 15 секунд, до 4K у 2.0; Fast и Mini — быстрее и дешевле для черновиков. ID: seedance-2.0, seedance-2.0-fast, seedance-2.0-mini.
Пример: видео из кадра (i2v)
curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
-H "Authorization: Bearer $MIXMEDIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"seedance-2.5","input":{"prompt":"Камера медленно наезжает, героиня оборачивается, дождь, неон","first_frame_url":"https://example.com/frame-01.png","resolution":"720p","duration":"5","aspect_ratio":"9:16"}}'
# статус (или передайте callBackUrl — пришлём результат сами)
curl "https://mixmedia.tech/api/v1/jobs/recordInfo?taskId=TASK_ID" \
-H "Authorization: Bearer $MIXMEDIA_API_KEY"import os, time, requests
API = "https://mixmedia.tech/api/v1"
H = {"Authorization": f"Bearer {os.environ['MIXMEDIA_API_KEY']}"}
task = requests.post(f"{API}/jobs/createTask", headers=H, json={
"model": "seedance-2.5",
"input": {
"prompt": "Камера медленно наезжает, героиня оборачивается, дождь, неон",
"first_frame_url": "https://example.com/frame-01.png",
"resolution": "720p",
"duration": "5",
"aspect_ratio": "9:16"
}
}).json()
task_id = task["data"]["taskId"]
while True:
info = requests.get(f"{API}/jobs/recordInfo", headers=H, params={"taskId": task_id}).json()["data"]
if info["state"] in ("success", "fail"):
break
time.sleep(5)
print(info["state"], info.get("resultJson"))const API = "https://mixmedia.tech/api/v1";
const H = { Authorization: `Bearer ${process.env.MIXMEDIA_API_KEY}`, "Content-Type": "application/json" };
const { data } = await (await fetch(`${API}/jobs/createTask`, {
method: "POST", headers: H,
body: JSON.stringify({
"model": "seedance-2.5",
"input": {
"prompt": "Камера медленно наезжает, героиня оборачивается, дождь, неон",
"first_frame_url": "https://example.com/frame-01.png",
"resolution": "720p",
"duration": "5",
"aspect_ratio": "9:16"
}
}),
})).json();
let info;
do {
await new Promise((r) => setTimeout(r, 5000));
info = (await (await fetch(`${API}/jobs/recordInfo?taskId=${data.taskId}`, { headers: H })).json()).data;
} while (!["success", "fail"].includes(info.state));
console.log(info.state, info.resultJson);Свой файл сначала загрузите через POST /api/v1/files/upload и передайте полученную ссылку.
Цены Seedance за секунду
Цена = ставка × (длительность + длина видеореференсов). Видна до запуска; при ошибке возвращается.
| Модель (ID) | Качество | за секунду | с видео-референсом |
|---|---|---|---|
seedance-2.5 | 480p | 14,72 ₽ | 8,82 ₽ |
seedance-2.5 | 720p | 33,08 ₽ | 19,85 ₽ |
seedance-2.5 | 1080p | 58,95 ₽ | 35,22 ₽ |
seedance-2.0 | 480p | 10,11 ₽ | 6,13 ₽ |
seedance-2.0 | 720p | 21,75 ₽ | 13,15 ₽ |
seedance-2.0 | 1080p | 54,28 ₽ | 33,03 ₽ |
seedance-2.0 | 4k | 110,58 ₽ | 68,05 ₽ |
seedance-2.0-fast | 480p | 6,1 ₽ | 3,63 ₽ |
seedance-2.0-fast | 720p | 13,11 ₽ | 7,85 ₽ |
seedance-2.0-mini | 480p | 1,62 ₽ | 0,98 ₽ |
seedance-2.0-mini | 720p | 3,5 ₽ | 2,12 ₽ |
Вопросы и ответы
Чем Seedance 2.5 отличается от 2.0?
Seedance 2.5 делает ролики до 30 секунд и принимает больше референсов; Seedance 2.0 поддерживает 4K и до 15 секунд. Fast и Mini — экономичные версии 2.0.
Куда писать с вопросами?
В Telegram @mixmedia_robot — ответим по API, оплате и интеграции. Для обращений с историей есть раздел «Поддержка» в кабинете.
Как оплатить API из России?
Пополните баланс в кабинете картой любого российского банка или через СБП. Баланс общий для сайта и API, списание — за каждый запуск, без подписки и минимального платежа.
Нужен ли VPN?
Нет. API и сайт работают из России напрямую: запросы идут на mixmedia.tech/api/v1, ссылки на результаты — на наш домен.
Что будет, если генерация не удалась?
Цена списывается при создании задачи и автоматически возвращается на баланс, если задача завершилась ошибкой (state = fail).
Какие лимиты?
Лимиты на число одновременных задач и запросов в минуту зависят от модели и указаны в документации. Если нужен больший поток — напишите в поддержку.
Как работают вебхуки?
Передайте callBackUrl в createTask — когда задача станет success или fail, мы отправим POST с тем же JSON, что у recordInfo. Подпись X-Signature = HMAC-SHA256 от сырого тела с вашим секретом whsec_…; до 4 попыток доставки. Подробнее.
Начать
Войдите, создайте ключ в кабинете, пополните баланс картой РФ или СБП — и отправьте первый запрос.
Вопросы? Напишите в Telegram @mixmedia_robot.