video-clone-competitor
Scene-by-scene клон чужого ролика. Берёт URL (Instagram reel / TikTok / YouTube short) → скачивает → режет на сцены через PySceneDetect → анализирует каждую через video-analyzer → переписывает описание под наш бренд/продукт/актёра через LLM → регенерирует все сцены через auto-routing higgsfield / direct Veo с MCSLA-формулой → стишит ffmpeg-ом с сохранением оригинального тайминга. 3 mode: product-swap / avatar-swap / location-swap.
3 Clone Modes
| Mode | Меняем | Сохраняем | Типичный кейс |
|---|---|---|---|
| product-swap | Продукт / packaging / надписи на упаковке | Актёр, локация, действие, камера, mood, тайминг | Конкурент рекламит Nobel — пересобираем с нашим Straumann |
| avatar-swap | Лицо/тело/одежда (Soul-ID UUID) | Продукт, локация, действие, камера, тайминг | Тот же сценарий, но с нашим founder'ом / врачом |
| location-swap | Окружение (interior/exterior, специфическая локация) | Актёр, продукт, действие, камера | Хороший сценарий, но снять в нашей клинике (BasDent Almaty) |
Pipeline (8 шагов)
[URL ролика + project_slug + clone_mode]
↓
1. Download (yt-dlp / instagram-cli MCP)
↓
2. Scene split (PySceneDetect → scenes/scene_N.mp4 + scenes.json)
↓
3. Per-scene analyze (video-analyzer → desc + camera + mood + subject)
↓
4. Brand context loading (project.yaml, brief.md, references/, Soul-ID avatars.txt)
↓
5. Adapt prompts (LLM rewrites each scene per mode → adapted_scenes.json with MCSLA)
↓
6. Regenerate scenes (auto-routing higgsfield ↔ veo, parallel up to 3)
↓
7. Stitch with original timing (ffmpeg concat preserving scene durations)
↓
[<project>/clones/<clone_id>/final.mp4 + intermediate artifacts]
Backend-agnostic routing (важно)
В отличие от Higgsfield Supercomputer'a, который полностью lock-in, наш regenerate.py поддерживает --backend {auto | higgsfield | veo}. По умолчанию — auto — направляет каждую сцену в правильный backend по capability needs.
| Сцене нужно | Backend | Reason |
|---|---|---|
soul_id_needed: true | higgsfield | Только Soul-ID умеет face training |
model is cinematic_studio_*, kling*, wan*, seedance*, soul_cast | higgsfield | Higgsfield-native модели |
model is veo3_1*, veo3* | veo (direct GCP) | Cheaper, нет vendor lock-in |
| Camera: orbit / vertigo / robo arm / dolly zoom / FPV drone / lazy susan / crane | higgsfield | Veo не контролирует надёжно |
| Всё остальное | veo (default) | Cheap fallback |
Типичный 10-сценовый clone reel: 2-3 сцены через Higgsfield (Soul-ID / camera) + 7-8 через Veo (generic) = ~$5-7. Vs $10-15 если всё через Higgsfield = ~50% экономия.
Identity vs Motion separation (HARD RULE для avatar-swap)
Когда mode = avatar-swap, в MCSLA НЕ описывай лицо/тело/одежду в subject. Soul-ID сам подгрузит. Иначе модель смешивает обучение Soul-ID с поверхностными подсказками промпта → лицо плывёт.
| ❌ Wrong | ✅ Correct |
|---|---|
subject: "young Asian male with dark hair wearing scrubs" |
subject: "the trained character"(Soul-ID UUID разрешит) |
action: "Asian male picks up the device" |
action: "picks up the device, smiles at patient"(только action, без description) |
Файлы
~/.claude/skills/video-clone-competitor/
├── SKILL.md ← полный 8-шаговый pipeline + 3 modes
├── scripts/
│ ├── scene_split.py ← PySceneDetect → scene_NNN.mp4 + scenes.json
│ ├── regenerate.py ← parallel regen с auto-routing (higgsfield|veo|auto)
│ └── stitch.py ← ffmpeg concat с preservation таймингов
└── references/
└── clone-modes.md ← правила 3 режимов + hybrid + when NOT to clone
Output structure
~/video-projects/<project>/clones/<clone_id>/ ├── source/source.mp4 ← скачано ├── scenes/ │ ├── scene_001.mp4, scene_001.json │ ├── scene_002.mp4, scene_002.json │ └── scenes.json ├── adapted/adapted_scenes.json ← MCSLA-промпты под наш бренд ├── regenerated/ │ ├── scene_001.mp4 ← регенерированные сцены │ └── regen_log.json ← per-scene backend / errors └── final.mp4 ← готов к публикации
Триггеры
Скилл активируется когда юзер хочет 1:1 структурный клон (не просто вдохновение):
"клонируй ролик"/"clone this reel""пересними этот ролик"/"пересними с нашим продуктом""replicate this reel"/"scene-by-scene rebuild""переснять чужой ролик"/"повтори как у конкурента""видеоадаптация"/"video-adapt"
Когда НЕ использовать
- ❌ Просто разобрать рилс без клона →
instagram-analyze - ❌ Просто вдохновиться структурой / найти концепции →
trend-picker(viral_analysis mode) - ❌ Ролик >30s — обычно vlog/article, лучше извлечь hooks и сделать оригинал
- ❌ Ролик с >15 сценами — слишком дорого ($20+), клонируй только первые 4-5 (hook)
- ❌ Heavy VFX / 3D-анимация / motion graphics → лучше
video-motionfxс нуля
Failure modes
| Симптом | Причина | Fix |
|---|---|---|
| Scene split too granular (50+ сцен для 15s) | Threshold слишком низкий | --threshold 35.0 |
| Scene split too coarse (1-2 сцены) | Слишком высокий threshold | --threshold 20.0 --min-scene-len 0.5 |
| Face drift в avatar-swap | Subject re-described в adapt step | Re-check adapt — Identity block НЕ должен описывать лицо |
| Regenerated longer/shorter source | Cinematic Studio fixed 5s | Trim/extend в stitch step (auto через tpad) |
| ffmpeg concat fails (resolution mismatch) | Source 1080×1920, regen 1024×1792 | stitch.py auto-rescales к source resolution |
| Higgsfield 429 rate limit | Too many parallel | --parallel 2 вместо 3 |
Pairs with
- video-clipgen — primary regen backend для generic scenes (cheaper)
- video-clipgen-higgsfield — regen backend для Soul-ID / cinematic camera moves (с MCSLA)
- video-analyzer — описывает каждую сцену
- instagram-analyze — для Instagram-URL pre-download
- video-director — может использовать
final.mp4как готовый клип в библиотеке - trend-picker — viral_analysis mode даёт inspiration_source.url → автоматически chainit на clone
- video-copywriter — для overlay-текста поверх клонированного финала
Inspired by
Концептуально позаимствовано из Higgsfield Supercomputer'a video-adapt функции, но реализовано локально поверх нашего pipeline — без vendor lock-in, с явным выбором backend per scene.