Введение
LTX 2.5 Изображение в видео оживляет переданный вами стартовый кадр на 5–20 целых секунд в 720p, 1080p, 2K или 4K. Обязательны image_url и prompt; last_image_url добавляет необязательный финальный кадр, а duration_seconds, resolution и seed работают так же, как в режиме «Текст в видео». Поля aspect_ratio нет: стартовый кадр задаёт персонажа и композицию и определяет формат результата. Клипы возвращаются со сгенерированной звуковой дорожкой, задачи выполняются асинхронно. Загружайте только изображения, которые вы вправе использовать; за применение результата отвечаете вы.
Выберите режим по исходному материалу
| Исходный материал | Режим |
|---|---|
| Письменный бриф задаёт сцену, действие, камеру и при необходимости звук. | LTX 2.5 Текст в видео |
| Утверждённое стартовое изображение задаёт объект и композицию, а инструкция направляет последующее движение. | LTX 2.5 Изображение в видео |
Ключевые возможности и особенности
Стартовый кадр соблюдается точно
Внешность, гардероб, декорации и свет берутся из image_url, и этот кадр соблюдается точно. Это надёжный путь к буквальному результату: стартовый кадр без цензуры возвращается буквально, а не смягчённым. Раз изображение уже несёт весь облик, промпту остаётся описать только то, что меняется после него.
Необязательный кадр для точки, где план заканчивается
last_image_url фиксирует финальную композицию и допустим только вместе с image_url. Он ограничивает концовку, а не путь к ней: движение между двумя кадрами по-прежнему генерируется, и на длинном клипе середина может уйти далеко. Два кадра, расходящиеся по свету или гардеробу, дают заметный «торг» между ними, поэтому готовьте их как связную пару.
Та же длина, разрешение и звук, что у текстового эндпоинта
duration_seconds — от 5 до 20 целых секунд, и чем длиннее клип, тем дальше он уходит от переданного финального кадра. resolution предлагает 720p (по умолчанию), 1080p, 2k (около 2560 px в ширину) и 4k. В результате есть сгенерированная звуковая дорожка без поля для её отключения; заранее рассчитывайте заглушить или заменить её на монтаже, если нужен собственный микс.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
prompt | Да | Обязателен. Опишите, что меняется после кадра — действие, камеру, свет, — а не сам кадр. Не менее 1 символов |
image_url | Да | Стартовый кадр. Он фиксирует субъект и композицию и задаёт форму результата. |
last_image_url | Нет | Необязательный финальный кадр, допустим только вместе с |
resolution | Нет | 720p, 1080p, 2k или 4k. 2k приходит шириной около 2560 px. |
duration_seconds | Нет | Целые секунды, от 5 до 20. Чем длиннее клип, тем дальше он уходит от присланного финального кадра. |
seed | Нет | Держите неизменным при повышении разрешения, чтобы изменилась ровно одна переменная. |
Стоимость
| Спецификация | Стоимость |
|---|---|
| $0.09 / секунду |
| $0.13 / секунду |
| $0.19 / секунду |
| $0.30 / секунду |
Сценарии использования
Смена времени суток между двумя утверждёнными кадрами
В примере beach-to-bonfire поле image_url показывает пару на пляже на закате, а last_image_url — тех же двоих ночью, укутанных в одно одеяло у костра. Запрос длится 10 секунд в 1080p, и промпт описывает переход, а не пункт назначения: солнце садится, свет костра берёт верх. Зафиксированная концовка позволяет модели придумать середину, не проскочив мимо уже утверждённого кадра.
От раскадровки к раскадровке для монтажа
Когда план должен начаться на одном кадре раскадровки и закончиться на другом, передайте оба как image_url и last_image_url. Выходная композиция тогда стыкуется со следующей склейкой — именно это делает сгенерированный клип пригодным для таймлайна, а не только как отдельный фрагмент.
Движение для готового кадра
Кадр candlelit-tub уже содержит свечи, эмаль и мокрый изумрудный шёлк, поэтому его промпт описывает только изменение: погружение в воду, руки, проведённые по мокрым волосам, открывающиеся навстречу камере глаза. Пример deco-pool-backfall — наоборот, физический момент: падение спиной в воду, поднимающиеся пузыри и блики, ползущие по колоннам, пока камера опускается вместе с ней.
Руководство по промптам и практические советы
Описывайте то, что меняется, а не то, что уже есть
Всё, что видно на стартовом кадре, задаёт изображение. Потратьте промпт на то, кто движется, куда и с какой скоростью, а затем на камеру и перемены света. Промпт candlelit-tub начинается с первого действия ("She pushes up off the rim of the tub") и заканчивается на "Slow drift-in, warm candle light only".
Назовите точку приземления, если передаёте финальный кадр
С last_image_url укажите в промпте, что план заканчивается на переданном финальном кадре, и опишите, что происходит по пути. Бриф с костром делает ровно это: "Begin on the two of them on the beach at sunset and end on the supplied final frame". Прежде чем что-либо писать, согласуйте персонажей, гардероб и свет между двумя изображениями.
Соразмеряйте длину с пройденным путём
Примеры с одним действием длятся 5 секунд; переход от заката к ночи занимает 10. Начните с короткого клипа и проверьте персонажа, контуры, свет и непрерывность камеры по всему результату, прежде чем удлинять. Кадры с водой, как пример с бассейном, просматривайте покадрово: именно в воде оживлённый кадр чаще всего разваливается.
Режиссируйте звук и зафиксируйте seed
Поскольку аудио генерируется всегда, впишите звук в промпт: бриф с бассейном просит "no music, only muffled underwater tone". Когда движение получилось, оставьте seed и промпт без изменений и поднимите только resolution. Seed делает проходы сопоставимыми, но не покадрово одинаковыми, поэтому ещё раз проверьте финальный рендер в полном разрешении.
Быстрый старт API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "lightricks/ltx-2.5/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.












