HiAPI
Блог

Руководство по использованию

Veo 3.1 Видео из изображения: превратите один кадр в короткий рекламный ролик через API

От одного продуктового кадра за $0.03 до вертикального ролика 9:16 с нативным аудио всего за 115 секунд — запустите полный рабочий процесс veo-3.1/image-to-video в task API hiapi, включая реальные выходные данные, цикл черновиков на быстром уровне и пакетный конвейер.

Jul 13, 2026
Veo 3.1 Видео из изображения: превратите один кадр в короткий рекламный ролик через API

В производстве коротких видео есть жестокая арифметика: TikTok и Reels выигрывают за счёт объёма публикаций, но один отполированный продуктовый ролик может съесть целый день на съёмку, монтаж и звуковой дизайн. Модель Veo 3.1 «изображение в видео» от Google (veo-3.1/image-to-video) сжимает этот конвейер до двух вызовов API — дешёвый кадр, задача на видео — и возвращает вертикальный ролик, в котором уже сведено нативное аудио.

Ниже — полный результат, который этот конвейер сгенерировал для статьи. Исходное изображение за $0.03, один вызов API, ожидание 115 секунд:

Включите звук — глухой удар при приземлении, низкочастотный пульс окружения и шипение тумана полностью сгенерированы моделью. Здесь ничего не проходило ручной монтаж, цветокоррекцию или звуковой дизайн. В этом руководстве мы построим этот ролик от начала до конца через task API hiapi, а затем масштабируем тот же рабочий процесс в пакетный конвейер для производства коротких вариантов.

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

Текст в видео отлично подходит для исследований, но короткий коммерческий контент обычно начинается с материала, который у вас уже есть: фотографий продукта, изображений упаковки, кадров постера. «Изображение в видео» сохраняет эту визуальную идентичность и добавляет движение. Для формата TikTok/Reels у veo-3.1/image-to-video особенно важны три свойства:

  1. Выходные данные следуют за соотношением сторон входного изображения. Параметра aspect_ratio нет — модель наследует композицию от предоставленного изображения. Дайте ей вертикальный кадр 9:16, и вы получите вертикальное видео 9:16. Оба ролика в этой статье выводятся точно в 1080×1920 и 720×1280, потому что исходные кадры имеют формат 9:16. Ваши композиционные решения достаточно принять один раз на этапе изображения.
  2. Нативное аудио. Каждый ролик сопровождается дорожкой AAC 48 кГц, сгенерированной по вашему промпту — фоли, эмбиент и музыкальные текстуры. Для короткого формата автовоспроизведение без звука конвертирует хуже, чем контент со звуком, а это избавляет от целого этапа монтажа.
  3. Разрешения под платформы. 720p для черновиков, 1080p для вертикали качества ленты, 4k для ролика, который одновременно служит мастер-копией для других площадок.

Структура входных параметров (проверено на живом API)

Перед написанием руководства мы протестировали живой эндпоинт. Структура параметров строгая — неизвестные поля отклоняются с 400, так что не гадайте:

Поле Обязательно Тип Значения
prompt Рекомендуется string Указания по движению, камере и аудио
image_url Да string Публично доступный URL изображения
resolution Да string 720p, 1080p, 4k
duration Да integer 4, 6 или 8 (секунд)

Две вещи, о которых стоит знать заранее: image_url в единственном числе — это модель с одним референсом, а не мультиимиджевый микшер — и URL должен быть публично доступен для скачивания (разместите его на собственном CDN или объектном хранилище; подписанные ссылки на localhost не подойдут).

Шаг 1 — сгенерируйте исходный кадр

Подойдёт любое изображение 9:16, включая настоящие фотографии продукта. Мы сгенерировали исходное изображение в gpt-image-2 за $0.03, чтобы весь конвейер остался внутри одного API:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2/text-to-image",
    "input": {
      "prompt": "Vertical product hero shot of a chunky retro basketball sneaker in wolf-gray suede with volt yellow laces, floating at a slight tilt above a wet concrete pedestal, dramatic teal-to-amber gradient backdrop, fine mist and dust particles suspended in hard rim light, ultra-sharp commercial product photography, no text, no logos",
      "aspect_ratio": "9:16",
      "resolution": "1K"
    }
  }'

