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 делает видео-направление практичным. Продуктовый ролик редко держится на одном абстрактном запросе: обычно нужно провести зрителя через короткую, но понятную последовательность:
- показать общий вид товара;
- приблизиться к материалам или деталям;
- продемонстрировать функцию;
- вывести benefit или spec;
- завершить 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 в тяжёлый комбайн, который пытается делать всё сразу:
- не добавлять генерацию финального видео прямо в
VeoPanel.tsxбез backend; - вынести prompt builders в отдельные pure-модули;
- разделить state и UI-секции видео;
- добавить серверный слой для безопасных API-вызовов;
- хранить drafts и историю генераций;
- добавить тесты для prompt builders и validation.
Визуал статьи
Для этой статьи используется отдельная обложка /images/promptgen-audio-video-cover.webp: неоновый media-workstation с holographic storyboard timeline, видеокадрами товара и audio waveform под таймлайном. Главное изображение проекта /images/prmt.webp сохранено для основной карточки PromtGen.