Руководство

Текст в видео и изображение в видео: пять режимов API

Большинство моделей видео принимают не только промпт. Можно начать с изображения, зафиксировать первый и последний кадры, передать референсные изображения для персонажей и продуктов или работать от готового клипа. Это руководство объясняет каждый режим, когда его использовать и как вызывать.

Пять режимов вкратце

Все режимы используют один эндпоинт, POST /v1/generations. Меняется только то, что вы передаёте рядом с промптом.

Режимы генерации видео
РежимЧто вы передаётеПодходит для
Текст в видеоa promptпоиска идей, b-roll, сцен, для которых нет изображений
Изображение в видеоначальный кадр как image_url и промптанимации предметных съёмок, иллюстраций и стоп-кадров с точным внешним видом
Первый и последний кадрimage_url и end_image_url, плюс промптпереходов, раскрытий и планов, которые должны закончиться на заданном изображении
Референсные изображениянесколько изображений как image_urls и промптсохранения единообразия персонажей, продуктов и мест в разных планах
Видео в видеоисходный клип и промптизменения стиля или переработки уже имеющегося материала

Не каждая модель поддерживает каждый режим. В таблице поддержки ниже — основные модели, а задачи каждой модели перечислены на её странице в разделе моделей.

Текст в видео

«Текст в видео» — самый простой режим: вы описываете план, а модель решает всё остальное — от лиц и декораций до цветов и композиции. Такая свобода полезна, когда вы ищете идеи или нужен универсальный материал: b-roll, установочные планы или абстрактные фоны.

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

Хороший текстовый промпт охватывает объект, действие, обстановку, камеру и свет, а также звук, если модель его генерирует. Больше советов по промптам — в нашем руководстве по Seedance 2.0.

Изображение в видео

В режиме «изображение в видео» ваше изображение становится первым кадром. Всё, что в нём есть (продукт, лицо, композиция и цвета), фиксируется в начале, и промпту остаётся описать только то, что происходит дальше. Это режим для анимации фото продуктов, иллюстраций и ключевой графики и для любого плана, где внешний вид должен быть точным.

Типичный рабочий процесс — сначала создать стоп-кадр моделью изображений, например Nano Banana Pro или GPT Image 2, довести его до нужного вида, а затем анимировать. Итерировать стоп-кадры дешевле и быстрее, чем видео.

Вот запрос «изображение в видео» для Seedance 2.0: клип 720p на 5 секунд со звуком стоимостью $0.75. Соотношение сторон adaptive подгоняет кадр под форму вашего изображения.

cURL
export REVANA_API_KEY="sr_live_..."

# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0",
    "input": {
      "prompt": "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
      "image_url": "https://example.com/coffee.jpg",
      "resolution": "720p",
      "duration": 5,
      "aspect_ratio": "adaptive",
      "audio": true
    },
    "max_cost_usd": 2
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
  -H "Authorization: Bearer $REVANA_API_KEY"
Python
import os
import time

import requests

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

resp = requests.post(f"{API}/generations", headers=HEADERS, json={
    "model": "seedance-2.0",
    "input": {
        "prompt": "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
        "image_url": "https://example.com/coffee.jpg",
        "resolution": "720p",
        "duration": 5,
        "aspect_ratio": "adaptive",
        "audio": True,
    },
    "max_cost_usd": 2,
})
resp.raise_for_status()
job = resp.json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()

if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("Failed:", job["error"])
Node.js
// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
  Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
  "Content-Type": "application/json",
};

