/vfx - Pack VFX pour reels tête-parlante
Les grands titres sont dessinés derrière l'orateur (segmentation de personne) et placés automatiquement au-dessus de la tête. Support complet de l'hébreu et du RTL.
| Commande | Ce qu'elle fait |
|---|---|
/vfx strike | Grand mot au-dessus de la tête -> une ligne rouge le frappe -> le remplace par un nouveau mot |
/vfx echo | Grand titre apparaît avec des copies en contour qui explosent |
/vfx spotlight | L'arrière-plan s'assombrit, lumière chaude sur l'orateur, titre néon clignotant |
/vfx freeze-mark | Gel + flash + zoom avant + cercle rouge dessiné à la main autour du visage (+ étiquette optionnelle) |
/vfx pinned-comment | Carte "Répondre au commentaire" apparaît en haut |
/vfx plan | Plusieurs effets en un rendu |
/vfx showcase | Enveloppe un clip rendu dans une interface Claude-app : commandes tapées, en-tête "Édité avec /vfx X", sons de frappe + effets, CTA de fin |
Entrées
- La vidéo (verticale 9:16 tête-parlante de préférence) et, par effet, les textes exacts et le timing.
N'inventez jamais de textes que l'utilisateur n'a pas donnés ; demandez une fois si manquant. Le timing peut provenir d'un mot déclencheur (voir
words). - Enregistrez la sortie à côté de la source sous la forme
<nom>_vfx.mp4.
Configuration (une fois)
- Les scripts se trouvent à côté de ce fichier :
scripts/vfx.py,scripts/compose.py(appelez-les par leur chemin complet). - Nécessite
ffmpeg, Node/npm (les polices et le modèle de segmentation sont téléchargés une fois avecnpm packdans ~/.cache/vfx) etpip install numpy pillow fonttools python-bidi ai-edge-litert "opencv-python-headless<5". Optionnel :pip install rembg onnxruntime(contours de cheveux plus nets, utilisé automatiquement),pip install faster-whisper(timing des mots).
Workflow
ffprobedu clip. Peu d'espace au-dessus de la tête -> les titres descendent automatiquement dans le tiers inférieur ; suggérer un recadrage.- Timing à partir de la parole :
python3 scripts/vfx.py words clip.mp4 --lang he-> lignes{mot,début,fin}. - Rendu :
Variante strike (plan.json uniquement) :python3 scripts/vfx.py strike in.mp4 out.mp4 --text "משעמם" --swap "מרתק" --at 2.1 --strike-at 2.8 --swap-at 3.3 python3 scripts/vfx.py echo in.mp4 out.mp4 --text "IN-APP BROWSER" --at 5 --dur 2.5 python3 scripts/vfx.py spotlight in.mp4 out.mp4 --text "AI SLOP" --at 13 --dur 2.5 python3 scripts/vfx.py freeze-mark in.mp4 out.mp4 --at 9.5 --hold 1.5 --label "תסתכלו כאן" python3 scripts/vfx.py pinned-comment in.mp4 out.mp4 --user quelquun --text "..." --at 17 --dur 4 python3 scripts/vfx.py plan in.mp4 out.mp4 plan.json # [{"fx":"strike","text":..,"at":..}, ...]"front_first": trueplace le premier mot SUR le visage, devant l'orateur, et le mot d'échange DERRIÈRE la tête (ex. "מלפנים" -> "מאחור") ;"overlap": 0.45cache davantage derrière la tête. Variante echo (plan.json) :"linger": truegarde les copies en contour à l'écran (léger souffle) jusqu'à la fin de l'effet. Options :--y(hauteur de titre fixe, fraction de la trame ; augmenter si la tête cache les lettres),--color, freeze-mark--x --y --rpour entourer autre chose,--seg fast|quality,--crf. - Showcase (optionnel) :
python3 scripts/compose.py fx.mp4 final.mp4 schedule.json{"intro": 2.4, "cta": 3.2, "cmds": [{"cmd": "strike", "send": 0.0, "desc": "Dites-le, frappez-le, échangez-le", "sfx": [["swish", 0.9], ["pop", 1.5]]}, {"cmd": "echo", "send": 2.75, "desc": "Grand titre, explosion d'écho", "sfx": [["boom", 2.8]]}], "cta_lines": ["רוצים את הסקיל", "של 5 הפקודות?"], "cta_button": "תגיבו \"סקיל\""}send= seconde du clip où la commande est envoyée (définir leatde chaque effet ~0,05s après). La première commande est tapée dans l'intro. Sons : key, send, whoosh, swish, pop, boom, shutter, power, ding, chime. - Vérification : capturez 2-3 images par effet (
ffmpeg -ss T -i out.mp4 -frames:v 1 f.png), examinez-les (texte lisible, visage visible, hébreu de droite à gauche, rien coupé), corrigez et re-rendez. Puis livrez avec une ligne par effet.