Правила композиции для хорошего исходника i2v те же, что вы дали бы фотографу предметной съёмки, плюс одно: оставьте запас для движения. Наш кроссовок парит над постаментом именно для того, чтобы у видеомодели было явное физическое действие — уронить кроссовок на камень. Субъект, застывший в действии, даёт Veo завершаемую историю; статичное центрированное изображение упаковки не даёт ничего, и вы получите лишь заполнение дрейфующим кадром.

Шаг 2 — отправьте задачу на видео

Тот же эндпоинт /v1/tasks, другая модель. Промпт должен направлять три канала одновременно: движение субъекта, камеру и аудио.

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1/image-to-video",
    "input": {
      "prompt": "The sneaker slowly rotates about 90 degrees as the camera pushes in from a low angle. Dust particles drift through the rim light. The shoe settles onto the wet stone pedestal with a deep, satisfying thud, sending a soft ring of mist rolling off the edges. A warm light sweep travels across the suede texture. Subtle bass-heavy electronic pulse builds in the background with a low whoosh on the landing. Cinematic product commercial, smooth stabilized motion, no text overlays.",
      "image_url": "https://your-cdn.example.com/stills/sneaker-916.jpg",
      "resolution": "1080p",
      "duration": 6
    }
  }'

Ответ немедленно возвращает ID задачи:

{"code": 200, "data": {"taskId": "tk-hiapi-01KXCTHP6F6VXQ9XZCSCCEEEMM"}, "message": "success"}

Обратите внимание, что промпт написан в порядке воспроизведения ролика: вращение → наезд → приземление → световой проход, а аудиоподсказки прикреплены к моментам, которым они принадлежат («глухой удар» при приземлении, пульс под ним). Veo очень буквально следует порядку событий в промпте — именно поэтому его можно скриптовать.

Шаг 3 — опрашивайте и скачивайте

Задачи на видео асинхронны. Опрашивайте задачу, пока status не переключится на success, а затем немедленно скачайте результат — этот URL является временной ссылкой с меткой expireAt, а не постоянным хранилищем:

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

def wait_and_download(task_id: str, out_path: str, timeout_s: int = 900):
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        task = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
        if task["status"] == "success":
            url = task["output"][0]["url"]          # temp link — expires!
            clip = requests.get(url, timeout=120).content
            with open(out_path, "wb") as f:
                f.write(clip)                        # persist to your own storage now
            return out_path
        if task["status"] == "fail":
            raise RuntimeError(task.get("error"))
        time.sleep(10)
    raise TimeoutError(task_id)

В нашем запуске 6-секундный ролик 1080p занял 115 секунд от отправки до завершения. Это достаточно быстро, чтобы встроить в контент-конвейер без очереди на входе.

Дешёвые черновики, финальная доводка: двухуровневый рабочий процесс

У Veo 3.1 есть быстрый уровень — veo-3.1-fast/image-to-video — с точно такой же структурой входных данных и ценой менее половины за секунду. Это открывает рабочий процесс, позаимствованный у фотографии: сначала полароид, потом плёнка. Итерируйте промпт движения на быстром уровне в 720p и перерендеривайте только победивший промпт на стандартном уровне.

Ниже черновик на быстром уровне с точно тем же промптом и исходным кадром (6 секунд, 720p, $1.50, готово за 58 секунд):

Черновик ловит те же биты — вращение, приземление, туман — но детализация текстуры заметно проще, а аудиомикс площе. Для итераций промпта это всё, что нужно: вы проверяете режиссуру, а не финальную полировку. Оба ролика в этой статье сняты с первого дубля; быстрый уровень — это способ убедиться, что стандартный дубль — единственный, за который вы платите.

Масштабирование до массового производства

