Руководство по использованию
Ray 3.2 из изображения в видео: превращаем статичное изображение в вертикальный короткий видеоклип
Превратите имеющиеся фотографии продуктов и портреты в вертикальные видеоклипы 9:16, плюс проверенный на практике трюк бесшовного цикла с end_image_url
TL;DR
- Что это: повторяемый рабочий процесс, который превращает уже имеющиеся у вас статичные изображения (например, фотографии продукта или портреты) в вертикальные короткие видеоклипы с помощью ray-3.2/image-to-video в асинхронном API задач hiapi.
- Ключевой факт, определяющий всё: у ray-3.2 i2v нет полей
aspect_ratioиduration. Форма клипа берётся из входного изображения, а длина всегда около 5 секунд. Чтобы получить вертикаль 9:16, подавайте статичное изображение 9:16. В этом вся хитрость. - Что нового по сравнению с нашим прошлым руководством: схема теперь принимает необязательный
end_image_url(последний кадр). Если использовать одно и то же изображение как первый и последний кадр, получится клип, заканчивающийся там, где начался, — именно это нужно для бесшовного цикла. - Проверка: каждый клип ниже сгенерирован для этой статьи в одном пакетном запуске fan-out. Три клипа 540p, $0.2145 каждый (всего $0.6435), на сервере каждый занял 41–58 секунд. Все три вернулись как MP4 540×960, 24fps, 5.04s, без звука.
Большинству команд коротких видео не хватает не идей. У них есть куча фотографий продуктов, рекламных статичных изображений и портретов авторов, но они никогда не оживают. Изображение в видео решает эту проблему: ваша картинка остаётся якорем, а модель добавляет движение. Это руководство охватывает эту задачу от начала до конца с Ray 3.2: подготовка статичного изображения, написание промпта движения, пакетная обработка, трюк с циклом и что исправлять при монтаже.
Изображение в видео или текст в видео: что вам нужно?
У Ray 3.2 на hiapi есть две отдельные конечные точки для разных задач коротких видео:
- Изображение в видео (эта страница): у вас уже есть картинка. Модель должна сохранить ваш продукт, вашу модель и ваш свет, только добавив анимацию. Подходит для демонстрации продукта, каталога в Reels, статичных изображений авторов и любых клипов, где точность бренда важнее новизны.
- Текст в видео: у вас есть идея, но нет материала. Модель компонует весь кадр. Если это ваш случай, наше руководство Рабочий процесс коротких видео Ray 3.2 из текста в видео описывает пакетную генерацию концептов только по промпту.
Это действительно разные рабочие процессы. В текст-в-виде вы выбираете вертикальный формат, передавая aspect_ratio: "9:16". В изображение-в-виде такого поля нет, поэтому композиция определяется до вызова API, при подготовке статичного изображения.
Запрос: три обязательных или часто используемых поля, одно новое необязательное
Мы проверили схему по полям на живом API 2026-11-01. Она закрытая, поэтому неизвестные ключи возвращают 400:
| Поле | Обязательно | Значения | Описание |
|---|---|---|---|
prompt |
Да | Текст | Описывайте движение, а не сцену. Сцена уже есть на вашем изображении |
image_url |
Да | Публичный URL | Первый кадр. Определяет соотношение сторон выходного видео |
resolution |
Нет | 540p, 720p, 1080p |
Единственное, за что вы платите (см. ниже) |
end_image_url |
Нет | Публичный URL | Необязательный последний кадр. Добавлен после того, как было написано наше руководство |
duration и aspect_ratio по-прежнему отклоняются напрямую (additional properties 'duration' not allowed). Другие возможные названия для последнего кадра, например last_frame_url, tail_image_url или end_frame_url, также отклоняются таким же образом. Поле называется именно end_image_url, и никак иначе.
Один вертикальный клип:
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Slow cinematic push-in toward the serum bottle, a single water droplet slides down the amber glass...",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}'
Вы получите data.taskId. Опрашивайте GET /v1/tasks/{taskId}, пока data.status не станет success (или fail), затем сразу скачивайте output[0].url, так как это временная ссылка с expireAt. В руководстве есть полный скрипт на Python для отправки/опроса/скачивания и описание ошибочных ответов, а быстрый старт охватывает ключи и основы API задач.
Цены: разрешение — единственный рычаг
Актуальные цены ray-3.2/image-to-video (из цен hiapi на момент написания; всегда перепроверяйте там):
| Разрешение | Цена за клип |
|---|---|
| 540p | $0.2145 |
| 720p | $0.429 |
| 1080p | $1.7145 |
Длина клипа фиксирована, соотношение сторон берётся из вашего изображения, поэтому вы никогда не платите дополнительно за вертикаль, и нет опции «более длинного клипа», которая позволила бы вам самостоятельно повысить тариф. Один клип 1080p стоит как восемь клипов 540p. Поэтому схема для коротких видео та же, что у любой модели с оплатой за клип: запустите тесты движения в 540p, затем перерендерите только победивший промпт + статичное изображение в 720p или 1080p для версии, которую будете публиковать. Полную картину затрат Ray 3.2 по обеим конечным точкам см. в разборе цен Ray 3.2 API.
Шаг 1: подготовьте статичное изображение 9:16 (отсюда берётся вертикаль)
Модель не может перекомпоновать ваш кадр, поэтому статичное изображение должно быть правильным до отправки:
- Сделайте его 9:16. Мы использовали статичные изображения 720×1280. В
540pони возвращаются как 540×960, нативная вертикаль, без необходимости обрезки после. Горизонтальная фотография продукта даст вам горизонтальный клип, поэтому сначала обрежьте или расширьте её до 9:16. - Оставьте запас для движения. Движение камеры приближает кадр. На нашем статичном изображении с сывороткой было много пустого фона над бутылкой, и наезд использовал это пространство, не обрезая крышку.
- Поместите хук в саму картинку. Первый кадр клипа — это ваше изображение, поэтому всё, что останавливает пролистывание (продукт, лицо, свет), должно уже быть на статичном изображении.
Оба статичных изображения для этой статьи сгенерированы с помощью gpt-image-2 как нативные изображения 9:16. В реальной работе вы будете использовать свои фотографии продуктов или портреты:

