video-clipgen
AI-креативный продюсер: берёт бриф + референс-фото, планирует пачку клипов, гонит через Google Veo 3.1, анализирует результат и складывает в clip library проекта — готовые «кирпичи» для Director.
Что делает простыми словами
clips table. Director использует клипы из обоих источников вперемешку.
Это «съёмочная группа на чипах». Вместо аренды площадки, актёров и оператора — ты даёшь бриф и пачку фоток (например интерьер клиники + врача), а Veo генерирует короткие видео-куски 4-8 секунд. Эти куски потом склеит director в готовый ролик.
- Читает бриф проекта (что за бизнес, кто аудитория, какая цель рекламы)
- Смотрит на референс-фото — буквально смотрит через Vision, не по имени файла
- Сохраняет каждый референс в БД с описанием, типом (doctor/interior/product/...) и ключевыми словами
- Анализирует текущую library (
analyze-library) — что уже есть, чего не хватает - Планирует 5 клипов (hook, product, lifestyle, testimonial, cta) и согласовывает с пользователем
- Подбирает релевантные референсы под каждую сцену (
match-references) - Гонит Veo 3.1 с правильным промптом + до 3 референс-картинок
- Извлекает кадры результата, описывает что реально получилось (Veo иногда понимает промпт по-своему)
- Обновляет clip в БД с честным описанием — director потом по нему ориентируется
Prompt Rules — главные запреты
Эти правила вшиты в SKILL.md и нарушать их нельзя — иначе клип уйдёт в мусор. Veo плохо умеет генерить читаемый текст и интерфейсы.
generate_audio=False. Голос накатывает voiceover отдельно, музыку добавляет director при сборке.
veo.demographics, подсказки из veo.demographics_hint, запреты из veo.forbidden_demographics. Никаких хардкодов «европеоид/азиат» в промпте.
Reference images — золотая жила
Если у клиента есть фотки реальной локации, врача, продукта — это в разы лучше, чем «generic medical office». Veo 3.1 принимает до 3 референсов на одну генерацию и сохраняет визуальную идентичность.
Image types — выбирай один
| image_type | Когда использовать |
|---|---|
doctor | Специалист в рабочей среде |
interior | Интерьер бизнеса без явного фокуса на человеке |
product | Крупный план продукта/оборудования |
patient | Клиент/пациент (до/после, в кресле, результат) |
equipment | Специфичное для бизнеса оборудование/инструменты |
result | Результат услуги (готовая работа, до-после) |
logo | Лого, вывеска |
lifestyle | Люди в обычной/lifestyle обстановке |
team | Групповое фото, команда |
Скоринг match-references
| Score | Что делать |
|---|---|
| ≥ 8 | Точно прикреплять — сильное совпадение |
| 4–7 | Подумать — посмотри match_reasons, если совпадение осмысленное (не просто общие слова) — бери |
| < 4 | Пропустить — генерь без референса |
Команды
Сохранить бриф
python ~/.claude/skills/video-clipgen/scripts/db.py save-brief \ ~/video-projects/apparatus \ --text "Импланты Straumann, премиум-сегмент, аудитория 35-55..."
Добавить референс (после Read картинки)
python ~/.claude/skills/video-clipgen/scripts/db.py add-reference \ ~/video-projects/apparatus /path/to/photo.jpg \ --description "Специалист в современном кабинете, мягкое LED, бежевые тона..." \ --image-type doctor \ --keywords "специалист,клиника,LED,интерьер,доверие"
Анализ library — ОБЯЗАТЕЛЬНО перед планированием
python ~/.claude/skills/video-clipgen/scripts/db.py analyze-library \ ~/video-projects/apparatus # → JSON: by_scene_type, by_mood, missing_types, weak_types, # overrepresented, suggestions (приоритизированные идеи)
Подобрать референсы под сцену
python ~/.claude/skills/video-clipgen/scripts/db.py match-references \ ~/video-projects/apparatus "Профессионал в рабочей среде, крупный план" \ --image-type doctor --limit 3
Генерация клипа (Veo 3.1)
python ~/.claude/skills/video-clipgen/scripts/veo_generate.py \ --project-dir ~/video-projects/apparatus \ --prompt "Close-up of a Central Asian specialist smiling, soft window light, warm golden tones, shallow DOF. Slow push-in. 9:16 vertical." \ --duration 6 \ --model veo-3.1-lite-generate-preview \ --reference-image /path/to/doctor.jpg
Анализ сгенерированного клипа
python ~/.claude/skills/video-clipgen/scripts/analyze_clip.py \ ~/video-projects/apparatus /path/to/clip.mp4 --frames 3 # → извлекает 3 кадра (начало/середина/конец), потом смотришь их через Read
Обновить описание клипа после визуального анализа
python ~/.claude/skills/video-clipgen/scripts/db.py update-clip \ ~/video-projects/apparatus 42 \ --description "Что РЕАЛЬНО на видео..." \ --scene-type hook --mood energetic \ --tags "specialist,smile,warm" --actions "looks at camera,subtle nod" \ --reference-image-ids "[2, 3]"
Скрипты
| Файл | Что делает |
|---|---|
scripts/veo_generate.py | Главный воркхорс — вызывает Veo 3.1 API, передаёт промпт + до 3 reference_image, скачивает результат, кладёт в clips/, автоматически регистрирует в БД |
scripts/analyze_clip.py | Извлекает N равноотстоящих кадров из готового клипа (для визуального анализа через Vision) |
scripts/analyze_reference.py | Хелпер для анализа референс-фоток (вытаскивает метаданные, готовит к add-reference) |
scripts/imagen_generate.py | Запасной путь — генерация stills через Google Imagen, если нужны статичные референсы |
scripts/db.py | CRUD по brief + reference_images + clips (project-scoped через junction-таблицы). Тут же analyze-library и match-references |
scripts/api_keys.py | Резолвит API-ключи из project/api_keys.db или env |
scripts/schema.py | Общий schema-source-of-truth (v8) — копия одинакова во всех скиллах |
Veo 3.1 параметры
| Параметр | Значения |
|---|---|
| Модель (best) | veo-3.1-generate-preview — $0.15/sec at 720p (для hero-клипов) |
| Модель (budget) | veo-3.1-lite-generate-preview — $0.05/sec at 720p (для большинства) |
| Длительность | 4, 6 или 8 секунд |
| Aspect ratio | Всегда 9:16 (vertical для рекламы) |
| Reference images | До 3 штук per generation, reference_type="asset" |
| Output | 720p или 1080p MP4 |
Цена
Грубый расчёт по моделям:
- Lite модель, 6 сек: ~$0.30 за клип. Батч из 5 ≈ $1.50.
- Best модель, 6 сек: ~$0.90 за клип. Батч из 5 ≈ $4.50.
- Best модель, 8 сек: ~$1.20 за клип.
Подтверждай выбор модели и оценку стоимости с пользователем перед генерацией. Генерация занимает 1-3 минуты на клип, гнать последовательно — у Veo жёсткие rate limits.
Workflow в одном куске
Gotchas и tips
analyze-library показывает что есть избыток (например 3 testimonial-клипа) — не плоди ещё одно «доказательство», лучше закрой пробел (hook или CTA).
description через Vision-анализ кадров. Veo часто интерпретирует промпт по-своему — клип может оказаться больше lifestyle, чем product. Director потом ориентируется по тому, что записано, а не по тому, что просили.
🎬 Примеры работы
Место в пайплайне
Clipgen наполняет
clips table. Без library не запустится director — нечего собирать. Параллельная альтернатива — motionfx для motion graphics клипов.
Clipgen использует ту же базу director.db, что и Director. Связи через project_clips и project_reference_images junction-таблицы — клипы и референсы scoped к проекту.