PromtGen: аудио и видео направление

PromtGen начинался как генератор промтов для товарных изображений, но видео-направление меняет масштаб задачи. Теперь это уже не только «описать красивую картинку», а собрать управляемый медиа-brief: что показать в кадре, как двигается камера, где появляется текст, сколько длится сцена и в каком формате всё это отдавать дальше.

Главный рабочий блок здесь — Video Promo (VEO 3): отдельный режим для подготовки продуктовых роликов с Guided/Fast workflow, раскадровкой, движениями камеры, эффектами, текстовыми overlay, review rail и JSON payload. Он помогает перейти от разрозненной идеи вроде «сделать ролик про товар» к сценарию, который можно проверять, экспортировать и использовать в более управляемом video pipeline.

Аудио-направление пока не реализовано как отдельный модуль: в коде нет audio fields, audio providers и отдельного audio UI. Но логика проекта уже подводит к нему почти естественно. Если в системе есть storyboard, длительности кадров, текстовые overlays и сценарий ролика, следующим слоем может стать звук — voiceover, саунд-дизайн, music mood и синхронизация аудио с кадрами.

Что уже есть по видео

Видео-модуль реализован в components/VeoPanel.tsx и работает как отдельный guided workspace. Он не смешан с image cards: пользователь явно переключается в режим Video Promo (VEO 3), а тяжёлый компонент подгружается только когда действительно нужен.

Текущие возможности:

  • выбор языка итогового prompt: RU или EN;
  • базовое описание продукта;
  • категория товара как контекст;
  • длительность ролика;
  • reference image URL/path или текстовое описание референса;
  • visual style, quality, background, lighting и color palette;
  • custom visual style override и генерация style direction;
  • product specs и product elements до 5 пунктов в каждом списке;
  • Guided/Fast workflow для подробной или быстрой сборки ролика;
  • storyboard из сцен и кадров;
  • длительность каждого кадра;
  • camera motion: static, pan, orbit, zoom, FPV и другие варианты;
  • эффекты: smoke, water, glitch, fire, rain, particles, underwater и др.;
  • product behavior patterns по категориям;
  • overlay text и иконки;
  • preview tabs: Summary, Prompt и JSON;
  • review rail с blockers/advisories;
  • full prompt;
  • prompt export по отдельным сценам;
  • JSON payload для API-ориентированного workflow.

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

Storyboard как ядро видео-модуля

Внутренняя модель видео строится вокруг VeoFormState. Главная часть модели — вложенная структура:

VeoFormState
  -> scenes: VeoScene[]
     -> shots: VeoShot[]

Сцена задаёт крупный блок ролика. Кадр задаёт конкретный визуальный фрагмент: длительность, описание, движение камеры, эффект, свет, overlay text, иконку и при необходимости behavior pattern.

Именно storyboard делает видео-направление практичным. Продуктовый ролик редко держится на одном абстрактном запросе: обычно нужно провести зрителя через короткую, но понятную последовательность:

  1. показать общий вид товара;
  2. приблизиться к материалам или деталям;
  3. продемонстрировать функцию;
  4. вывести benefit или spec;
  5. завершить hero-shot с названием и ключевым сообщением.

PromtGen превращает эту структуру в prompt, который можно копировать целиком или по сценам. В текущей реализации storyboard держится в практичных пределах: до 5 scenes, до 5 shots на scene. Это защищает VEO brief от перегруза, помогает быстрее проверить длительности и не потерять логику ролика в длинном текстовом описании.

Product behavior patterns

Сильная часть видео-направления — category-specific behavior patterns. Они описаны в constants.ts для разных категорий:

  • электроника: включение устройства, зарядка, интерфейс, RGB-подсветка, waterproof test;
  • одежда: движение ткани, ветер, stretch test, zipper action, texture touch;
  • обувь: бег, прыжок, flex, splash, grip, shock absorption;
  • еда: наливание, нарезка, пар, melting, fizzing;
  • FMCG: pump action, spray, foam, absorb, wipe clean;
  • инструменты: drilling, cutting, sparks, battery swap, drop test;
  • посуда: pouring tea, boiling, non-stick demo, stacking, polishing.

Это важнее обычного списка эффектов. Поведение привязано к типу товара и помогает сделать ролик не просто декоративным, а демонстрационным: зритель видит не только объект, но и то, как он работает, ощущается или используется.

Product elements и visual direction

Помимо specs, видео-модуль учитывает product elements — отдельные детали товара, которые важно показать в ролике: экран, кнопки, материал, упаковку, аксессуары, текстуру, насадку, крышку или любой другой узнаваемый элемент. Это полезно для VEO 3, потому что prompt может удерживать не только общий вид продукта, но и конкретные части, которые должны появиться в кадрах.

Visual direction тоже стала гибче. Можно выбрать preset-стиль, сгенерировать style direction через Gemini или вручную задать custom override. Последний вариант особенно важен, когда у бренда уже есть тональность: например, строгая dark tech подача, мягкий lifestyle, luxury macro или clean marketplace aesthetic. Тогда ролик не начинается с нуля — он сразу собирается вокруг нужного визуального языка.

AI-assisted действия в видео

Видео-модуль уже использует Gemini как ассистента для подготовки контента. При наличии VITE_GEMINI_API_KEY доступны сценарии:

  • анализ изображения товара и краткое описание материалов, формы и визуальных признаков;
  • генерация короткого product description;
  • генерация visual style;
  • генерация описания кадра с учётом продукта, категории, движения камеры и, при необходимости, предыдущего кадра.

