Войти

Seedance 2.5 Image to Video

Создание кинематографичного видео из стартового кадра, промпта и необязательного финального кадра. Длительность 4–30 секунд, разрешение до 4K. Соотношение сторон берётся из входного изображения.

Кадр и сценарий
Опишите движение камеры, действия, свет и настроение ролика.
Изображение, с которого начнется видео.
Готово: 1
Кадр, которым должен закончиться ролик.
Выберите качество выходного видео: 480p, 720p, 1080p или 4k.
Разрешение
От 4 до 30 секунд.
5

О модели Seedance 2.5 Image to Video

Обзор

Seedance 2.5 от ByteDance Seed официально представлена в июле 2026 года. Режим Image to Video — endpoint анимации по стартовому кадру (и при необходимости — финальному): ролики длительностью 4–30 секунд с нативным аудио, разрешения 480p, 720p, 1080p и 4K; соотношение сторон берётся из входного изображения. По сравнению с Seedance 2.0 Image to Video (короче клип, потолок 1080p) версия 2.5 рассчитана на длинную дугу движения «в один проход»: лучше держит идентичность персонажа или продукта, переходы камеры и аудиовизуальную согласованность на 30-секундном отрезке. В отличие от Seedance 2.5 Text to Video здесь якорь — готовый кадр, а не text-first сцена: промпт задаёт движение, камеру и звук, а не перерисовывает статику исходника. Пользователь загружает стартовое изображение, описывает действие, при необходимости задаёт last_image как направление финала, выбирает длительность и разрешение, включает генерацию звука. Самое важное: это endpoint для продуктовых и портретных I2V-роликов с контролем начала (и конца) кадра, а не для мгновенных черновиков. Ограничения: при большом разрыве между first/last frame и резком движении на длинной длительности идентичность и пиксельный финал всё ещё требуют проверки и итераций.

Сильные стороны

Критерий Оценка Комментарий
Верность референсам Верность референсам — главная сила endpoint'а: обязательный стартовый кадр и опциональный конечный кадр (last_image) задают визуальное состояние ролика. Мелкие признаки и сильный разрыв между первым и последним кадром всё ещё могут приводить к приближению, а не к пиксельной копии финала.
Согласованность персонажа и объекта Согласованность персонажа и объекта — ключевая сильная сторона режима: стартовый кадр жёстко якорит лицо, силуэт и костюм на длинных дублях. При резкой смене ракурса, сильном повороте и взаимодействии нескольких героев возможен дрейф периферийных признаков.
Качество отдельного кадра Качество кадра — сильная сторона Seedance 2.5 Image to Video: материалы, кожа, свет и насыщенность заметно чище типичных AI-роликов, вплоть до 4K, при этом стартовый кадр задаёт фактуру. На экстремальных крупных планах и в перегруженных сценах отдельные артефакты всё ещё возможны.
Эстетика и композиция Эстетика и композиция очень сильные: стартовое изображение фиксирует кадрирование и иерархию, а модель развивает кинематографичную «смотрибельность» на дублях до 30 с. В сложных многообъектных постановках композиция иногда требует более жёсткой режиссуры движения в запросе.
Управление камерой Управление камерой сильное: наезды, панорамы, трекинг и смена планов от исходного кадра обычно выполняются выразительно и кинематографично. Редкие срывы траектории остаются на сложных стыках и при конфликте промпта с композицией исходника.
Плавность движения Плавность движения — сильная сторона линейки 2.5: камера, тела и объекты обычно движутся естественно на длинных дублях от стартового кадра. На быстрых экшенах и сложной хореографии возможны морфинг и локальная декогеренция.
Согласованность между кадрами Согласованность между кадрами сильная благодаря однопроходному клипу до 30 с и якорю стартового изображения. На очень длинных дублях с резкой сменой плана и несколькими героями возможны небольшие сдвиги деталей и идентичности.

Сценари использования (use cases)

Ограничения и недостатки

Советы

FAQ

Чем Seedance 2.5 Image-to-Video отличается от Seedance 2.0 и когда выбирать 2.5?

Главный скачок для I2V — один непрерывный клип до 30 секунд вместо типичного потолка около 15 секунд у 2.0, плюс более устойчивая непрерывность сцены на длинной дуге. ByteDance Seed также заявляет заметный прирост качества картинки, движения и синхронного аудио. Имеет смысл брать 2.5, когда нужен цельный ролик с началом, развитием и финалом от готового кадра; для коротких простых анимаций без длинной истории 2.0 по-прежнему остаётся рабочим вариантом.

Почему ролик не заканчивается точно на последнем кадре?

Последний кадр задаёт направление финала, но модель обычно приближает его, а не гарантирует пиксельное совпадение — особенно если старт и финал сильно отличаются по ракурсу, масштабу или свету. Для более точного прихода держите оба кадра близкими по композиции и освещению, укоротите длительность и в промпте опишите именно переход, а не заново сцену. Если кадры далеки друг от друга, надёжнее сделать промежуточный шаг и склеить сегменты.

Нужно ли описывать содержимое картинки в промпте или только движение?

В Image-to-Video стартовый кадр уже задаёт объект, свет и композицию — повторно пересказывать статичную сцену не нужно и часто вредно: модель получает противоречие и может перерисовать исходник. Промпт лучше строить как режиссёрскую команду: что движется и как, какое движение камеры, какой темп и звук. Явно указывайте, что должно остаться неизменным — например, сохранить форму продукта или лица без искажений.

Почему нельзя выбрать соотношение сторон — откуда берётся формат ролика?

