Seedance 2.5 API
Видео Seedance 2.5 от ByteDance со звуком: по описанию, по первому и последнему кадру или по референсам, до 30 секунд. Референсы: фото, видео и аудио, качество до 1080p. Своё видео можно отредактировать описанием или продлить вперёд или назад. Два канала: обычный и, как правило, подешевле. На Канале 2 можно сначала снять черновик в 480p, а понравившийся один раз пересобрать в 1080p.
Для нейросети:Скачать .mdВся документация .mdОткрыть как текст
Подключение в три шага
- Получите ключКлюч создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
- Узнайте ценуPOST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
- Запустите задачу и заберите результатPOST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.
Готовый код
Замените YOUR_API_KEY своим ключом. Код ставит задачу и ждёт результата. В cURL второй запрос повторяйте, подставив вместо TASK_ID поле id из ответа первого, пока status не станет succeeded.
curl -X POST "https://api.cyhub.ai/v1/tasks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance",
"settings": {
"mode": "text_to_video",
"prompt": "Кот в очках играет на баяне на летней веранде, камера медленно наезжает",
"model": "seedance_2_5",
"quality": "720p",
"duration": 8,
"aspect_ratio": "16:9"
}
}'
curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"import time
import requests
API = "https://api.cyhub.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
body = {
"model": "seedance",
"settings": {
"mode": "text_to_video",
"prompt": "Кот в очках играет на баяне на летней веранде, камера медленно наезжает",
"model": "seedance_2_5",
"quality": "720p",
"duration": 8,
"aspect_ratio": "16:9",
},
}
response = requests.post(f"{API}/tasks", json=body, headers=HEADERS, timeout=60)
response.raise_for_status()
task = response.json()
while task["status"] in ("queued", "running"):
time.sleep(5)
task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
print(task["status"], task["result"])const API = "https://api.cyhub.ai/v1";
const HEADERS = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const body = {
"model": "seedance",
"settings": {
"mode": "text_to_video",
"prompt": "Кот в очках играет на баяне на летней веранде, камера медленно наезжает",
"model": "seedance_2_5",
"quality": "720p",
"duration": 8,
"aspect_ratio": "16:9"
}
};
async function main() {
let response = await fetch(`${API}/tasks`, { method: "POST", headers: HEADERS, body: JSON.stringify(body) });
if (!response.ok) throw new Error(await response.text());
let task = await response.json();
while (task.status === "queued" || task.status === "running") {
await new Promise((resolve) => setTimeout(resolve, 5000));
response = await fetch(`${API}/tasks/${task.id}`, { headers: HEADERS });
task = await response.json();
}
console.log(task.status, task.result);
}
main();Цена до запуска
Цены на 15.10.2026: от 60 ₽. Точную цену своих настроек покажет POST /v1/price.
| Режим | Цена |
|---|---|
| По описанию | от 60 ₽ |
| По кадрам | от 63 ₽ |
| По референсам | от 60 ₽ |
| Правка видео с файлом на 4 с | от 74 ₽ |
| Продление видео с файлом на 2 с | от 65 ₽ |
| Пересборка черновика | по цене черновика |
Отправьте те же настройки в POST /v1/price: ответ покажет цену запуска, деньги при этом не списываются.
curl -X POST "https://api.cyhub.ai/v1/price" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance",
"settings": {
"mode": "text_to_video",
"prompt": "Кот в очках играет на баяне на летней веранде, камера медленно наезжает",
"model": "seedance_2_5",
"quality": "720p",
"duration": 8,
"aspect_ratio": "16:9"
}
}'amount_minor: цена запуска в копейках (для рублей)currency: валюта кошелькаavailable_minor: сколько сейчас доступно на балансе для новых задач
Режимы
У каждого режима свои параметры и примеры. Режим выбирает поле mode.
- По описанию
mode = text_to_video - По кадрам
mode = image_to_video - По референсам
mode = multimodal - Правка видео
mode = video_edit - Продление видео
mode = video_extend - Пересборка черновика
mode = upscale_draft
По описанию
Видео только по тексту, файлы не передаются.
Значение поля mode: text_to_video
Цена в этом режиме от 60 ₽.
Параметры
Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.
promptОбязательноЧто происходит в видео: от 3 до 20 000 символов, можно на разных языках.
Тип: СтрокаМинимум символов: 1Максимум символов: 20000modelНеобязательноВерсия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.
Тип: СтрокаДопустимые значения:seedance_2_5По умолчанию:"seedance_2_5"qualityНеобязательноКачество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.
Тип: СтрокаДопустимые значения:480p720p1080pПо умолчанию:"720p"durationНеобязательноДлина видео в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду.
Тип: Целое числоМинимум: 4Максимум: 30По умолчанию:5generate_audioНеобязательноСгенерировать звук вместе с видео.
Тип: Да/нетПо умолчанию:truechannelНеобязательноЧерез какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.
Тип: СтрокаДопустимые значения:channel_1channel_2По умолчанию:"channel_1"draftНеобязательноЧерновик: недорогой ролик в 480p, чтобы до дорогого качества проверить сцену, движение и звук. Стоит как обычный ролик 480p, поле quality для него не действует. Есть только у версии 2.5 на Канале 2: с другой версией или каналом задача не принимается. Если черновик понравился, его можно один раз пересобрать в 1080p режимом upscale_draft в течение 7 дней после создания: сцена, движение и звук останутся теми же, а пересборка стоит как обычный ролик 1080p.
Тип: Да/нетПо умолчанию:falseaspect_ratioНеобязательноПропорции видео. adaptive есть только у версии 2.5: пропорции подбирает сама модель по описанию.
Тип: СтрокаДопустимые значения:16:99:161:14:33:421:9adaptiveПо умолчанию:"16:9"web_searchНеобязательноОнлайн-поиск: модель подтянет свежие сведения из интернета. Только на Канале 1.
Тип: Да/нетПо умолчанию:false
Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.
Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true
Входные данные
Пример запроса
Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.
Видео по описанию
{
"model": "seedance",
"settings": {
"mode": "text_to_video",
"prompt": "Кот в очках играет на баяне на летней веранде, камера медленно наезжает",
"model": "seedance_2_5",
"quality": "720p",
"duration": 8,
"aspect_ratio": "16:9"
}
}Черновик 480p, чтобы проверить сцену
{
"model": "seedance",
"settings": {
"mode": "text_to_video",
"prompt": "Бармен подбрасывает шейкер, ловит его за спиной и подмигивает в камеру",
"model": "seedance_2_5",
"channel": "channel_2",
"draft": true,
"duration": 5,
"aspect_ratio": "16:9"
}
}Цена считается при приёме задачи, валюта RUB.
Результат
- Видео MP4.
- Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
- С draft: true приходит черновик в 480p. У такой задачи есть поле draft: до какого времени её можно пересобрать в 1080p, можно ли сейчас и готовый запрос для пересборки.
| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
video | mp4 | 1 |
Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Подпись к результату: модель и настройки",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "video",
"filename": "video.mp4",
"size": 12582912,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
}
]
}
}По кадрам
Первый кадр или первый и последний: модель оживляет их по описанию.
Значение поля mode: image_to_video
Цена в этом режиме от 63 ₽.
Параметры
Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.
promptОбязательноЧто происходит в видео: от 3 до 20 000 символов, можно на разных языках.
Тип: СтрокаМинимум символов: 1Максимум символов: 20000modelНеобязательноВерсия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.
Тип: СтрокаДопустимые значения:seedance_2_5По умолчанию:"seedance_2_5"qualityНеобязательноКачество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.
Тип: СтрокаДопустимые значения:480p720p1080pПо умолчанию:"720p"durationНеобязательноДлина видео в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду.
Тип: Целое числоМинимум: 4Максимум: 30По умолчанию:5generate_audioНеобязательноСгенерировать звук вместе с видео.
Тип: Да/нетПо умолчанию:truechannelНеобязательноЧерез какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.
Тип: СтрокаДопустимые значения:channel_1channel_2По умолчанию:"channel_1"draftНеобязательноЧерновик: недорогой ролик в 480p, чтобы до дорогого качества проверить сцену, движение и звук. Стоит как обычный ролик 480p, поле quality для него не действует. Есть только у версии 2.5 на Канале 2: с другой версией или каналом задача не принимается. Если черновик понравился, его можно один раз пересобрать в 1080p режимом upscale_draft в течение 7 дней после создания: сцена, движение и звук останутся теми же, а пересборка стоит как обычный ролик 1080p.
Тип: Да/нетПо умолчанию:falseimage_urlsОбязательноОдна ссылка: первый кадр. Две ссылки: первый и последний кадры.
Тип: Список (Строка, uri)Максимум элементов: 2aspect_ratioНеобязательноПропорции видео, работают только у семейства 2.0 на Канале 1. У версии 2.5 и на Канале 2 у любой версии размер ролика задаёт первый кадр, и выбранное значение не учитывается: у 2.5 выбор здесь один, adaptive.
Тип: СтрокаДопустимые значения:adaptiveПо умолчанию:"16:9"
Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.
Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true
Входные данные
- Картинки передаются ссылками на JPEG, PNG, WEBP, BMP, TIFF, GIF до 30 МБ каждая, стороны от 300 до 6 000 пикселей.
- На Канале 2 размер ролика задаёт кадр у любой версии.
| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
image_urls | Картинки | jpeg, jpg, png, webp, bmp, tiff, gif | 2 | 30 МБ |
Пример запроса
Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.
Оживить кадр
{
"model": "seedance",
"settings": {
"mode": "image_to_video",
"prompt": "Девушка поворачивается к камере и улыбается, волосы развеваются на ветру",
"image_urls": [
"https://example.com/first-frame.jpg"
],
"duration": 5
}
}Цена считается при приёме задачи, валюта RUB.
Результат
- Видео MP4.
- Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
- С draft: true приходит черновик в 480p. У такой задачи есть поле draft: до какого времени её можно пересобрать в 1080p, можно ли сейчас и готовый запрос для пересборки.
| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
video | mp4 | 1 |
Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Подпись к результату: модель и настройки",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "video",
"filename": "video.mp4",
"size": 12582912,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
}
]
}
}По референсам
Персонажи, стиль, движение и звук с ваших фото, видео и аудио в новом ролике. Нужно хотя бы одно фото или видео.
Значение поля mode: multimodal
Цена в этом режиме от 60 ₽.
Параметры
Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.
promptОбязательноЧто происходит в видео: от 3 до 20 000 символов, можно на разных языках.
Тип: СтрокаМинимум символов: 1Максимум символов: 20000modelНеобязательноВерсия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.
Тип: СтрокаДопустимые значения:seedance_2_5По умолчанию:"seedance_2_5"qualityНеобязательноКачество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.
Тип: СтрокаДопустимые значения:480p720p1080pПо умолчанию:"720p"durationНеобязательноДлина видео в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду.
Тип: Целое числоМинимум: 4Максимум: 30По умолчанию:5generate_audioНеобязательноСгенерировать звук вместе с видео.
Тип: Да/нетПо умолчанию:truechannelНеобязательноЧерез какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.
Тип: СтрокаДопустимые значения:channel_1channel_2По умолчанию:"channel_1"draftНеобязательноЧерновик: недорогой ролик в 480p, чтобы до дорогого качества проверить сцену, движение и звук. Стоит как обычный ролик 480p, поле quality для него не действует. Есть только у версии 2.5 на Канале 2: с другой версией или каналом задача не принимается. Если черновик понравился, его можно один раз пересобрать в 1080p режимом upscale_draft в течение 7 дней после создания: сцена, движение и звук останутся теми же, а пересборка стоит как обычный ролик 1080p.
Тип: Да/нетПо умолчанию:falseaspect_ratioНеобязательноПропорции видео. adaptive есть только у версии 2.5: пропорции подбирает сама модель по описанию и референсам. На Канале 2 с видео-референсами так у любой версии, и выбранное значение не учитывается.
Тип: СтрокаДопустимые значения:16:99:161:14:33:421:9adaptiveПо умолчанию:"16:9"image_urlsНеобязательноСсылки на фото-референсы: до 30 у версии 2.5, до 9 у семейства 2.0.
Тип: Список (Строка, uri)Максимум элементов: 30video_urlsНеобязательноСсылки на видео-референсы: до 10 у версии 2.5, до 3 у семейства 2.0. Каждое видео уходит в модель целиком, и его секунды добавляются к цене.
Тип: Список (Строка, uri)Максимум элементов: 10audio_urlsНеобязательноСсылки на аудио-референсы: до 10 у версии 2.5, до 3 у семейства 2.0. Аудио только вместе с фото или видео.
Тип: Список (Строка, uri)Максимум элементов: 10
Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.
Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true
Входные данные
- Картинки передаются ссылками на JPEG, PNG, WEBP, BMP, TIFF, GIF до 30 МБ каждая, стороны от 300 до 6 000 пикселей.
- Видео передаются ссылками на MP4, MOV: у версии 2.5 до 200 МБ каждое и вместе не длиннее 30 секунд, у семейства 2.0 до 50 МБ и вместе не длиннее 15 секунд. Каждое от 2 секунд, от 24 до 60 кадров в секунду и не меньше 407 696 точек в кадре (например, 640×640 или 480×854).
- Аудио передаётся ссылками на WAV, MP3 до 15 МБ каждое: у версии 2.5 от 2 до 30 секунд и все вместе не длиннее 30, у семейства 2.0 от 2 до 15 секунд и все вместе не длиннее 15.
- У семейства 2.0 не больше 12 файлов всех видов вместе.
- Файлы уходят в модель как есть и целиком. К длине ролика в цене добавляются секунды всех видео-референсов, неполная секунда каждого видео считается целой. На Канале 2 цена с видео не ниже порога, который растёт с длиной ролика.
- Длину видео для цены мы узнаём, скачав его по ссылке, поэтому ссылка должна вести прямо на файл, без переадресации, и отдавать его быстро. Иначе цену не посчитать, и задача не принимается.
- В описании на файлы можно ссылаться по порядку ссылок каждого вида: @image1, @video1, @audio1 и так далее.
- На Канале 2 с видео-референсами пропорции подбирает сама модель у любой версии.
- Изменить или продлить само видео: режимы video_edit и video_extend. Здесь видео только образец, но у версии 2.5 на Канале 1 описание правки модель может принять за правку и отказать: тогда выберите video_edit.
| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
image_urls | Картинки | jpeg, jpg, png, webp, bmp, tiff, gif | 30 | 30 МБ |
video_urls | Видео | mp4, mov | 10 | 200 МБ |
audio_urls | Аудио | wav, mp3 | 10 | 15 МБ |
Пример запроса
Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.
Персонаж и движение камеры
{
"model": "seedance",
"settings": {
"mode": "multimodal",
"prompt": "Девушка с @image1 идёт по ночному городу под дождём, камера движется как в @video1",
"image_urls": [
"https://example.com/girl.png"
],
"video_urls": [
"https://example.com/camera-move.mp4"
],
"duration": 8
}
}Цена считается при приёме задачи, валюта RUB.
Результат
- Видео MP4.
- Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
- С draft: true приходит черновик в 480p. У такой задачи есть поле draft: до какого времени её можно пересобрать в 1080p, можно ли сейчас и готовый запрос для пересборки.
| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
video | mp4 | 1 |
Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Подпись к результату: модель и настройки",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "video",
"filename": "video.mp4",
"size": 12582912,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
}
]
}
}Правка видео
Модель меняет ваше видео по описанию: заменить предмет или персонажа, фон, стиль. Остальное остаётся как было, длина и пропорции как у видео.
Значение поля mode: video_edit
Цена в этом режиме от 74 ₽, с файлом на 4 с.
Параметры
Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.
promptОбязательноЧто поменять в видео: от 3 до 20 000 символов, можно на разных языках. Остальное в видео останется как было.
Тип: СтрокаМинимум символов: 1Максимум символов: 20000modelНеобязательноВерсия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.
Тип: СтрокаДопустимые значения:seedance_2_5По умолчанию:"seedance_2_5"qualityНеобязательноКачество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.
Тип: СтрокаДопустимые значения:480p720p1080pПо умолчанию:"720p"durationНеобязательноНе действует: ролик выходит той же длины, что ваше видео.
Тип: Целое числоМинимум: 4Максимум: 30По умолчанию:5generate_audioНеобязательноСгенерировать звук вместе с видео.
Тип: Да/нетПо умолчанию:truechannelНеобязательноЧерез какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.
Тип: СтрокаДопустимые значения:channel_1channel_2По умолчанию:"channel_1"draftНеобязательноВ правке и продлении видео черновика нет: оставьте false.
Тип: Да/нетПо умолчанию:falsevideo_urlsОбязательноСсылка на видео, которое нужно изменить. От 4 до 30 секунд у версии 2.5, до 15 у семейства 2.0. В описании это @video1.
Тип: Список (Строка, uri)Максимум элементов: 1image_urlsНеобязательноСсылки на фото-референсы: до 30 у версии 2.5, до 9 у семейства 2.0.
Тип: Список (Строка, uri)Максимум элементов: 30audio_urlsНеобязательноСсылки на аудио-референсы: до 10 у версии 2.5, до 3 у семейства 2.0. Аудио только вместе с фото или видео.
Тип: Список (Строка, uri)Максимум элементов: 10
Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.
Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true
Входные данные
- Видео передаётся ссылкой на MP4, MOV: у версии 2.5 до 200 МБ и не длиннее 30 секунд, у семейства 2.0 до 50 МБ и не длиннее 15 секунд. От 4 секунд, от 24 до 60 кадров в секунду и не меньше 407 696 точек в кадре (например, 640×640 или 480×854).
- Картинки передаются ссылками на JPEG, PNG, WEBP, BMP, TIFF, GIF до 30 МБ каждая, стороны от 300 до 6 000 пикселей.
- Аудио передаётся ссылками на WAV, MP3 до 15 МБ каждое: у версии 2.5 от 2 до 30 секунд и все вместе не длиннее 30, у семейства 2.0 от 2 до 15 секунд и все вместе не длиннее 15.
- У семейства 2.0 не больше 12 файлов всех видов вместе.
- Видео уходит в модель как есть и целиком: нужен другой кусок, обрежьте файл заранее. Цена считается по длине видео: столько же секунд у нового ролика, и ещё столько же добавляет само видео на входе, неполная секунда считается целой.
- Длину видео для цены мы узнаём, скачав его по ссылке, поэтому ссылка должна вести прямо на файл, без переадресации, и отдавать его быстро. Иначе цену не посчитать, и задача не принимается.
- В описании ваше видео это @video1, а фото и звук идут по порядку ссылок: @image1, @audio1 и так далее.
| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
video_urls | Видео | mp4, mov | 1 | 200 МБ |
image_urls | Картинки | jpeg, jpg, png, webp, bmp, tiff, gif | 30 | 30 МБ |
audio_urls | Аудио | wav, mp3 | 10 | 15 МБ |
Пример запроса
Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.
Заменить предмет в видео
{
"model": "seedance",
"settings": {
"mode": "video_edit",
"prompt": "Замени красный кораблик в @video1 на жёлтую резиновую уточку",
"video_urls": [
"https://example.com/boat.mp4"
]
}
}Другой человек с фото
{
"model": "seedance",
"settings": {
"mode": "video_edit",
"prompt": "Замени девушку в @video1 на женщину с @image1, движения и фон те же",
"video_urls": [
"https://example.com/dance.mp4"
],
"image_urls": [
"https://example.com/woman.jpg"
],
"quality": "1080p"
}
}Цена считается при приёме задачи, валюта RUB.
Результат
- Видео MP4.
- Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
- Ролик той же длины и с теми же пропорциями, что ваше видео. У версии 2.5 длина точно как у видео, у семейства 2.0 до целой секунды вверх.
| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
video | mp4 | 1 |
Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Подпись к результату: модель и настройки",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "video",
"filename": "video.mp4",
"size": 12582912,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
}
]
}
}Продление видео
Модель продолжает ваше видео новым куском заданной длины, после ролика или перед ним. Приходят два ролика: новый кусок и он же, склеенный с вашим видео.
Значение поля mode: video_extend
Цена в этом режиме от 65 ₽, с файлом на 2 с.
Параметры
Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.
promptОбязательноЧто происходит в новом куске: от 3 до 20 000 символов, можно на разных языках. Напишите и то, что видео нужно продлить, и в какую сторону.
Тип: СтрокаМинимум символов: 1Максимум символов: 20000modelНеобязательноВерсия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.
Тип: СтрокаДопустимые значения:seedance_2_5По умолчанию:"seedance_2_5"qualityНеобязательноКачество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.
Тип: СтрокаДопустимые значения:480p720p1080pПо умолчанию:"720p"durationНеобязательноДлина нового куска в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду, и к ней добавляются секунды вашего видео.
Тип: Целое числоМинимум: 4Максимум: 30По умолчанию:5generate_audioНеобязательноСгенерировать звук вместе с видео.
Тип: Да/нетПо умолчанию:truechannelНеобязательноЧерез какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.
Тип: СтрокаДопустимые значения:channel_1channel_2По умолчанию:"channel_1"draftНеобязательноВ правке и продлении видео черновика нет: оставьте false.
Тип: Да/нетПо умолчанию:falsevideo_urlsОбязательноСсылка на видео, которое нужно продлить. От 2 до 30 секунд у версии 2.5, до 15 у семейства 2.0. В описании это @video1.
Тип: Список (Строка, uri)Максимум элементов: 1extend_directionНеобязательноС какой стороны приклеить новый кусок к вашему видео: forward после ролика, backward перед ним. Модель направление берёт из описания, поэтому напишите его и там.
Тип: СтрокаДопустимые значения:forwardbackwardПо умолчанию:"forward"image_urlsНеобязательноСсылки на фото-референсы: до 30 у версии 2.5, до 9 у семейства 2.0.
Тип: Список (Строка, uri)Максимум элементов: 30audio_urlsНеобязательноСсылки на аудио-референсы: до 10 у версии 2.5, до 3 у семейства 2.0. Аудио только вместе с фото или видео.
Тип: Список (Строка, uri)Максимум элементов: 10
Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.
Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true
Входные данные
- Видео передаётся ссылкой на MP4, MOV: у версии 2.5 до 200 МБ и не длиннее 30 секунд, у семейства 2.0 до 50 МБ и не длиннее 15 секунд. От 2 секунд, от 24 до 60 кадров в секунду и не меньше 407 696 точек в кадре (например, 640×640 или 480×854).
- Картинки передаются ссылками на JPEG, PNG, WEBP, BMP, TIFF, GIF до 30 МБ каждая, стороны от 300 до 6 000 пикселей.
- Аудио передаётся ссылками на WAV, MP3 до 15 МБ каждое: у версии 2.5 от 2 до 30 секунд и все вместе не длиннее 30, у семейства 2.0 от 2 до 15 секунд и все вместе не длиннее 15.
- У семейства 2.0 не больше 12 файлов всех видов вместе.
- Направление модель понимает из описания: напишите, что видео нужно продлить, и что происходит дальше, а для продления назад «продли назад» и что было до начала. extend_direction задаёт только, с какой стороны мы приклеим новый кусок к вашему видео.
- На Канале 1 продлевать умеет только версия 2.5: для семейства 2.0 выберите Канал 2.
- Видео уходит в модель как есть и целиком: нужен другой кусок, обрежьте файл заранее. К длине нового куска в цене добавляются секунды вашего видео, неполная секунда считается целой. На Канале 2 цена не ниже порога, который растёт с длиной куска.
- Длину видео для цены мы узнаём, скачав его по ссылке, поэтому ссылка должна вести прямо на файл, без переадресации, и отдавать его быстро. Иначе цену не посчитать, и задача не принимается.
- В описании ваше видео это @video1, а фото и звук идут по порядку ссылок: @image1, @audio1 и так далее.
| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
video_urls | Видео | mp4, mov | 1 | 200 МБ |
image_urls | Картинки | jpeg, jpg, png, webp, bmp, tiff, gif | 30 | 30 МБ |
audio_urls | Аудио | wav, mp3 | 10 | 15 МБ |
Пример запроса
Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.
Что было дальше
{
"model": "seedance",
"settings": {
"mode": "video_extend",
"prompt": "Продли @video1: кораблик проплывает под мостиком и скрывается за поворотом",
"video_urls": [
"https://example.com/boat.mp4"
],
"duration": 5,
"channel": "channel_2"
}
}Что было до начала
{
"model": "seedance",
"settings": {
"mode": "video_extend",
"prompt": "Продли @video1 назад: рука опускает бумажный кораблик на воду",
"video_urls": [
"https://example.com/boat.mp4"
],
"duration": 4,
"extend_direction": "backward"
}
}Цена считается при приёме задачи, валюта RUB.
Результат
- Видео MP4.
- Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
- Первым приходит новый кусок, вторым он же, склеенный с вашим видео в сторону extend_direction. Склейка той же высоты и ширины, что новый кусок, звук вашего видео сохраняется.
- Если склеить не вышло, приходит только новый кусок, а в texts пояснение. Оплата та же: кусок готов.
| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
video | mp4 | 1 | Новый кусок. |
video | mp4 | 0 или 1 | Ваше видео и новый кусок одним роликом. Нет, если склеить не вышло. |
result.texts: Пояснение, если склеить не вышло.
Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Подпись к результату: модель и настройки",
"texts": [
"Текст результата, например слова песни"
],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "video",
"filename": "video.mp4",
"size": 12582912,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
},
{
"index": 1,
"kind": "video",
"filename": "video.mp4",
"size": 12582912,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
}
]
}
}Пересборка черновика
Пересобрать готовый черновик в 1080p: тот же ролик, сцена, движение и звук те же. Один раз на черновик и только в течение 7 дней после его создания.
Значение поля mode: upscale_draft
Параметры
Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.
draft_task_idОбязательноid задачи-черновика из /v1/tasks: готовой задачи Seedance 2.5 на Канале 2 с draft: true из вашего кабинета.
Тип: СтрокаМинимум символов: 1Максимум символов: 36
Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.
Входные данные
- Других настроек у пересборки нет: описание, файлы, длительность, пропорции и звук модель берёт у черновика.
- Качество пересборки всегда 1080p. Цена как у обычного ролика 1080p с настройками черновика; узнать её заранее можно через /v1/price с этими же settings.
- Пересобрать черновик можно один раз и только в течение 7 дней после его создания. Точный срок и можно ли пересобрать сейчас, видно в поле draft задачи-черновика.
- Черновик, который ещё не готов, не удался, уже пересобран или пересобирается сейчас, чужой или просроченный, получает отказ с кодом ошибки, и деньги при этом не резервируются.
Пример запроса
Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.
Пересобрать черновик в 1080p
{
"model": "seedance",
"settings": {
"mode": "upscale_draft",
"draft_task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}Цена считается при приёме задачи, валюта RUB.
Результат
- Видео MP4.
- Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
- Видео в 1080p. Неудачная пересборка не оплачивается.
| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
video | mp4 | 1 |
Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "succeeded",
"finished_at": "2026-10-01T12:03:41+00:00",
"result": {
"caption": "Подпись к результату: модель и настройки",
"texts": [],
"files_expire_at": "2026-10-08T12:03:41+00:00",
"files_expired": false,
"artifacts": [
{
"index": 0,
"kind": "video",
"filename": "video.mp4",
"size": 12582912,
"caption": "",
"download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
}
]
}
}Смотрите также
Попробуйте Seedance 2.5 через API
Один ключ открывает все модели CyHUB. Оплата в рублях, цену видно до запуска.
Получить ключ API