Эти функции не генерируют финальное видео и не обещают магическую кнопку production. Их задача практичнее: быстрее заполнить качественные текстовые поля, из которых затем собирается VEO prompt. Сам PromtGen остаётся prompt/workflow-инструментом: он готовит brief и export, но не запускает VEO generation внутри продукта.

Контроль качества prompt перед генерацией

В VeoPanel.tsx есть review rail и validation logic. Сейчас проверяются:

  • заполнен ли тип товара;
  • добавлено ли описание продукта;
  • есть ли хотя бы одно описание кадра;
  • совпадает ли сумма длительностей кадров с общей длительностью ролика;
  • добавлен ли reference image — это advisory, а не блокирующая ошибка.

Это правильное направление: для видео важно проверять не только наличие текста, но и структурную согласованность сценария. Если ролик заявлен на 10 секунд, а кадры суммарно занимают 6 или 14 секунд, prompt становится менее предсказуемым. Review rail нужен как спокойная проверка перед экспортом: не вместо автора, а рядом с ним.

Где здесь аудио

Аудио-модуль пока отсутствует в коде: нет полей для voiceover, music mood или SFX, нет audio providers, нет отдельного интерфейса для audio direction. Поэтому аудио сейчас корректно описывать только как future layer.

При этом его место в продукте уже хорошо видно. В видео-пайплайне есть данные, которые звук может использовать как опору:

  • длительность ролика;
  • длительность каждого кадра;
  • описание сцены;
  • overlay text;
  • стиль ролика;
  • категория товара;
  • предполагаемое настроение;
  • sequence/shot структура.

Из этого можно строить audio direction:

  • voiceover script;
  • короткие дикторские реплики по сценам;
  • sound design prompts;
  • music mood prompt;
  • список звуковых акцентов для каждого кадра;
  • тайминг аудио-событий относительно storyboard.

Например, для электроники это могут быть boot sound, UI blips, soft bass pulse и короткий voiceover. Для еды — sizzling, pour, crunch и более тёплый музыкальный фон. Для инструментов — механические щелчки, искры, workshop ambience и уверенный дикторский тон. Смысл не в том, чтобы просто «добавить музыку», а в том, чтобы звук продолжал ту же раскадровку и поддерживал действие в каждом кадре.

Возможная структура Audio Layer

Следующий логичный слой — добавить в VeoFormState аудио-поля:

VeoFormState
  -> audio
     -> voiceoverEnabled
     -> voiceoverTone
     -> musicMood
     -> soundDesignStyle
     -> perShotAudioCues

На уровне интерфейса это может быть отдельный collapsible-блок внутри Video Promo:

  • Voiceover — текст или генерация сценария диктора;
  • Music — настроение, темп, жанр, интенсивность;
  • SFX — звуковые события по кадрам;
  • Mix notes — требования к громкости, паузам, акцентам;
  • Export — audio prompt вместе с video prompt или отдельным блоком.

Важно не превращать PromtGen в аудиоредактор. Ценность проекта — в подготовке структурированного prompt/spec для генеративного пайплайна. Поэтому аудио должно быть описательным слоем, связанным со storyboard: меньше ручного микширования, больше ясных подсказок для следующего инструмента в цепочке.

Кейсы использования аудио/видео направления

Короткий ролик для маркетплейса

Пользователь задаёт товар, 10 секунд длительности, 3–4 кадра, преимущества и финальный hero-shot. На выходе получает full VEO prompt, JSON payload и в будущем — audio direction для озвучки и SFX. Такой сценарий ценен тем, что короткий ролик сразу собирается как последовательность решений, а не как один перегруженный абзац.

Видео для карточки товара в соцсетях

Можно выбрать aspect ratio 9:16, собрать вертикальный сценарий, добавить overlay text и сделать акцент на быстрых benefit-кадрах. В таком формате особенно важно заранее понимать, какой текст появляется на экране и сколько времени зритель успевает его прочитать.

Демонстрация функции

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

Подготовка production brief

Даже если финальное видео делает дизайнер или motion-специалист, PromtGen может дать структурированный brief: сцены, кадры, камера, эффекты, текст, стиль, длительности и будущие аудио-заметки. Такой brief проще обсуждать, править и передавать дальше, потому что спор идёт не о туманной идее, а о конкретных блоках ролика.

Что важно не сломать при развитии

Видео-модуль уже большой, поэтому развитие audio/video направления лучше делать поэтапно. Здесь особенно легко увлечься и превратить аккуратный workspace в тяжёлый комбайн, который пытается делать всё сразу:

  1. не добавлять генерацию финального видео прямо в VeoPanel.tsx без backend;
  2. вынести prompt builders в отдельные pure-модули;
  3. разделить state и UI-секции видео;
  4. добавить серверный слой для безопасных API-вызовов;
  5. хранить drafts и историю генераций;
  6. добавить тесты для prompt builders и validation.

Визуал статьи

Для этой статьи используется отдельная обложка /images/promptgen-audio-video-cover.webp: неоновый media-workstation с holographic storyboard timeline, видеокадрами товара и audio waveform под таймлайном. Главное изображение проекта /images/prmt.webp сохранено для основной карточки PromtGen.

Связанные материалы