Генерация видео · bytedance

Seedance 2.0

seedance-20

Seedance 2.0 — генерация видео от bytedance, доступная через единый Ranvik API. Поддерживаемые возможности: high_quality, image_to_video, text_to_video.

от 19.6 ₽ / сек

Seedance 2.0 — flagship video-модель ByteDance. Поддерживает text-to-video и image-to-video. Качество на уровне Veo / Kling, отлично с движением и физикой.

Когда использовать:

  • Короткие маркетинг-ролики, анимация концептов, B-roll для видео.
  • Image-to-video: оживить иллюстрацию или фото.
  • Когда нужен баланс качества и стоимости (дешевле Sora 2 Pro).

Особенности:

  • Длительность 5 или 10 секунд.
  • Resolution до 1080p.
  • Aspect ratios: 16:9, 9:16, 1:1, 4:3, 3:4.

Для скоростной генерации (тестирование промптов) используйте seedance-20-fast — ~3x быстрее, чуть ниже качество.

Технические характеристики

МодальностьГенерация видео
Провайдерbytedance
СтатусАктивна
ID для запросовseedance-20

Возможности

  • Высокое качество
  • Image-to-video
  • Text-to-video

Цены

ЕдиницаЦена
за секунду · 480p · T2V/I2V19.6 ₽
за секунду · 480p · V2V36.4 ₽
за секунду · 720p · T2V/I2V44.8 ₽
за секунду · 720p44.8 ₽
за секунду · 720p · V2V78.4 ₽

Цены указаны в рублях. Списываются с баланса проекта при каждом успешном запросе.

Поддерживаемые параметры

Параметры передаются вендору как есть (pure proxy) — мы не валидируем их у себя на стороне. Если вендор не примет — вернётся его ошибка.

ПараметрТипДиапазон / valuesDefaultОписание
positivePromptrequiredstringmin: 2 · max: 3000 Текстовый промпт описывающий генерируемое видео.
примеры значений
Примеры
Кот в шляпе танцует под джаз на крыше Парижа ночью.
widthinteger Ширина в px. Используется парой с height — только валидные комбинации (см. ниже). Несовместимо с resolution.
heightinteger Высота в px. Парный к width. Список валидных значений — см. combos у width.
resolutionenum480p, 720p, 1080p720p Resolution preset. При inputs.frameImages aspect ratio наследуется из входного изображения. Несовместимо с width/height.
durationnumber Длительность видео в секундах. Если не указано — auto.
примеры значений
Примеры
5
10
15
inputs.frameImagesarray of strings or objectsmin: 1 · max: 2 Frame-specific image inputs для image-to-video. Каждый item — либо строка, либо объект {image, frame}. 1 image → first frame, 2 → first+last. Несовместимо с inputs.referenceImages / referenceVideos / referenceAudios.
2 формата ввода
Format 1: string[]

Image input — URL / UUID / Data URI / Base64.

