Veo 3.1 Ingredients to Video: создание видео из изображений в Gemini и Vertex AI | AiManual
AiManual Logo Ai / Manual.
13 Янв 2026 Гайд

Veo 3.1 Ingredients to Video: полный гайд по превращению картинок в кино через Gemini API

Пошаговый гайд по использованию Veo 3.1 для генерации видео из изображений через Gemini API и Vertex AI. Код, промпты, консистентность персонажей.

Veo 3.1 Ingredients to Video: почему это не просто очередной апгрейд

Google выпустил Veo 3.1, и все зациклились на "улучшенном качестве видео". Это скучно. Реальная фишка — Ingredients to Video. Теперь можно скормить модели изображение и получить из него динамичное видео, где персонаж сохраняет лицо, а фон не превращается в психоделический кошмар. Если вы пытались сделать что-то подобное раньше, то знаете: обычно получается или мультяшный урод, или полная смена персонажа через 3 секунды.

Что изменилось на самом деле: Veo 3.1 научился понимать не просто "картинку", а её семантические компоненты — позу человека, выражение лица, окружение. И использовать это как фундамент для анимации, а не как случайную подсказку.

Зачем это вообще нужно? (Реальные кейсы вместо маркетинга)

Давайте без "революции в контенте". Вот конкретные ситуации, где Ingredients to Video экономит время и нервы:

  • Консистентность в сторис: У вас есть фото продукта или основателя компании. Нужно сделать 10 вертикальных видео для Instagram Reels/TikTok, где объект "оживает" с разными действиями. Раньше приходилось каждый раз заново генерировать персонажа и молиться, чтобы он был похож. Теперь — загружаете фото, меняете промпт, получаете серию.
  • Прототипирование рекламы: Дизайнер нарисовал статичный макет. Маркетолог хочет показать, как это могло бы двигаться в видеоформате. Вместо недели работы motion-дизайнера — 5 минут работы с API.
  • Персонализированный контент: В образовательном приложении можно взять аватарку ученика и создать короткое видео, где этот аватар объясняет тему. Психологически это работает лучше, чем безликая анимация.
💡
Если вам интересно, как Google вообще определяет, было ли видео создано ИИ, у нас есть подробный разбор их нового инструмента детекции в приложении Gemini. Это полезно, чтобы понимать, какие артефакты выдают синтетический контент.

Как это работает изнутри (без магии)

Veo 3.1 не "оживляет" картинку в прямом смысле. Он использует её как conditioning input. Модель извлекает ключевые признаки: поза тела, расположение объектов в кадре, цветовая палитра, стиль. Затем она пытается сгенерировать видео, где начальный кадр максимально близок к входному изображению, а последующие кадры развивают действие, сохраняя извлечённые признаки.

Почему раньше это не работало? Потому что диффузионные модели для видео плохо справлялись с temporal consistency (временной согласованностью). Персонаж мог моргнуть и внезапно получить другую форму носа. В Veo 3.1 добавили механизм явного контроля через spatial-temporal attention layers, которые "привязывают" ключевые точки изображения к соответствующим точкам в видео-потоке.

1 Подготовка изображения: как не испортить всё на старте

Первая ошибка — думать, что подойдёт любая картинка. Нет.

Что работает хорошо Что сломает результат
Человек в полный рост или по пояс на нейтральном фоне Сильно зашумлённые, размытые или низкокачественные фото
Чёткий объект в центре кадра (продукт, животное) Изображения с множеством мелких деталей (толпа людей, лес)
Хорошее освещение, контрастные цвета Сильные тени на лице, пересветы

Размер изображения? Идеально — 1024x1024 для квадратного видео, 768x1024 для вертикального (помните, Veo 3.1 теперь поддерживает 9:16). Не загружайте гигапиксельные фото — модель всё равно даунскейлит их до своего внутреннего разрешения.

2 Работа через Gemini API: код, который работает

Всё взаимодействие идёт через Gemini API. Google пока не выкатил отдельный Veo API (хотя, скорее всего, выкатит), поэтому используем модель Gemini, которая умеет вызывать Veo как инструмент.

Шаг 1: Установка и аутентификация

pip install google-generativeai
import google.generativeai as genai
import PIL.Image

# Ваш API ключ из Google AI Studio
# НЕ коммитьте это в Git, используйте переменные окружения
GENAI_API_KEY = os.environ.get("GEMINI_API_KEY")
genai.configure(api_key=GENAI_API_KEY)

Шаг 2: Загрузка изображения и формирование промпта

# Открываем изображение
image = PIL.Image.open("portrait.jpg")

# Промпт — это ключевой момент. Он должен описывать ДЕЙСТВИЕ, а не внешность.
# Внешность модель возьмёт из изображения.
prompt = "Create a 5-second video where this person is smiling and then giving a thumbs up. The background should be a modern office. The style should be realistic, cinematic."

# Альтернативный промпт для продукта:
# "Animate this product rotating 360 degrees slowly on a white background. Show subtle reflections."

Ошибка новичка: Писать в промпте "a man with brown hair and blue eyes". Модель увидит это на картинке. Если вы укажете несовпадающие признаки, она может попытаться их изменить, что приведёт к артефактам. Описывайте только то, чего нет на исходнике: действия, эмоции, изменение окружения.

Шаг 3: Вызов модели с указанием инструмента

# Используем Gemini 2.0 Flash или Pro — они умеют работать с инструментами
model = genai.GenerativeModel('gemini-2.0-flash-exp')

# Формируем сообщение с изображением и промптом
response = model.generate_content(
    [
        prompt,
        image
    ],
    tools=["veo_video_generation"]  # Явно указываем, что хотим использовать Veo
)