const res = await fetch(`${API}/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "seedance-2.0",
    input: {
      prompt: "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
      image_url: "https://example.com/coffee.jpg",
      resolution: "720p",
      duration: 5,
      aspect_ratio: "adaptive",
      audio: true,
    },
    max_cost_usd: 2,
  }),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();

while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 5000));
  job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}

if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);

Описывайте движение, а не изображение: модель его и так видит. «Пар поднимается, чашку берут в руку» работает лучше, чем повторное «белая чашка кофе на деревянном столе».

Первый и последний кадры

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

Два кадра должны быть правдоподобными концами одного плана: та же сцена, композиция и свет. Если они слишком разные, модели приходится выдумывать крупное изменение за несколько секунд, и результаты становятся менее предсказуемыми. Этот беззвучный клип Kling 3.0 в 1080p на 5 секунд стоит $0.60:

Тело запроса
{
  "model": "kling-3.0",
  "input": {
    "prompt": "Time-lapse: the empty plot fills with a small wooden cabin as the camera holds still, clouds racing overhead",
    "image_url": "https://example.com/plot-empty.jpg",
    "end_image_url": "https://example.com/plot-cabin.jpg",
    "resolution": "1080p",
    "duration": 5,
    "audio": false
  },
  "max_cost_usd": 1
}

Seedance 2.5, Seedance 2.0, Seedance 2.0 Mini, Veo 3.1, Veo 3.1 Fast, Veo 3.1 Lite, Kling 3.0, Kling 3.0 Omni, Wan 3.0 и Grok Imagine Video 1.5 указаны в каталоге с первым и последним кадрами. Hailuo 2.3 принимает начальный кадр, но не конечный.

Референсные изображения

Референсные изображения — это не кадры. Модель использует их, чтобы узнать, как выглядит человек, продукт или место, а затем помещает их в новый план, описанный промптом. Поэтому референсы — режим для единообразия: один и тот же персонаж в десяти планах или один и тот же продукт в разной обстановке.

Передавайте изображения как image_urls и ссылайтесь на каждое по порядковому номеру в промпте, например «женщина с первого изображения держит сумку со второго изображения». Лимит зависит от модели: Seedance 2.5 принимает до 30, Wan 3.0 — до 10, Seedance 2.0 — до 9, Seedance 2.0 Mini — до 9, Veo 3.1 Fast — до 3 и Veo 3.1 Lite — до 3. В моделях Seedance передавайте в одном запросе либо кадры, либо референсы, но не то и другое.

Этот запрос Veo 3.1 Fast на 8 секунд в 720p со звуком стоит $0.80:

Тело запроса
{
  "model": "veo-3.1-fast",
  "input": {
    "prompt": "The man from the first image walks into the bakery from the second image, picks up a loaf and smiles at the camera. Bell over the door, quiet chatter.",
    "image_urls": [
      "https://example.com/man.jpg",
      "https://example.com/bakery.jpg"
    ],
    "resolution": "720p",
    "duration": 8,
    "aspect_ratio": "16:9",
    "audio": true
  },
  "max_cost_usd": 1.5
}

Видео в видео

«Видео в видео» начинается с уже имеющегося клипа. Исходник задаёт движение и тайминг, а промпт описывает, что должно измениться: новый стиль, новая обстановка или другие детали. Режим подходит для смены стиля живой съёмки, переработки прежней генерации или сохранения игры при смене внешнего вида.

Из моделей этого руководства «видео в видео» указано у Seedance 2.5, Kling 3.0 Omni и Wan 3.0, а Kling 3.0 Motion Control тоже работает от исходного видео. Входные данные для исходного клипа зависят от модели, поэтому проверьте страницу модели, прежде чем строить на ней что-то.

У некоторых моделей задачи с входным видео тарифицируются иначе. В Seedance 2.5 оплачиваемые секунды — это выход плюс входной клип по более низкой ставке «с входным видео»: клип 720p на 10 секунд из 10-секундного исходника стоит $3.00 против $2.50 за такой же клип по промпту. У Kling 3.0 Omni своя ставка для задач с входным видео — $0.13 за секунду в 720p.

Какие модели поддерживают какой режим

Из каталога Revana на октябрь 2026:

Режимы генерации, поддерживаемые каждой моделью
МодельТекстИзображениеПервый и последнийРеференсыВидео
Seedance 2.5yesyesyesyesyes
Seedance 2.0yesyesyesyesno
Seedance 2.0 Miniyesyesyesyesno
Veo 3.1yesyesyesnono
Veo 3.1 Fastyesyesyesyesno
Veo 3.1 Liteyesyesyesyesno
Kling 3.0yesyesyesnono
Kling 3.0 Omniyesyesyesyesyes
Wan 3.0yesyesyesyesyes
Hailuo 2.3yesyesnonono
Grok Imagine Video 1.5yesyesyesyesno

Меняет ли режим цену?

В основном нет. Модели видео тарифицируются по секундам на выходе, разрешению и, у некоторых моделей, звуку. 5-секундный клип Seedance 2.0 в 720p стоит $0.75, начинается ли он с промпта или с изображения, а добавление конечного кадра или референсных изображений цену по каталогу не меняет. Исключение — входное видео, о нём выше.

Стоимость каждой задачи резервируется на вашем предоплаченном балансе при отправке и списывается, только если задача завершилась успешно. Все ставки перечислены на странице цен.

Как выбрать режим

  • Материалов пока нет: начните с «текста в видео» или создайте стоп-кадр моделью изображений и анимируйте его.
  • Внешний вид должен быть точным: «изображение в видео» от утверждённого вами кадра.
  • Важна концовка: первый и последний кадры.
  • Один персонаж или продукт во многих планах: референсные изображения.
  • У вас уже есть материал: «видео в видео».

Поле или значение, которое модель не поддерживает, отклоняется с 422 до какого-либо списания, так что неверный режим ничего не стоит. Полный справочник по полям — в документации.

Готовы попробовать? Получите API-ключ и отправьте первый запрос.

Частые вопросы

Чем отличаются «текст в видео» и «изображение в видео»?

«Текст в видео» работает только по промпту, так что модель придумывает всё в кадре. «Изображение в видео» использует ваше изображение как первый кадр, так что внешний вид зафиксирован, а промпт описывает только движение.

«Изображение в видео» стоит дороже, чем «текст в видео»?

По ценам каталога — нет. Модели видео тарифицируются по секундам на выходе, разрешению и, у некоторых моделей, звуку. 5-секундный клип Seedance 2.0 в 720p в октябре 2026 года стоит $0.75 в обоих случаях.

Что такое первый и последний кадры?

Вы передаёте начальное изображение как image_url, а конечное как end_image_url, и модель генерирует движение между ними. Это удобно для переходов, раскрытий и циклов.

Сколько референсных изображений можно отправить?

Зависит от модели: Seedance 2.5 — до 30, Wan 3.0 — до 10, Seedance 2.0 — до 9, Seedance 2.0 Mini — до 9, Veo 3.1 Fast — до 3 и Veo 3.1 Lite — до 3.

Можно ли совмещать начальный кадр с референсными изображениями?

В моделях Seedance — нет: передавайте в одном запросе либо кадры, либо референсы, но не то и другое.

Какие модели поддерживают «видео в видео»?

Из основных моделей «видео в видео» указаны у Seedance 2.5, Kling 3.0 Omni и Wan 3.0, а также у Kling 3.0 Motion Control. Задачи каждой модели перечислены на странице моделей.

Пробуйте все режимы по одному ключу

Задачи «текст», «изображение», «кадры» и «референсы» используют на Revana один и тот же запрос. Предоплаченные кредиты от $10.