CyHUB
EnglishПолучить ключ

Seedance 2.0 Fast API

Видео Seedance 2.0 Fast от ByteDance со звуком: по описанию, по первому и последнему кадру или по референсам, до 15 секунд. Быстрая версия, качество 480p или 720p. Референсы: фото, видео и аудио. Своё видео можно отредактировать описанием, а на Канале 2 и продлить вперёд или назад. Два канала: обычный и, как правило, подешевле.

Разработчик: ByteDanceКлюч модели в API: seedance

Для нейросети:Скачать .mdВся документация .mdОткрыть как текст

Подключение в три шага

  1. Получите ключКлюч создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
  2. Узнайте ценуPOST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
  3. Запустите задачу и заберите результатPOST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.

Готовый код

Замените YOUR_API_KEY своим ключом. Код ставит задачу и ждёт результата. В cURL второй запрос повторяйте, подставив вместо TASK_ID поле id из ответа первого, пока status не станет succeeded.

cURL
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_fast",
    "quality": "480p",
    "duration": 5,
    "aspect_ratio": "9:16",
    "channel": "channel_2"
  }
}'

curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
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_fast",
        "quality": "480p",
        "duration": 5,
        "aspect_ratio": "9:16",
        "channel": "channel_2",
    },
}

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"])
Node.js
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_fast",
    "quality": "480p",
    "duration": 5,
    "aspect_ratio": "9:16",
    "channel": "channel_2"
  }
};

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: от 32 ₽. Точную цену своих настроек покажет POST /v1/price.

РежимЦена
По описаниюот 32 ₽
По кадрамот 33 ₽
По референсамот 32 ₽
Правка видео с файлом на 4 сот 39 ₽
Продление видео с файлом на 2 сот 34 ₽

Отправьте те же настройки в POST /v1/price: ответ покажет цену запуска, деньги при этом не списываются.

cURL
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_fast",
    "quality": "480p",
    "duration": 5,
    "aspect_ratio": "9:16",
    "channel": "channel_2"
  }
}'
  • amount_minor: цена запуска в копейках (для рублей)
  • currency: валюта кошелька
  • available_minor: сколько сейчас доступно на балансе для новых задач

Режимы

У каждого режима свои параметры и примеры. Режим выбирает поле mode.

По описанию

Видео только по тексту, файлы не передаются.

Значение поля mode: text_to_video

На этой странице версия Seedance 2.0 Fast: передайте model = seedance_2_fast. Без поля model запустится seedance_2_5.

Цена в этом режиме от 32 ₽.

Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

promptОбязательно

Что происходит в видео: от 3 до 20 000 символов, можно на разных языках.

Тип: СтрокаМинимум символов: 1Максимум символов: 20000
modelНеобязательно

Версия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.

Тип: СтрокаДопустимые значения: seedance_2_fastПо умолчанию: "seedance_2_5"
qualityНеобязательно

Качество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.

Тип: СтрокаДопустимые значения: 480p720pПо умолчанию: "720p"
durationНеобязательно

Длина видео в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду.

Тип: Целое числоМинимум: 4Максимум: 30По умолчанию: 5
generate_audioНеобязательно

Сгенерировать звук вместе с видео.

Тип: Да/нетПо умолчанию: true
channelНеобязательно

Через какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.

Тип: СтрокаДопустимые значения: channel_1channel_2По умолчанию: "channel_1"
draftНеобязательно

Черновик: недорогой ролик в 480p, чтобы до дорогого качества проверить сцену, движение и звук. Стоит как обычный ролик 480p, поле quality для него не действует. Есть только у версии 2.5 на Канале 2: с другой версией или каналом задача не принимается. Если черновик понравился, его можно один раз пересобрать в 1080p режимом upscale_draft в течение 7 дней после создания: сцена, движение и звук останутся теми же, а пересборка стоит как обычный ролик 1080p.

Тип: Да/нетПо умолчанию: false
aspect_ratioНеобязательно

Пропорции видео. adaptive есть только у версии 2.5: пропорции подбирает сама модель по описанию.

Тип: СтрокаДопустимые значения: 16:99:161:14:33:421:9По умолчанию: "16:9"
web_searchНеобязательно

Онлайн-поиск: модель подтянет свежие сведения из интернета. Только на Канале 1.

Тип: Да/нетПо умолчанию: false

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true