[
  "https://example.com/first-frame.jpg"
]
Format 2: object[]
ПолеТипЗначенияОписание
imagereqstring Image input (UUID / URL / Data URI / Base64).
frameenumfirst, last, 0, -1 Target frame position: "first" / "last" — крайние, 0 — first frame index, -1 — last frame index.
[
  {
    "image": "https://example.com/start.jpg",
    "frame": "first"
  },
  {
    "image": "https://example.com/end.jpg",
    "frame": "last"
  }
]
inputs.referenceImagesarray of stringsmin: 1 · max: 9 Reference-изображения для визуального гайда (URL / UUID / Data URI / Base64). До 9 шт.
примеры значений
Примеры
[
  "https://example.com/ref1.jpg",
  "https://example.com/ref2.jpg"
]
inputs.referenceVideosarray of stringsmin: 1 · max: 3 Reference-видео (URL / UUID). До 3 шт.
примеры значений
Примеры
[
  "https://example.com/ref.mp4"
]
inputs.referenceAudiosarray of stringsmin: 1 · max: 3 Reference-аудио для guided-audio (URL / UUID). До 3. Требует хотя бы одно reference image или video.
примеры значений
Примеры
[
  "https://example.com/voice.mp3"
]
settings.audiobooleantrue Генерировать ли синхронизированный audio-трек (диалог, ambient, эффекты).
numberResultsintegermin: 1 · max: 41 Сколько вариаций сгенерировать (разные seeds). Каждая считается отдельно.
outputFormatenumMP4, WEBM, MOVMP4 Контейнер для финального видео.
outputQualityintegermin: 20 · max: 9995 Качество компрессии (20–99). Выше — лучше визуально и больше размер файла.
safety.checkContentbooleanfalse Включить проверку контента на NSFW / запрещёнку. При true default-режим safety.mode становится fast.
safety.modeenumnone, fast, fullnone Режим safety-сканера: none — выключен, fast — проверяет ключевые кадры, full — все кадры (медленнее).
webhookURLstring URL для POST-уведомления при готовности задачи. Альтернатива polling-у /v1/tasks/{id}.
примеры значений
Примеры
https://yourapp.com/webhooks/runware
uploadEndpointstring Presigned URL (S3 / GCS / Azure / HTTP PUT) для автозагрузки готового видео. Сырое binary в body PUT-запроса.
примеры значений
Примеры
https://bucket.s3.amazonaws.com/result.mp4?X-Amz-Signature=...

Поддерживаемые размеры

Допустимы только эти комбинации width × height. Произвольные значения вендор отклонит — используй resolution preset либо одну из пар ниже.

480p (16:9)
864×496
480p (4:3)
752×560
480p (1:1)
640×640
480p (3:4)
560×752
480p (9:16)
496×864
480p (21:9)
992×432
720p (16:9)
1280×720
720p (4:3)
1112×834
720p (1:1)
960×960
720p (3:4)
834×1112
720p (9:16)
720×1280
720p (21:9)
1470×630
1080p (16:9)
1920×1080
1080p (4:3)
1664×1248
1080p (1:1)
1440×1440
1080p (3:4)
1248×1664
1080p (9:16)
1080×1920
1080p (21:9)
2206×946

Параметры ответа

Что возвращает API. У медиа-моделей формат зависит от режима: sync — сразу результат, async — task_id для опроса через GET /v1/tasks/{id}. Эта модель работает только в async-режиме.

Async (HTTP 202)

HTTP 202. Видео-генерация всегда async — нет sync-режима.

ПолеТипЗначенияОписание
idstring task_id для GET /v1/tasks/{id}.
objectstringvideo.task
statusenumqueued, processing, completed, failed
modelstring
createdinteger

Опрос статуса (GET /v1/tasks/{id})

GET /v1/tasks/{id} — опрос статуса.

ПолеТипЗначенияОписание
idstring
statusenumqueued, processing, completed, failed, canceled
modalitystringvideo
modelstring
dataarray
Каждый элемент:
  • url— string · CDN URL .mp4 / .webm / .mov.
errorstring

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

from openai import OpenAI

client = OpenAI(api_key="rk_live_...", base_url="https://api.ranvik.ru/v1")
resp = client.videos.generate(
    model= "seedance-20",
    positivePrompt= "Пример промпта",
    width= 1,
    height= 1,
    resolution= "720p",
    duration= 1,
    "inputs.frameImages": [],
    "inputs.referenceImages": [],
    "inputs.referenceVideos": [],
    "inputs.referenceAudios": [],
    "settings.audio": True,
    numberResults= 1,
    outputFormat= "MP4",
    outputQuality= 95,
    "safety.checkContent": False,
    "safety.mode": "none",
    webhookURL= "https://example.com/...",
    uploadEndpoint= "value",
)
print(resp)

Замените rk_live_... на ваш ключ из кабинета.