Стратегия короткого формата — игра объёмов: на каждый продукт вам нужно 5–10 вариантов для тестирования хуков. Поскольку всё работает через один асинхронный эндпоинт, пакетная обработка сводится к циклу: сначала отправьте все задачи, потом соберите результаты.

STILLS = [
    ("sneaker-916.jpg",  "rotates and lands on the pedestal with a deep thud..."),
    ("bottle-916.jpg",   "condensation beads race down the glass as camera orbits..."),
    ("headphones-916.jpg","earcup unfolds in slow motion, soft click, synth swell..."),
]

task_ids = []
for still, motion in STILLS:
    r = requests.post(API, headers=HEADERS, json={
        "model": "veo-3.1-fast/image-to-video",   # draft tier for the first sweep
        "input": {
            "prompt": motion,
            "image_url": f"https://your-cdn.example.com/stills/{still}",
            "resolution": "720p",
            "duration": 6,
        },
    }, timeout=60).json()
    task_ids.append(r["data"]["taskId"])

for i, tid in enumerate(task_ids):
    wait_and_download(tid, f"draft-{i}.mp4")

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

Сколько это стоит

Согласно ценам hiapi, оба уровня тарифицируются по секундам выходного видео:

Модель Цена Ролик 4 секунды Ролик 6 секунд Ролик 8 секунд
veo-3.1/image-to-video $0.57/s $2.28 $3.42 $4.56
veo-3.1-fast/image-to-video $0.25/s $1.00 $1.50 $2.00

Всё, что показано в этой статье — один исходный кадр, одно изображение обложки, один быстрый черновик, один финальный вариант 1080p — обошлось в $4.98 по API. Рабочий процесс из трёх быстрых черновиков плюс одного стандартного финала стоит около $8 за готовую вертикаль, что на порядок отличается от съёмочного дня.

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

Как управлять соотношением сторон? Никак — выходные данные наследуют формат входного изображения. Для TikTok/Reels сгенерируйте или обрежьте исходный кадр до 9:16 перед отправкой. Наш кадр 9:16 дал точный вывод 1080×1920.

Аудио действительно генерируется? Да. Оба ролика выше содержат сгенерированную моделью дорожку AAC 48 кГц — фоли (глухой удар при приземлении), эмбиент и музыкальные текстуры, всё управляется промптом. Описывайте звуки в промпте в те моменты, когда они должны происходить.

Сколько времени занимает генерация? В наших измеренных запусках: 6 секунд/720p на быстром уровне — 58 секунд, 6 секунд/1080p на стандартном уровне — 115 секунд. Планируйте несколько минут на ролик, а для пакетной обработки используйте схему «сначала отправить всё, потом собрать».

Можно ли использовать настоящие фотографии продукта вместо сгенерированных кадров? Конечно — это основной сценарий использования. Изображение должно быть публично доступно по URL. Сохраняйте чёткость субъекта, оставляйте запас для движения и описывайте желаемое движение в промпте.

Когда стоит платить за 4k? Когда вертикаль одновременно служит мастер-активом — обрезайте источник 4k для размещений в ленте, веб-баннеров и платных блоков. Для доставки только в ленту 1080p — это разрешение, до которого платформа всё равно перекодирует.

Опубликуйте свой первый ролик

Весь конвейер — это два POST и один опрос: кадр на входе, вертикальная реклама со звуком на выходе, примерно две минуты. Получите свой API key, направьте фрагменты кода выше на лучшую фотографию продукта, запустите быстрый черновик 720p — шесть секунд за $1.50, это самый дешёвый кастинг, который вы можете заказать. Полные параметры и живые примеры — на странице модели veo-3.1/image-to-video, а если вы сравниваете движки i2v, наши рецепты промптов для Hailuo 2.3 «изображение в видео» отлично подойдут для сравнения бок о бок.

Похожие статьи

Все статьи →

Начните работать с постоянными артефактами ИИ

Получите API-ключ и вызывайте модели изображений, видео и аудио через один API на основе tasks.

Читать документацию API