7 пайплайнов
У системы 5 production flow по типам выхода + 2 новых intelligence-pipeline (auto-concept + scene-by-scene clone). Каждый — это последовательность вызовов скиллов с чёткими входами/выходами. Все 7 в одном месте — чтобы видеть полную картину.
Сводная таблица
| # | Pipeline | Top-level скилл | Выход | Цена/штука | Время |
|---|---|---|---|---|---|
| 1 | Voiceover ad | video-orchestrator | 9-30s .mp4 с озвучкой | $5-15 | 5-15 мин |
| 2 | Textover ad | video-orchestrator | 15s .mp4 без озвучки (типографика) | $1-3 | 3-8 мин |
| 3 | Static creative | creative-orchestrator | 1-N .png постеров | $0.04-0.78 | 1-5 мин |
| 4 | Carousel | creative-carousel | 5-10 .png + ZIP + PDF | $0.0001 | ~1 мин |
| 5 | Explainer video | creative-explainer-video | 2-5 мин .mp4 narrated | $0.55 (3 мин) | 5-7 мин |
| + | Screencast (talking-head) | video-screencast | Чистая монотонная нарезка с captions | $0.02 | ~3 мин |
| 6 NEW | Trend discovery / concept gen | trend-picker | N concept briefs JSON + trend-report.md | $0.05-0.25 | 2-10 мин |
| 7 NEW | Competitor scene-by-scene clone | video-clone-competitor | final.mp4 (структура чужого, контент наш) | $5-15 | 10-20 мин |
1. Voiceover ad pipeline
Главный пайплайн системы. Превращает бриф в готовое видеообъявление с озвучкой за кадром, музыкой и субтитрами.
↓
video-copywriter → текст озвучки (storytelling / direct / expert)
↓
video-voiceover → voiceover.mp3 через ElevenLabs + duration
↓
video-director → variant_a.mp4, variant_b.mp4 (FFmpeg монтаж + music ducking)
↓
video-captions → + karaoke субтитры через Remotion
↓
video-reviewer → scores + issues (опционально, для loop)
↓
Финальный .mp4 в ~/video-projects/<project>/videos/
Что происходит внутри
- Orchestrator резолвит проект из реплики («сделай 3 ролика для apparatus»), вызывает preflight check (есть ли клипы, голоса, API-ключи)
- Copywriter читает
brief.md, выбирает type (например storytelling), генерирует текст через Gemini text, проверяет previous generations (чтобы не повторяться), сохраняет вgenerated_texts - Voiceover берёт next-voice из rotation проекта (least-recently-used), вызывает ElevenLabs TTS, сохраняет
voiceover.mp3, замеряет длительность, записывает вvoiceover_history - Director читает текст + длительность озвучки → выбирает клипы из
project_clips, проверяет recent rotation, строит montage_plan (2-3 варианта) →assemble.pyс FFmpeg склеивает + накладывает музыку с ducking - Captions прогоняет Whisper по voiceover, получает word-level timestamps, рендерит karaoke-субтитры через Remotion (с —text оригинал чтобы исправить Whisper-ошибки), накладывает на видео
- Reviewer опционально: extract frames → Vision QA → JSON с issues → если score < 7 — обратно на пересборку
2. Textover ad pipeline
Короткое видео без озвучки — только клипы + музыка + анимированный текст поверх. Fixed 15 секунд. Используется для silent autoplay в Stories / Reels.
↓
video-copywriter → type=textover_hook (offer + 3 bullets + profit + CTA)
↓
video-director (--format textover --duration 15) → raw_video.mp4 (clips + music 0.30 vol)
↓
video-remotion → + TextoverAd overlay (15 пресетов на выбор)
↓
Финальный textover.mp4
Ключевые отличия от voiceover-пайплайна:
- Нет ElevenLabs (нет голоса)
- Музыка громче (0.30 vs 0.20 — не нужно пробивать голос)
- Текст не транскрибируется (нет Whisper) — рендерится TSX-компонентом
- Длина фиксированная 15 сек (не зависит от чего-либо)
3. Static creative pipeline (poster)
Single или batch постеры через Gemini 3 Pro Image. С variants × aspects × QA loop.
↓
creative-orchestrator (mode=run)
↓
creative-poster brand show → brand context auto-injected
↓
creative-poster variants × N → angle explosion (math/emotion/fear/curiosity/...)
↓
creative-poster gen (per variant) → 4:5 base через Gemini
↓
creative-poster qa_review → JSON {score, issues, suggested_fix}
↓
creative-poster refine (если score < 7) → multi-turn edit
↓
creative-poster multi_aspect → 4:5 → 9:16 / 1:1 / 2:3 / 16:9 outpaint
↓
creative-poster db log + present.py → + HTML preview (GR-1)
↓
~/video-projects/<project>/posters/<run>/*.png
3 режима creative-orchestrator
| Mode | Что делает | Когда брать |
|---|---|---|
quick | 1 постер + опц. QA + опц. multi-aspect + опц. delivery | Быстрая итерация / single creative |
run | Full pipeline: variants × aspects + auto-QA + refinement loop + keep top-N + delivery | Batch для production (5-20 постеров) |
perf-import | Meta Graph API → creative_performance → winners report по CPL/CTR | Когда есть live метрики и нужен feedback loop |
4. Carousel pipeline
Instagram-карусели через REMOTION (TSX templates), НЕ через Gemini Image. Это даёт perfect Cyrillic, нет CTA-bug, нет softbox-bug, $0 на slides.
↓
creative-carousel init_project.py → bootstrap <project>/carousel-remotion/ (one-time)
↓
creative-carousel plan.py → JSON plan через Gemini text (slide_n / type / headline / subhead / visual_hint)
↓
[APPROVAL GATE] пользователь смотрит plan.json, опционально редактирует
↓
creative-carousel render_slides.py → npx remotion still × N (TSX → PNG)
↓
creative-carousel pack.py → ZIP (для Meta) + PDF (для клиента)
↓
creative-carousel present.py → HTML preview с scroll-snap + lightbox + per-slide payload
↓
~/Desktop/<slug>_carousel.zip + .pdf + .html
Почему Remotion, не Gemini
- Cyrillic typos — ~50% случаев символ
₸заменялся на буквуТ - CTA-pill рисовался поверх несмотря на запрет в промпте
- Softbox попадал в кадр (промпт «studio light» → модель рисовала источник)
- Все слайды получались одинакового стиля (один промпт)
₸ это реальный Unicode-символ, нет понятия «CTA-кнопка», нет рендеринга «источника света». Это просто другой класс bug'ов.
5. Explainer video pipeline
Длинные narrated видео 2-5 мин. Туториалы, case-study, демо. Remotion + ElevenLabs.
↓
explainer init_project.py → bootstrap <project>/explainer-remotion/ (one-time)
↓
explainer plan.py → JSON scene plan: vo_text + on_screen_text + visual_hint + asset_ref
↓
[APPROVAL GATE] review vo-тексты, опц. править
↓
explainer vo.py → ElevenLabs TTS per scene → mp3 + patch duration_seconds в plan
↓
explainer render.py → npx remotion render → mp4 (+ опц. ffmpeg bg-music mix)
↓
explainer present.py → HTML с embedded MP4 + clickable timeline + per-scene payload
↓
~/Desktop/<slug>_explainer.mp4 + _preview.html
Ключевые особенности
- Scene-based timeline: каждая сцена имеет свой
duration_secondsавтоматически = длина её VO-mp3 + 0.3s tail - VO-sync automatic: Remotion timeline собирается из
Sequence × N, длина каждой = длина mp3, не нужно ничего вручную выравнивать - Optional bg music: ffmpeg-mix после Remotion, ducking под VO волюмом ~0.15
- 9 типов сцен / 4 шаблона — см. Scene types
+ Screencast (talking-head) pipeline
Альтернативный путь — когда пользователь сам снимает на камеру/Screen Studio с несколькими дублями. Никакой AI-генерации, только чистка и сборка.
↓
video-screencast detect_takes.py → silence detect + per-chunk Whisper + dedup → cut_plan.json
↓
video-screencast cut_and_clean.py → ffmpeg trim/concat + voice cleanup chain + pad 1080×1920
↓
video-captions (style=karaoke, highlight=monochrome) → scale-pop субтитры через Remotion
↓
video-director overlay_music.py (--volume 0.08) → background music (тише чем для TTS — реальный микрофон нужен больше headroom)
↓
Финальный .mp4 готовый к публикации
Voice cleanup chain (для реального микрофона)
highpass=f=80, # вырезать гул < 80Hz afftdn=nf=-25, # FFT-denoise -25 dB acompressor=threshold=-18dB:ratio=3:attack=20:release=200:makeup=2, # компрессор loudnorm=I=-16:TP=-1.5:LRA=11 # нормализация громкости
loudnorm — TTS уже чистый, дополнительные фильтры ломают качество. Voice cleanup нужен ТОЛЬКО реальному микрофону.
6. Trend discovery / concept generation pipeline NEW
Intelligence-pipeline. Превращает competitive intel в готовые брифы для production. 3 mode: trend_discovery / viral_analysis / creator_dna. Стандартный input для downstream video-copywriter + video-clipgen.
Mode 1: trend_discovery
↓
instagram-research (search + rank by engagement_velocity) → top 15 reels с метриками
↓
instagram-analyze (download top-10) → 10 mp4 в trends/<date>/reels/
↓
video-analyzer (per-reel frame analysis) → analyzed/*.json (camera, mood, hook, format_type)
↓
LLM in-session (pattern extraction) → patterns.md: common hook/structure/CTA across top-10
↓
LLM in-session (concept generation, читает project.yaml + brief.md + creatives/*.md) → concepts.json: 8 ready-to-go briefs по строгой схеме
↓
trends/<date>/{concepts.json, trend-report.md}
Mode 2: viral_analysis (single URL)
↓
instagram-analyze (download + comment scrape top 50) → source.mp4 + comments.json
↓
video-analyzer (frame-by-frame deep analyze) → scenes[] + hook_first_3s + cta_present + camera_moves[]
↓
LLM in-session (why-it-works analysis) → viral-breakdown.md: engagement breakdown + comment themes + pattern interrupts
↓
LLM in-session (1 clone-ready brief) → concepts.json (1 brief) с inspiration_source.url
↓
Готов для chaining → video-clone-competitor
Mode 3: creator_dna (@handle)
↓
instagram-research (get_profile_reels, top 20) → top_reels.json по engagement
↓
instagram-analyze + video-analyzer (per-reel deep dive) → analyzed/*.json (visual + transcript + camera)
↓
LLM in-session (DNA extraction по 9 сигнатурам: visual / lighting / hook / voice / structural / CTA / topic / pacing / aesthetic) → dna-<handle>.md (full 9-section profile)
↓
LLM in-session (N concepts в DNA-style под наш бренд) → concepts-dna.json (N briefs)
↓
trends/<date>/{dna-<handle>.md, concepts-dna.json}
video-orchestrator читает concepts.json и маршрутизирует каждый по format_type — UGC идёт в Seedance, cinematic в Cinematic Studio, talking-head в Soul Cast + Soul-ID, motion graphics в MotionFX, viral 1:1 — в video-clone-competitor напрямую с inspiration_source.url.
7. Competitor scene-by-scene clone pipeline NEW
Intelligence-pipeline. Берёт конкретный URL чужого ролика и пересобирает его структурно (сцена за сценой) под наш бренд. Inspired by Higgsfield Supercomputer video-adapt, но реализован локально с backend-agnostic routing.
↓
yt-dlp / instagram-cli MCP → source/source.mp4
↓
scene_split.py (PySceneDetect) → scenes/scene_NNN.mp4 + scenes.json (durations)
↓
video-analyzer (per-scene) → scenes/scene_NNN.json (camera + mood + subject + lighting)
↓
LLM in-session (load project.yaml + brief.md + Soul-ID UUIDs + references/)
↓
LLM in-session (per-scene MCSLA rewrite, applies mode rules) → adapted/adapted_scenes.json (MCSLA prompts + image refs)
↓
regenerate.py --backend auto (parallel ≤3) → regenerated/scene_NNN.mp4
↓
stitch.py (ffmpeg concat, preserves original durations + rescales to source resolution) → final.mp4 + optional watermark
↓
clones/<clone_id>/final.mp4 + intermediate artifacts
Per-scene backend routing (auto mode)
| Сцене нужно | Backend | Reason |
|---|---|---|
soul_id_needed: true (avatar-swap) | higgsfield | Только Soul-ID имеет persistent face training |
| Cinematic camera move (orbit / vertigo / robo arm / dolly zoom / FPV / lazy susan / crane) | higgsfield | Veo не контролирует надёжно |
| Higgsfield-native model (cinematic_studio_*, kling*, wan*, seedance*, soul_cast) | higgsfield | Native support |
| Veo model (veo3_1*, veo3*) | direct Veo (GCP) | Cheaper, нет vendor lock-in |
| Всё остальное | direct Veo (default) | Cheap fallback |
--backend higgsfield или --backend veo если нужно.
3 mode — что меняется
| Mode | Меняем | Сохраняем |
|---|---|---|
| product-swap | Продукт + packaging + надписи на упаковке | Актёр, локация, действие, камера, mood, тайминг |
| avatar-swap | Лицо/тело/одежда (через Soul-ID UUID) | Продукт, локация, действие, камера, тайминг (с Identity/Motion separation) |
| location-swap | Окружение (interior/exterior) | Актёр, продукт, действие, камера |
Cross-pipeline: GR-1 (preview pages)
Каждый production-пайплайн автоматически создаёт preview.html с payload-сайдбаром в конце своего flow. Это обязательное правило системы (для 2 новых intelligence-пайплайнов preview пока TODO). Подробно: GR-1.
| Пайплайн | Preview скрипт | Coverage |
|---|---|---|
| Voiceover ad | (пока нет) | TODO — нужно добавить |
| Textover ad | (пока нет) | TODO |
| Static creative | creative-poster/scripts/present.py | ✅ |
| Carousel | creative-carousel/scripts/present.py | ✅ |
| Explainer video | creative-explainer-video/scripts/present.py | ✅ |
| Trend discovery / concepts | (пока нет) — auto-генерится trend-report.md в стандартный markdown | TODO |
| Competitor clone | (пока нет) — clones/<id>/ directory с regen_log.json содержит provenance | TODO |
Куда дальше
- Открой страницу любого скилла из сайдбара для деталей
- Onboarding-чеклист — если хочешь запустить первый pipeline руками
- Модели · цены · env — что и сколько стоит