Шаг 2: описывайте движение, а не сцену
Изображение уже показывает, что в кадре. Промпту нужно только указать, как оно движется. Три вещи, которые сработали в этом пакете:
- Укажите одно движение камеры (наезд, мягкий дрейф, фиксированная камера) и скажите, что должно оставаться неподвижным.
- Дайте субъекту один-два физических такта, например, стекающая капля, скользящий свет или развевающиеся на ветру волосы. Именно это делает 5-секундный клип живым, а не похожим на панораму Ken Burns.
- Выбирайте движение, подходящее типу материала. Продукту нужны медленные, контролируемые изменения света и тени. Человек выдерживает более крупное, тёплое движение.
Клип с продуктом (обложка выше). Промпт:
Slow cinematic push-in toward the serum bottle, a single water droplet slides
down the amber glass, a band of warm light sweeps across the bottle from left
to right and makes the gold cap glint, the background stays dark and still,
premium skincare commercial
Наезд и световой блик сработали хорошо, форма флакона и золотая крышка сохранились. Одна честная оговорка: когда свет прошёл, чёрная резиновая груша пипетки стала более светлой, почти металлической. Для реального SKU это тот самый дрейф деталей, на который укажет команда бренда. Проверяйте детали продукта покадрово перед публикацией, и если какая-то часть постоянно дрейфует, попробуйте более слабую команду светового блика или оставьте движение только на фоне.
Портрет / статичное изображение автора. Промпт:
The wind lifts her curls, she turns her head slightly toward the camera and
her half-smile widens into a warm smile, the golden-hour backlight flickers
through her hair, the camera holds steady with a very gentle drift, natural
lifestyle feel
Лицо, свитер и свет золотого часа остались согласованными, поворот головы и улыбка получились. Однако движение камеры у Ray 3.2 оказалось более выраженным, чем подразумевает «очень мягкий дрейф»: к последнему кадру она сместилась на другую сторону кадра, а линия горизонта позади неё тоже сдвинулась. Для кадров с человеком ожидайте, что модель будет трактовать ваш промпт движения вольно. Если вам нужен фиксированный кадр, укажите это явно, как мы сделали в промпте для цикла ниже.
Шаг 3: трюк с циклом через end_image_url
Циклы отлично работают в лентах коротких видео. Клип, который может бесшовно начаться заново, будет повторяться, и его также можно использовать как фон для субтитров или аннотаций к продукту. Необязательный end_image_url у Ray 3.2 делает это простым: используйте одно и то же статичное изображение как первый и последний кадр, и модель будет вынуждена вернуться к началу.
{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Seamless loop: the warm light slowly brightens and dims across the serum bottle, water droplets glisten, a faint wisp of mist drifts past the stone and fades out, the camera stays locked off, the bottle does not move",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"end_image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}
Мы измерили, а не оценили на глаз. Мы извлекли первый и последний кадры каждого клипа и сравнили их с помощью SSIM (1.0 означает полное совпадение):
| Клип | end_image_url |
SSIM первого и последнего кадра |
|---|---|---|
| Цикл (то же статичное изображение как последний кадр) | Да | 0.958 |
| Наезд на продукт | Нет | 0.654 |
| Портрет | Нет | 0.410 |
С закреплённым последним кадром клип заканчивается почти там же, где начался, — достаточно близко, чтобы простое повторение в редакторе или автоповтор на платформе не давало заметного скачка. Без закрепления клип заканчивается в новой позиции, что нормально для склейки, но не для цикла. Две вещи, которые стоит запомнить:
- Держите движение в цикле периодическим. Свет ярче и тускнее, туман вплывает и выплывает, фиксированная камера — всё это подходит. Наезд не может убедительно «вернуться» за пять секунд.
- Мы тестировали только цикл с одним и тем же изображением. Передача другого последнего кадра (например, первый кадр — закрытая коробка, последний — открытая) — это именно то, для чего предназначено поле, но мы не проверяли такие результаты здесь, поэтому протестируйте, прежде чем строить на этом рекламную кампанию.
Шаг 4: пакетная обработка: сначала fan out, затем сбор
API задач асинхронный, поэтому не рендерите по одному клипу за раз. Сначала отправьте все пары статичное изображение + промпт, сохраните каждый taskId на диск в момент получения, а затем опрашивайте:
for each (still, prompt) pair:
taskId = POST /v1/tasks (model=ray-3.2/image-to-video, input={...})
persist taskId immediately # the task is billed at submit
for each saved taskId:
poll GET /v1/tasks/{taskId} until status in ("success", "fail")
on success: download output[0].url now (it expires)
Наш пакет из трёх клипов был отправлен подряд, время на сервере составило 44 секунды (продукт), 41 секунда (цикл) и 58 секунд (портрет). Поскольку они выполнялись параллельно, весь пакет занял примерно столько же, сколько самый медленный клип, — с учётом 8-секундного интервала опроса реальное время чуть больше минуты. Если опрос не удался из-за сетевого сбоя, повторите запрос с тем же id. Повторная отправка создаст и выставит счёт за второй клип.
Шаг 5: завершение в редакторе
API даёт вам исходный материал, а не готовый пост:
- Нет аудио. У всех трёх клипов только один видеопоток H.264, без звуковой дорожки. Добавьте в редакторе популярный звук, закадровый голос или субтитры.
- 5 секунд — это один такт. Сложите три-четыре клипа (например, наезд на продукт → цикл как фон для субтитров → реакция автора), смонтируйте версию на 15–20 секунд и делайте жёсткие склейки в такт.
- Увеличивайте только победителей. Перезапустите выбранное статичное изображение + промпт в 720p или 1080p для финального экспорта, а не рендерите весь пакет в высоком разрешении.
FAQ
Как получить вертикальный клип 9:16 из ray-3.2 изображение в видео? Подайте входное изображение 9:16. Параметра aspect_ratio нет, выход следует форме входа. Статичное изображение 720×1280 в 540p возвращается как клип 540×960.
Можно ли сделать клип длиннее 5 секунд? На этой конечной точке нет. Поля duration нет, его отправка возвращает 400. Каждый сгенерированный нами клип длится 5.04 секунды (121 кадр при 24fps). Складывайте клипы при монтаже, чтобы получить более длинную версию.
Поддерживает ли Ray 3.2 i2v последний кадр? Да. Необязательное поле end_image_url задаёт финальный кадр. Если передать то же изображение как image_url, получится зацикливающийся клип (в нашем тесте SSIM первого и последнего кадра составил 0.958).
Генерирует ли он звук? Нет, выходной MP4 без звука.
Сохранит ли он мой продукт точно таким же? В наших тестах форма, цвет и общая композиция сохранились хорошо, но мелкие детали могут дрейфовать при сильном движении света (у нашей груши пипетки изменился цвет). Проверяйте детали продукта перед публикацией.
Сколько стоит пакет? Оплата только по разрешению и количеству клипов: $0.2145 для 540p, $0.429 для 720p, $1.7145 для 1080p. Наш тестовый пакет из трёх клипов стоил $0.6435.
Начните оживлять ваши статичные изображения
Ray 3.2 изображение в видео уже доступен в асинхронном API задач. Откройте страницу модели ray-3.2/image-to-video, чтобы увидеть текущие параметры и цены, затем возьмите три существующих статичных изображения 9:16 и запустите их в 540p. Вы получите тестовый пакет значительно меньше чем за доллар. Сравниваете модели для той же задачи? Посмотрите, как Kling 3.0 справляется с короткими видео из изображения.
Похожие статьи
Все статьи →-
Руководство по использованию
Что такое GPT Image 2.6? Редактирование через markup и известные характеристики
Вся информация о GPT Image 2.6 из спецификации OpenAI API, как пользоваться новым параметром редактирования markup и что пока не объявлено.
-
Руководство по использованию
Сколько стоит API Vidu Q4 Preview? 540p — $0,0515 за секунду
Оба режима стоят одинаково: как тарифицируются пять разрешений и длительность 3–16 секунд, сколько роликов можно сделать за $10 и как цены соотносятся с другими видео-моделями платформы.
-
Руководство по использованию
Recraft V4.1 Flash для карточек товаров в e-commerce: $0.01 за изображение, каталог оптом
Один реальный параллельный пакет на recraft-v4.1-flash/text-to-image: карточки товаров и сюжетные изображения, измеренная белизна фона, время выполнения и пакетный скрипт.