Руководство · из изображения в видео

Seedance 2.5 из изображения в видео: руководство по API

Seedance 2.5 превращает статичную картинку в клип от 4 до 30 секунд со звуком. Дайте первый кадр — и видео начнётся ровно с этой картинки; дайте первый и последний кадр — и оно перейдёт от одного к другому. Ниже запрос для каждого варианта и код, который можно запустить.

Два способа начать с картинки

Режимы Seedance 2.5 из изображения в видео
РежимПолеЧто вы получаете
Первый кадрimage_urlКлип открывается вашей картинкой и развивается дальше, как сказано в промпте.
Первый и последний кадрimage_url + end_image_urlКлип начинается с одной картинки и заканчивается другой. Одна и та же картинка дважды даёт цикл.
Референсные изображенияimage_urls (до 30)Картинки задают внешний вид (лицо, продукт, место), не фиксируя первый кадр. См. видео по референсам.

Оживить одну картинку (первый кадр)

Установите aspect_ratio в adaptive, и видео сохранит форму вашей картинки: фото 9:16 даст клип 9:16. Описывайте, что движется, а не то, что уже есть на картинке: модель её видит.

cURL
# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $KEY" \
  -d '{
  "model": "seedance-2.5",
  "input": {
    "prompt": "The model turns her head toward the camera and smiles as the wind lifts her hair, slow push-in, city traffic in the background",
    "image_url": "https://example.com/portrait.jpg",
    "duration": 6,
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "audio": true
  },
  "max_cost_usd": 3
}'

От одной картинки к другой (первый и последний кадр)

Добавьте end_image_url. Подходит для превращений (до и после, день в ночь, пустая комната в обставленную) и для бесшовных циклов.

cURL
# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $KEY" \
  -d '{
  "model": "seedance-2.5",
  "input": {
    "prompt": "Time-lapse: the empty plot becomes a finished house, workers moving fast, clouds racing",
    "image_url": "https://example.com/plot.jpg",
    "end_image_url": "https://example.com/house.jpg",
    "duration": 8,
    "resolution": "720p",
    "aspect_ratio": "adaptive"
  },
  "max_cost_usd": 3
}'

Из файла на вашем компьютере, на Python

Референсы должны быть https-ссылками. Для локального файла POST /v1/uploads даёт ссылку, куда отправить байты через PUT, и url, который передаётся как image_url (действует 14 дней). Изображения до 30 МБ.

Python
import os, time, uuid, requests

API = "https://api.revana.si/v1"
H = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

# 1. Upload the picture from your computer (skip this if it already has a public https link).
up = requests.post(f"{API}/uploads", headers=H, json={"content_type": "image/jpeg", "bytes": os.path.getsize("product.jpg"), "filename": "product.jpg"}).json()
with open("product.jpg", "rb") as fh:
    requests.put(up["upload_url"], data=fh, headers=up["upload_headers"]).raise_for_status()

# 2. Quote, then animate it. The clip starts on exactly this picture.
body = {"model": "seedance-2.5", "input": {
    "prompt": "The bottle slowly turns on the marble counter as morning light sweeps across the label, water droplets glisten",
    "image_url": up["url"], "duration": 5, "resolution": "720p", "aspect_ratio": "adaptive", "audio": True}}
quote = requests.post(f"{API}/generations/quote", headers=H, json=body).json()
print("price", quote["quoted_usd"])
key = str(uuid.uuid4())  # made once: resend with the same key after a timeout, a 429 or a 5xx
job = requests.post(f"{API}/generations", headers={**H, "Idempotency-Key": key},
                    json={**body, "max_cost_usd": quote["reserved_usd"]}).json()

# 3. Wait, then download.
while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=H).json()
if job["status"] == "succeeded":
    open("product.mp4", "wb").write(requests.get(f"{API}/generations/{job['id']}/content", headers=H).content)

Сколько стоит видео из изображения

Та же посекундная ставка, что и для текста в видео: 480p $0.09 · 720p $0.21 · 1080p $0.52, звук включён. Первый кадр может немного добавить к прайсовой ставке, поэтому эндпоинт quote (бесплатный) называет точную цену каждого запроса; передайте его reserved_usd как max_cost_usd. Неудачные генерации не оплачиваются. Калькулятор цены.

Промпты, которые работают для видео из изображения

  • Говорите, что меняется. «Она поворачивается и уходит из кадра» лучше, чем описание женщины, которая уже есть на фото.
  • Одно движение камеры. Медленный наезд, облёт, панорама влево или статичная камера. Два движения сразу в коротком клипе обычно мешают друг другу.
  • Сохраняйте свет. Упомяните свет, который есть на картинке («тёплый свет из окна»), чтобы клип не уплыл в другой стиль.
  • Добавьте звук. Seedance 2.5 создаёт его вместе с картинкой: «шаги по гравию, далёкий поезд».
  • Используйте чистую, резкую картинку примерно в формате результата. Текст и логотипы на картинке могут искажаться в движении; добавьте их в редакторе.

Больше примеров в руководстве по промптам Seedance 2.5.

Другие модели «из изображения в видео» на том же ключе

Сравнение моделей «из изображения в видео»
МодельДлительностьРазрешенияПервый и последний кадр720p за секунду со звуком
Seedance 2.54–30 s480p, 720p, 1080pДа$0.21
Seedance 2.04–15 s480p, 720p, 1080p, 4KДа$0.15
Kling 4.03–30 s720p, 1080pДа$0.18
Kling 3.03–15 s720p, 1080p, 4KДа$0.13
Veo 3.14, 6, 8 s720p, 1080p, 4KДа$0.40
Wan 3.02–30 s480p, 720p, 1080pДа$0.07
MiniMax H34–15 s768p, 2KДа$0.03 (768p)

FAQ

Умеет ли Seedance 2.5 делать видео из изображения?

Да. Отправьте image_url для первого кадра или image_url и end_image_url для первого и последнего кадра в том же запросе POST /v1/generations, что и для текста в видео. Клипы — от 4 до 30 секунд со звуком.

Сколько стоит Seedance 2.5 из изображения в видео?

480p $0.09 · 720p $0.21 · 1080p $0.52 за секунду со звуком на Revana. Первый кадр может немного добавить к цене; бесплатный эндпоинт quote называет точную цену.

Какие форматы и размеры картинок подходят?

Любая публичная https-ссылка на картинку JPEG, PNG или WebP или файл, загруженный через POST /v1/uploads (изображения до 30 МБ).

Сохранит ли видео соотношение сторон моей картинки?

Да, если aspect_ratio равен adaptive: клип принимает форму первого кадра.

Можно ли сделать бесшовный цикл?

Да: передайте одну и ту же картинку как image_url и end_image_url и опишите движение, которое возвращается к началу.

Создайте своё первое видео в Seedance 2.5

Один API-ключ для Seedance 2.5 и всех остальных видео- и графических моделей. Предоплаченные кредиты от $10, бесплатные стартовые кредиты, без подписки, оплачиваются только полученные клипы.