# Ответ содержит метаданные и ссылку на сгенерированное видео
if hasattr(response, 'candidates') and response.candidates:
    # Извлекаем информацию о видео
    video_metadata = response.candidates[0].content.parts[0]
    print(f"Video generated: {video_metadata.video_uri}")
    print(f"Duration: {video_metadata.video_duration_seconds}s")
    print(f"Resolution: {video_metadata.video_resolution}")

Готово. Видео будет сгенерировано на серверах Google, и вы получите временную ссылку для скачивания (обычно в формате MP4, H.264). Ссылка живет несколько часов.

💡
Если вы планируете автоматизировать сложные workflow с участием ИИ (например, генерировать видео на основе данных из таблицы), изучите статью про агентные workflow в Gemini 3 Flash. Там разбираются именно такие сценарии — когда модель сама решает, какие инструменты вызывать и в каком порядке.

3 Настройка параметров: duration, aspect_ratio, upscaling

По умолчанию Veo генерирует 5-секундные видео в разрешении 1280x720. Но в 3.1 появились важные настройки, которые передаются через system instructions или отдельные параметры в инструменте.

# Пример промпта с явным указанием параметров
advanced_prompt = """
Generate a video from the provided image with the following specifications:
- Duration: 8 seconds
- Aspect ratio: 9:16 (vertical)
- Upscale to 4K resolution
- The person should slowly turn their head to the left and smile.
- Add a subtle camera pan to the right.
"""

# В некоторых версиях API параметры передаются отдельно
# (конкретный синтаксис может меняться, следите за документацией)
response = model.generate_content(
    [advanced_prompt, image],
    tools=[{
        "name": "veo_video_generation",
        "parameters": {
            "duration_seconds": 8,
            "aspect_ratio": "9:16",
            "upscale": True
        }
    }]
)

Апскейлинг до 4K — отдельная фича. Не путайте с простым увеличением разрешения. Veo использует модель супер-разрешения, которая добавляет детали, а не просто растягивает пиксели. Но включайте её только для финального рендера — генерация в 4K занимает больше времени и стоит дороже.

Работа через Vertex AI: для production-пайплайнов

Если вам нужно генерировать десятки видео в день, интегрировать процесс в ваше приложение или нужен контроль над регионом обработки данных — используйте Vertex AI.

Основные отличия от прямого Gemini API:

  • Predict endpoint: Стабильный REST API с гарантиями SLA.
  • Batch processing: Можно отправить массив изображений и промптов, получить все видео асинхронно.
  • Custom tuning: Теоретически можно дообучить модель на своих данных (хотя для Veo это пока экспериментально).
  • Логирование и мониторинг: Всё в Vertex AI Pipeline с трейсингом.
# Пример вызова через Vertex AI Python SDK
from google.cloud import aiplatform
from vertexai.preview.vision_models import VideoGenerationModel

# Инициализация
aiplatform.init(project="your-project-id", location="us-central1")

model = VideoGenerationModel.from_pretrained("veo-3.1")

response = model.generate_video(
    prompt=prompt,
    image=image,  # Может быть PIL.Image или URI в Cloud Storage
    duration_seconds=6,
    aspect_ratio="9:16",
    upscale=True
)

# Результат сохраняется в Cloud Storage bucket вашего проекта
print(response.video_uri)  # gs://your-bucket/veo-output/...

Внимание на стоимость: Vertex AI тарифицируется отдельно от Gemini API. Генерация видео через Veo — одна из самых дорогих операций. На момент написания: ~$0.05 за 1 секунду видео в HD, 4K дороже. Всегда проверяйте актуальные цены в документации, прежде чем строить массовый пайплайн.

Проблемы, которые всё ещё остаются (чтобы не строить иллюзий)

Veo 3.1 Ingredients to Video — это большой шаг вперёд, но не панацея.

  • Движения губ: Если вы хотите, чтобы персонаж говорил — забудьте. Модель не синхронизирует движение губ с аудио. Для этого нужны специализированные решения вроде Lemon Slice-2.
  • Сложные взаимодействия: "Человек берёт со стола чашку" — может сработать. "Два человека играют в настольный теннис" — скорее всего, получится абстрактная мешанина.
  • Консистентность в длинных видео: 5-8 секунд — ок. 30 секунд — персонаж может "дрифтовать" во внешности. Для длинных роликов всё ещё нужна склейка коротких клипов.
  • Детализация мелких объектов: Ювелирные изделия, текст на этикетке, узоры на одежде — часто размываются или искажаются.

Что дальше? (Вместо заключения)

Ingredients to Video — это только начало. В ближайшие месяцы ждите:

  1. Multi-image input: Загрузка нескольких фото одного объекта с разных ракурсов для лучшей 3D-консистентности.
  2. Audio-driven animation: Тот самый lip-sync, который сейчас отсутствует.
  3. Прямая интеграция в Google Slides и Docs: Представьте: вставляете фото в презентацию, нажимаете "Animate", выбираете действие из списка.
  4. Локальный инференс: Когда-нибудь подобные модели будут работать на устройствах. Пока это тяжёлая артиллерия только в облаке. Если вам интересна тема локального запуска больших моделей, посмотрите наше сравнение CPU-инференса современных LLM.

Сейчас же — берите свои лучшие изображения, экспериментируйте с промптами, которые описывают действие, а не внешность, и начинайте с коротких 5-секундных роликов. Первые результаты могут удивить. Главное — не ожидайте голливудского CGI из селфи. Технология уже полезна, но ещё не идеальна. И это нормально.