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 быстрее, чуть ниже качество.
Технические характеристики
seedance-20Возможности
- Высокое качество
- Image-to-video
- Text-to-video
Цены
| Единица | Цена |
|---|---|
| за секунду · 480p · T2V/I2V | 19.6 ₽ |
| за секунду · 480p · V2V | 36.4 ₽ |
| за секунду · 720p · T2V/I2V | 44.8 ₽ |
| за секунду · 720p | 44.8 ₽ |
| за секунду · 720p · V2V | 78.4 ₽ |
Цены указаны в рублях. Списываются с баланса проекта при каждом успешном запросе.
Поддерживаемые параметры
Параметры передаются вендору как есть (pure proxy) — мы не валидируем их у себя на стороне. Если вендор не примет — вернётся его ошибка.
| Параметр | Тип | Диапазон / values | Default | Описание | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
positivePromptrequired | string | min: 2 · max: 3000 | — | Текстовый промпт описывающий генерируемое видео. примеры значенийПримеры Кот в шляпе танцует под джаз на крыше Парижа ночью. | ||||||||||||
width | integer | — | — | Ширина в px. Используется парой с height — только валидные комбинации (см. ниже). Несовместимо с resolution. | ||||||||||||
height | integer | — | — | Высота в px. Парный к width. Список валидных значений — см. combos у width. | ||||||||||||
resolution | enum | 480p, 720p, 1080p | 720p | Resolution preset. При inputs.frameImages aspect ratio наследуется из входного изображения. Несовместимо с width/height. | ||||||||||||
duration | number | — | — | Длительность видео в секундах. Если не указано — auto. примеры значенийПримеры 5 10 15 | ||||||||||||
inputs.frameImages | array of strings or objects | min: 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[]
[
{
"image": "https://example.com/start.jpg",
"frame": "first"
},
{
"image": "https://example.com/end.jpg",
"frame": "last"
}
] | ||||||||||||
inputs.referenceImages | array of strings | min: 1 · max: 9 | — | Reference-изображения для визуального гайда (URL / UUID / Data URI / Base64). До 9 шт. примеры значенийПримеры [ "https://example.com/ref1.jpg", "https://example.com/ref2.jpg" ] | ||||||||||||
inputs.referenceVideos | array of strings | min: 1 · max: 3 | — | Reference-видео (URL / UUID). До 3 шт. примеры значенийПримеры [ "https://example.com/ref.mp4" ] | ||||||||||||
inputs.referenceAudios | array of strings | min: 1 · max: 3 | — | Reference-аудио для guided-audio (URL / UUID). До 3. Требует хотя бы одно reference image или video. примеры значенийПримеры [ "https://example.com/voice.mp3" ] | ||||||||||||
settings.audio | boolean | — | true | Генерировать ли синхронизированный audio-трек (диалог, ambient, эффекты). | ||||||||||||
numberResults | integer | min: 1 · max: 4 | 1 | Сколько вариаций сгенерировать (разные seeds). Каждая считается отдельно. | ||||||||||||
outputFormat | enum | MP4, WEBM, MOV | MP4 | Контейнер для финального видео. | ||||||||||||
outputQuality | integer | min: 20 · max: 99 | 95 | Качество компрессии (20–99). Выше — лучше визуально и больше размер файла. | ||||||||||||
safety.checkContent | boolean | — | false | Включить проверку контента на NSFW / запрещёнку. При true default-режим safety.mode становится fast. | ||||||||||||
safety.mode | enum | none, fast, full | none | Режим safety-сканера: none — выключен, fast — проверяет ключевые кадры, full — все кадры (медленнее). | ||||||||||||
webhookURL | string | — | — | URL для POST-уведомления при готовности задачи. Альтернатива polling-у /v1/tasks/{id}. примеры значенийПримеры https://yourapp.com/webhooks/runware | ||||||||||||
uploadEndpoint | string | — | — | Presigned URL (S3 / GCS / Azure / HTTP PUT) для автозагрузки готового видео. Сырое binary в body PUT-запроса. примеры значенийПримеры https://bucket.s3.amazonaws.com/result.mp4?X-Amz-Signature=... |
Поддерживаемые размеры
Допустимы только эти комбинации width × height. Произвольные значения вендор отклонит — используй resolution preset либо одну из пар ниже.
864×496752×560640×640560×752496×864992×4321280×7201112×834960×960834×1112720×12801470×6301920×10801664×12481440×14401248×16641080×19202206×946Параметры ответа
Что возвращает API. У медиа-моделей формат зависит от режима: sync — сразу результат, async — task_id для опроса через GET /v1/tasks/{id}. Эта модель работает только в async-режиме.
Async (HTTP 202)
HTTP 202. Видео-генерация всегда async — нет sync-режима.
| Поле | Тип | Значения | Описание |
|---|---|---|---|
id | string | — | task_id для GET /v1/tasks/{id}. |
object | string | video.task | |
status | enum | queued, processing, completed, failed | |
model | string | — | |
created | integer | — |
Опрос статуса (GET /v1/tasks/{id})
GET /v1/tasks/{id} — опрос статуса.
| Поле | Тип | Значения | Описание |
|---|---|---|---|
id | string | — | |
status | enum | queued, processing, completed, failed, canceled | |
modality | string | video | |
model | string | — | |
data | array | — | Каждый элемент:
|
error | string | — |
Пример запроса
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_... на ваш ключ из кабинета.