В режиме first-frame / first-and-last-frame Seedance 2.5 автоматически берёт соотношение сторон из стартового изображения; отдельный параметр формата для такого I2V не задаётся. Если нужен вертикальный или горизонтальный ролик, кадрируйте исходник до нужных пропорций до загрузки. При паре first/last кадры должны совпадать по ratio: иначе финальный кадр может растянуться под пропорции первого.

Почему на длинных клипах плывут лицо и детали, и как снизить дрейф?

Даже при одном проходе до 30 секунд идентичность лица, одежды и продукта может ослабевать по мере роста длительности и сложности движения — особенно на крупных планах, быстрых поворотах и активной анимации. Для стабильности укорачивайте длительность, просите медленное и ограниченное движение, явно пишите «preserve shape / no distortion» и сравнивайте исходник с концом ролика. Если сцена длинная и насыщенная, надёжнее дробить её на направленные сегменты, чем требовать весь сюжет из одного статичного кадра.

Цены

Цена при активной подписке

Стоимость необязательной подписки 299 ₽/месяц Подробнее

API

Инструкция ниже является выдержкой из документации.

Параметры

Поля тела JSON-запроса, которые используются в Playground и доступны для настройки через API. Порядок совпадает с формой на странице.

Параметр Тип Обязательный По умолчанию Допустимые значения Описание
prompt string Да длина 1–8000 символов Опишите движение камеры, действия, свет и настроение ролика.
image string Да от 8 символов Изображение, с которого начнется видео. Выберите с диска или перетащите сюда
last_image string Нет Кадр, которым должен закончиться ролик. Выберите с диска или перетащите сюда
resolution string Нет 720p 480p, 720p, 1080p, 4k Выберите качество выходного видео: 480p, 720p, 1080p или 4k.
duration integer Нет 5 4–30 От 4 до 30 секунд.
generate_audio boolean Нет true Добавить синхронный звук к видео.

Запрос

Асинхронный запуск: POST https://api.flixa.io/v1/video/seedance-2.5/image-to-video с заголовком Authorization: Bearer $FLIXA_API_KEY и телом JSON. Ниже — пример с полями из Playground.

curl -X POST "https://api.flixa.io/v1/video/seedance-2.5/image-to-video" \
  -H "Authorization: Bearer $FLIXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "image": "https://uploads.flixa.io/media/c8131797e72916f3dc3370c16036686e5d79c3b388227e0f89ec7f72465199b4.jpg",
  "prompt": "Лёгкое живое движение: едва заметный наезд камеры, моргание, естественное микродвижение лица, мягкий свет студии.",
  "duration": 5,
  "last_image": "",
  "resolution": "720p",
  "generate_audio": true
}'
import json
import os
import requests

url = "https://api.flixa.io/v1/video/seedance-2.5/image-to-video"
payload = json.loads({"duration": 5, "generate_audio": true, "image": "https://uploads.flixa.io/media/c8131797e72916f3dc3370c16036686e5d79c3b388227e0f89ec7f72465199b4.jpg", "last_image": "", "prompt": "\u041b\u0451\u0433\u043a\u043e\u0435 \u0436\u0438\u0432\u043e\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435: \u0435\u0434\u0432\u0430 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u043d\u0430\u0435\u0437\u0434 \u043a\u0430\u043c\u0435\u0440\u044b, \u043c\u043e\u0440\u0433\u0430\u043d\u0438\u0435, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043c\u0438\u043a\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u043b\u0438\u0446\u0430, \u043c\u044f\u0433\u043a\u0438\u0439 \u0441\u0432\u0435\u0442 \u0441\u0442\u0443\u0434\u0438\u0438.", "resolution": "720p"})

response = requests.post(
    url,
    headers={"Authorization": f"Bearer {os.environ['FLIXA_API_KEY']}"},
    json=payload,
    timeout=120,
)
print(response.json())
const response = await fetch(
  "https://api.flixa.io/v1/video/seedance-2.5/image-to-video",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.FLIXA_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"duration": 5, "generate_audio": true, "image": "https://uploads.flixa.io/media/c8131797e72916f3dc3370c16036686e5d79c3b388227e0f89ec7f72465199b4.jpg", "last_image": "", "prompt": "\u041b\u0451\u0433\u043a\u043e\u0435 \u0436\u0438\u0432\u043e\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435: \u0435\u0434\u0432\u0430 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u043d\u0430\u0435\u0437\u0434 \u043a\u0430\u043c\u0435\u0440\u044b, \u043c\u043e\u0440\u0433\u0430\u043d\u0438\u0435, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043c\u0438\u043a\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u043b\u0438\u0446\u0430, \u043c\u044f\u0433\u043a\u0438\u0439 \u0441\u0432\u0435\u0442 \u0441\u0442\u0443\u0434\u0438\u0438.", "resolution": "720p"}),
  }
);

console.log(await response.json());

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

Сразу после POST приходит объект с идентификатором задачи и статусом (queued или processing). Готовый результат — в поле outputs после завершения.

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "created_at": "2026-05-22T12:00:00Z"
}

После успешного завершения:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "outputs": [
    { "url": "https://storage.example/result.png", "type": "image" }
  ]
}

Поллинг

Пока задача в работе, опрашивайте GET https://api.flixa.io/v1/predictions/{id}/result с тем же API-ключом. Рекомендуемый интервал — 1–2 секунды; остановитесь при completed, failed или cancelled.

  • queued / processing — продолжайте опрос.
  • completed — заберите URL из outputs.
  • failed — смотрите error в теле ответа.
curl "https://api.flixa.io/v1/predictions/{id}/result" \
  -H "Authorization: Bearer $FLIXA_API_KEY"