Входные данные

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Подешевле, через Канал 2

    JSON
    {
      "model": "seedance",
      "settings": {
        "mode": "text_to_video",
        "prompt": "Бумажный кораблик плывёт по весеннему ручью, крупный план",
        "model": "seedance_2_fast",
        "quality": "480p",
        "duration": 5,
        "aspect_ratio": "9:16",
        "channel": "channel_2"
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Видео MP4.
    • Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
    • С draft: true приходит черновик в 480p. У такой задачи есть поле draft: до какого времени её можно пересобрать в 1080p, можно ли сейчас и готовый запрос для пересборки.
    Вид (kind)ФорматыСколькоПояснение
    videomp41

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "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

    На этой странице версия Seedance 2.0 Fast: передайте model = seedance_2_fast. Без поля model запустится seedance_2_5.

    Цена в этом режиме от 33 ₽.

    Параметры

    Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

    promptОбязательно

    Что происходит в видео: от 3 до 20 000 символов, можно на разных языках.

    Тип: СтрокаМинимум символов: 1Максимум символов: 20000
    modelНеобязательно

    Версия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.

    Тип: СтрокаДопустимые значения: seedance_2_fastПо умолчанию: "seedance_2_5"
    qualityНеобязательно

    Качество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.

    Тип: СтрокаДопустимые значения: 480p720pПо умолчанию: "720p"
    durationНеобязательно

    Длина видео в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду.

    Тип: Целое числоМинимум: 4Максимум: 30По умолчанию: 5
    generate_audioНеобязательно

    Сгенерировать звук вместе с видео.

    Тип: Да/нетПо умолчанию: true
    channelНеобязательно

    Через какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.

    Тип: СтрокаДопустимые значения: channel_1channel_2По умолчанию: "channel_1"
    draftНеобязательно

    Черновик: недорогой ролик в 480p, чтобы до дорогого качества проверить сцену, движение и звук. Стоит как обычный ролик 480p, поле quality для него не действует. Есть только у версии 2.5 на Канале 2: с другой версией или каналом задача не принимается. Если черновик понравился, его можно один раз пересобрать в 1080p режимом upscale_draft в течение 7 дней после создания: сцена, движение и звук останутся теми же, а пересборка стоит как обычный ролик 1080p.

    Тип: Да/нетПо умолчанию: false
    image_urlsОбязательно

    Одна ссылка: первый кадр. Две ссылки: первый и последний кадры.

    Тип: Список (Строка, uri)Максимум элементов: 2
    aspect_ratioНеобязательно

    Пропорции видео, работают только у семейства 2.0 на Канале 1. У версии 2.5 и на Канале 2 у любой версии размер ролика задаёт первый кадр, и выбранное значение не учитывается: у 2.5 выбор здесь один, adaptive.

    Тип: СтрокаДопустимые значения: 16:99:161:14:33:421:9По умолчанию: "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, gif230 МБ
    Как передать файлы

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Оживить кадр

    JSON
    {
      "model": "seedance",
      "settings": {
        "mode": "image_to_video",
        "prompt": "Девушка поворачивается к камере и улыбается, волосы развеваются на ветру",
        "image_urls": [
          "https://example.com/first-frame.jpg"
        ],
        "duration": 5,
        "model": "seedance_2_fast"
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Видео MP4.
    • Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
    • С draft: true приходит черновик в 480p. У такой задачи есть поле draft: до какого времени её можно пересобрать в 1080p, можно ли сейчас и готовый запрос для пересборки.
    Вид (kind)ФорматыСколькоПояснение
    videomp41

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "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

    На этой странице версия Seedance 2.0 Fast: передайте model = seedance_2_fast. Без поля model запустится seedance_2_5.

    Цена в этом режиме от 32 ₽.

    Параметры

    Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

    promptОбязательно

    Что происходит в видео: от 3 до 20 000 символов, можно на разных языках.

    Тип: СтрокаМинимум символов: 1Максимум символов: 20000
    modelНеобязательно

    Версия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.

    Тип: СтрокаДопустимые значения: seedance_2_fastПо умолчанию: "seedance_2_5"
    qualityНеобязательно

    Качество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.

    Тип: СтрокаДопустимые значения: 480p720pПо умолчанию: "720p"
    durationНеобязательно

    Длина видео в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду.

    Тип: Целое числоМинимум: 4Максимум: 30По умолчанию: 5
    generate_audioНеобязательно

    Сгенерировать звук вместе с видео.

    Тип: Да/нетПо умолчанию: true
    channelНеобязательно

    Через какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.

    Тип: СтрокаДопустимые значения: channel_1channel_2По умолчанию: "channel_1"
    draftНеобязательно

    Черновик: недорогой ролик в 480p, чтобы до дорогого качества проверить сцену, движение и звук. Стоит как обычный ролик 480p, поле quality для него не действует. Есть только у версии 2.5 на Канале 2: с другой версией или каналом задача не принимается. Если черновик понравился, его можно один раз пересобрать в 1080p режимом upscale_draft в течение 7 дней после создания: сцена, движение и звук останутся теми же, а пересборка стоит как обычный ролик 1080p.

    Тип: Да/нетПо умолчанию: false
    aspect_ratioНеобязательно

    Пропорции видео. adaptive есть только у версии 2.5: пропорции подбирает сама модель по описанию и референсам. На Канале 2 с видео-референсами так у любой версии, и выбранное значение не учитывается.

    Тип: СтрокаДопустимые значения: 16:99:161:14:33:421:9По умолчанию: "16:9"
    image_urlsНеобязательно

    Ссылки на фото-референсы: до 30 у версии 2.5, до 9 у семейства 2.0.

    Тип: Список (Строка, uri)Максимум элементов: 30
    video_urlsНеобязательно

    Ссылки на видео-референсы: до 10 у версии 2.5, до 3 у семейства 2.0. Каждое видео уходит в модель целиком, и его секунды добавляются к цене.

    Тип: Список (Строка, uri)Максимум элементов: 10
    audio_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, gif3030 МБ
    video_urlsВидеоmp4, mov10200 МБ
    audio_urlsАудиоwav, mp31015 МБ
    Как передать файлы

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Персонаж и движение камеры

    JSON
    {
      "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,
        "model": "seedance_2_fast"
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Видео MP4.
    • Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
    • С draft: true приходит черновик в 480p. У такой задачи есть поле draft: до какого времени её можно пересобрать в 1080p, можно ли сейчас и готовый запрос для пересборки.
    Вид (kind)ФорматыСколькоПояснение
    videomp41

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "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

    На этой странице версия Seedance 2.0 Fast: передайте model = seedance_2_fast. Без поля model запустится seedance_2_5.

    Цена в этом режиме от 39 ₽, с файлом на 4 с.

    Параметры

    Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

    promptОбязательно

    Что поменять в видео: от 3 до 20 000 символов, можно на разных языках. Остальное в видео останется как было.

    Тип: СтрокаМинимум символов: 1Максимум символов: 20000
    modelНеобязательно

    Версия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.

    Тип: СтрокаДопустимые значения: seedance_2_fastПо умолчанию: "seedance_2_5"
    qualityНеобязательно

    Качество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.

    Тип: СтрокаДопустимые значения: 480p720pПо умолчанию: "720p"
    durationНеобязательно

    Не действует: ролик выходит той же длины, что ваше видео.

    Тип: Целое числоМинимум: 4Максимум: 30По умолчанию: 5
    generate_audioНеобязательно

    Сгенерировать звук вместе с видео.

    Тип: Да/нетПо умолчанию: true
    channelНеобязательно

    Через какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.

    Тип: СтрокаДопустимые значения: channel_1channel_2По умолчанию: "channel_1"
    draftНеобязательно

    В правке и продлении видео черновика нет: оставьте false.

    Тип: Да/нетПо умолчанию: false
    video_urlsОбязательно

    Ссылка на видео, которое нужно изменить. От 4 до 30 секунд у версии 2.5, до 15 у семейства 2.0. В описании это @video1.

    Тип: Список (Строка, uri)Максимум элементов: 1
    image_urlsНеобязательно

    Ссылки на фото-референсы: до 30 у версии 2.5, до 9 у семейства 2.0.

    Тип: Список (Строка, uri)Максимум элементов: 30
    audio_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, mov1200 МБ
    image_urlsКартинкиjpeg, jpg, png, webp, bmp, tiff, gif3030 МБ
    audio_urlsАудиоwav, mp31015 МБ
    Как передать файлы

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Заменить предмет в видео

    JSON
    {
      "model": "seedance",
      "settings": {
        "mode": "video_edit",
        "prompt": "Замени красный кораблик в @video1 на жёлтую резиновую уточку",
        "video_urls": [
          "https://example.com/boat.mp4"
        ],
        "model": "seedance_2_fast"
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Видео MP4.
    • Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
    • Ролик той же длины и с теми же пропорциями, что ваше видео. У версии 2.5 длина точно как у видео, у семейства 2.0 до целой секунды вверх.
    Вид (kind)ФорматыСколькоПояснение
    videomp41

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "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

    На этой странице версия Seedance 2.0 Fast: передайте model = seedance_2_fast. Без поля model запустится seedance_2_5.

    Цена в этом режиме от 34 ₽, с файлом на 2 с.

    Параметры

    Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

    promptОбязательно

    Что происходит в новом куске: от 3 до 20 000 символов, можно на разных языках. Напишите и то, что видео нужно продлить, и в какую сторону.

    Тип: СтрокаМинимум символов: 1Максимум символов: 20000
    modelНеобязательно

    Версия. 2.5 новее всех и делает ролики до 30 секунд, Pro 2.0 единственная с 4K, Fast 2.0 быстрая, Mini 2.0 самая дешёвая.

    Тип: СтрокаДопустимые значения: seedance_2_fastПо умолчанию: "seedance_2_5"
    qualityНеобязательно

    Качество видео, от него зависит цена. 1080p есть у 2.5 и Pro 2.0, 4K только у Pro 2.0. У черновика (draft) качество всегда 480p, это поле для него не действует.

    Тип: СтрокаДопустимые значения: 480p720pПо умолчанию: "720p"
    durationНеобязательно

    Длина нового куска в секундах: от 4 до 30 у версии 2.5, до 15 у семейства 2.0. Цена за каждую секунду, и к ней добавляются секунды вашего видео.

    Тип: Целое числоМинимум: 4Максимум: 30По умолчанию: 5
    generate_audioНеобязательно

    Сгенерировать звук вместе с видео.

    Тип: Да/нетПо умолчанию: true
    channelНеобязательно

    Через какой канал пойдёт генерация: модель та же, отличаются цена и проверки. Канал 1 обычный и принимает фото людей. Канал 2 обычно дешевле, но отклоняет фотографии реальных людей и запрещённые сюжеты, и онлайн-поиска у него нет. С видео на входе у Канала 2 есть нижний порог цены, растущий с длиной ролика, и с коротким видео он может выйти дороже. Отказ канала не оплачивается.

    Тип: СтрокаДопустимые значения: channel_1channel_2По умолчанию: "channel_1"
    draftНеобязательно

    В правке и продлении видео черновика нет: оставьте false.

    Тип: Да/нетПо умолчанию: false
    video_urlsОбязательно

    Ссылка на видео, которое нужно продлить. От 2 до 30 секунд у версии 2.5, до 15 у семейства 2.0. В описании это @video1.

    Тип: Список (Строка, uri)Максимум элементов: 1
    extend_directionНеобязательно

    С какой стороны приклеить новый кусок к вашему видео: forward после ролика, backward перед ним. Модель направление берёт из описания, поэтому напишите его и там.

    Тип: СтрокаДопустимые значения: forwardbackwardПо умолчанию: "forward"
    image_urlsНеобязательно

    Ссылки на фото-референсы: до 30 у версии 2.5, до 9 у семейства 2.0.

    Тип: Список (Строка, uri)Максимум элементов: 30
    audio_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, mov1200 МБ
    image_urlsКартинкиjpeg, jpg, png, webp, bmp, tiff, gif3030 МБ
    audio_urlsАудиоwav, mp31015 МБ
    Как передать файлы

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Что было дальше

    JSON
    {
      "model": "seedance",
      "settings": {
        "mode": "video_extend",
        "prompt": "Продли @video1: кораблик проплывает под мостиком и скрывается за поворотом",
        "video_urls": [
          "https://example.com/boat.mp4"
        ],
        "duration": 5,
        "channel": "channel_2",
        "model": "seedance_2_fast"
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Видео MP4.
    • Генерация обычно занимает несколько минут, длинные ролики и высокое качество дольше.
    • Первым приходит новый кусок, вторым он же, склеенный с вашим видео в сторону extend_direction. Склейка той же высоты и ширины, что новый кусок, звук вашего видео сохраняется.
    • Если склеить не вышло, приходит только новый кусок, а в texts пояснение. Оплата та же: кусок готов.
    Вид (kind)ФорматыСколькоПояснение
    videomp41Новый кусок.
    videomp40 или 1Ваше видео и новый кусок одним роликом. Нет, если склеить не вышло.

    result.texts: Пояснение, если склеить не вышло.

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "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"
          }
        ]
      }
    }
    Как читать результат и скачивать файлы

    Смотрите также

    Попробуйте Seedance 2.0 Fast через API

    Один ключ открывает все модели CyHUB. Оплата в рублях, цену видно до запуска.

    Получить ключ API