Seedance 2.0: текст / изображение / первый-последний кадр / референс-видео → видео со встроенным звуком. OpenAI-совместимый асинхронный API, примеры на curl и Python
Seedance 2.0 (ByteDance) — мультимодальная модель генерации видео. Поддерживает четыре типа входных данных: текст-в-видео, изображение-в-видео, первый-последний кадр и референс-видео, а сгенерированное видео по умолчанию содержит синхронный звук. RuAPI предоставляет OpenAI-совместимый асинхронный API: отправить задачу → опрашивать статус → скачать видео. Оплата в USDT, без зарубежной карты.
Звук включён по умолчанию — видео Seedance 2.0 содержит синхронную аудиодорожку (реплики / фоновый звук / эффекты), никаких дополнительных параметров не нужно.
Готовое видео хранится только 7 дней. Скачайте и сохраните его сразу после генерации — по истечении срока ссылка перестанет работать.
input_type обычно указывать не нужно — он определяется по количеству изображений/видео; при желании задаётся явно через metadata.input_type.
Режим
Как передать вход
Определяемый input_type
Текст-в-видео
только prompt
text_to_video
Изображение-в-видео
metadata.images — 1 изображение
reference
Первый-последний кадр
metadata.images — 2 изображения
first_last_frame
Референс-видео
metadata.videos — 1 видео
reference
Изображения / видео должны быть по публично доступному URL (сервер должен их скачать); изображения — JPG / PNG / WebP, видео — MP4. base64 не поддерживается (слишком большое тело запроса приведёт к ошибке).
Ниже для каждого режима показан только шаг 1 «Отправить»; шаги 2 (опрос) и 3 (скачивание) одинаковы для всех режимов.
В metadata.videos — URL одного короткого видео; модель переосмысливает его, сохраняя движения объекта (например, меняет стиль или сцену).
curl https://www.ruapi.ai/v1/videos \ -H "Authorization: Bearer sk-ВАШ_КЛЮЧ" \ -H "Content-Type: application/json" \ -d '{ "model": "doubao-seedance-2.0-fast", "prompt": "Сохранить движения человека из видео, сменить стиль на неоновый киберпанк-квартал", "seconds": "5", "metadata": { "resolution": "480p", "ratio": "9:16", "videos": ["https://ваш-домен/dance.mp4"] } }'
import requestsresp = requests.post( "https://www.ruapi.ai/v1/videos", headers={"Authorization": "Bearer sk-ВАШ_КЛЮЧ"}, json={ "model": "doubao-seedance-2.0-fast", "prompt": "Сохранить движения человека из видео, сменить стиль на неоновый киберпанк-квартал", "seconds": "5", "metadata": { "resolution": "480p", "ratio": "9:16", "videos": ["https://ваш-домен/dance.mp4"], }, },)print(resp.json()["id"])
Референс-видео требовательно ко входу: используйте короткий ролик длительностью ≤ 15 секунд с чётким объектом (например, человеком). Мультфильмы, ролики без явного объекта или слишком длинные видео часто приводят к ошибке. Желательно, чтобы соотношение сторон референса совпадало с целевым ratio (например, вертикальный источник → 9:16).
images и videos — это массивы, в них можно передать сразу несколько референсов (оба варианта проверены):
Несколько изображений: передайте в images3 и более изображений (официально до 9). Модель объединяет объект / сцену / стиль с нескольких картинок. При 3+ изображениях input_type определяется как reference автоматически.
Несколько видео: передайте в videos2 и более роликов (официально до 3, суммарная длительность ≤ 15 секунд).
curl https://www.ruapi.ai/v1/videos \ -H "Authorization: Bearer sk-ВАШ_КЛЮЧ" \ -H "Content-Type: application/json" \ -d '{ "model": "doubao-seedance-2.0-fast", "prompt": "Объедини объект и стиль с этих изображений в цельное видео, естественное движение камеры", "seconds": "5", "metadata": { "resolution": "720p", "ratio": "16:9", "images": [ "https://ваш-домен/ref1.jpg", "https://ваш-домен/ref2.jpg", "https://ваш-домен/ref3.jpg" ] } }'
import requestsresp = requests.post( "https://www.ruapi.ai/v1/videos", headers={"Authorization": "Bearer sk-ВАШ_КЛЮЧ"}, json={ "model": "doubao-seedance-2.0-fast", "prompt": "Объедини объект и стиль с этих изображений в цельное видео, естественное движение камеры", "seconds": "5", "metadata": { "resolution": "720p", "ratio": "16:9", "images": [ "https://ваш-домен/ref1.jpg", "https://ваш-домен/ref2.jpg", "https://ваш-домен/ref3.jpg", ], }, },)print(resp.json()["id"])
С видео аналогично: замените images на videos и передайте несколько коротких роликов (каждый желательно ≤ 7 секунд с чётким объектом, суммарно ≤ 15 секунд).
Видео тарифицируется по токенам (разрешение × длительность). При отправке списывается предоплата, а после завершения сумма пересчитывается по фактическому расходу — разница возвращается. Итог — по фактическому списанию. Цены — на странице цен.
Проверьте две вещи: правильно ли написано имя model (doubao-seedance-2.0-fast) и верен ли адрес https://www.ruapi.ai/v1/videos (с /v1).
Долго висит queued / in_progress
Это нормально. Генерация обычно занимает 1–3 минуты, просто продолжайте опрос и не делайте интервал слишком коротким.
Скачанный файл пустой / не открывается
Скорее всего прошло более 7 дней и ссылка истекла. Скачивайте сразу после генерации.
Задача с референс-видео завершилась ошибкой (failed)
Режим требователен ко входу. Убедитесь, что референс-видео длится ≤ 15 секунд, содержит чёткий объект и доступно как публичный MP4. Мультфильмы и ролики без явного объекта часто не проходят.
По какому адресу запрашивать задачу?
По маршруту во множественном числеGET /v1/videos/{id}. Это OpenAI-совместимый формат, и metadata.url в ответе сразу является ссылкой для скачивания.