/vfx - Paquete VFX para reels de talking-head
Los títulos grandes se dibujan detrás del orador (segmentación de personas) y se colocan automáticamente sobre la cabeza. Soporte completo para hebreo/RTL.
| Comando | Qué hace |
|---|---|
/vfx strike | Palabra grande sobre la cabeza -> una línea roja la tacha -> la cambia por una nueva palabra |
/vfx echo | Aparece un título grande con copias de contorno que estallan hacia afuera |
/vfx spotlight | El fondo se oscurece, una luz cálida enfoca al orador, título de neón parpadeante |
/vfx freeze-mark | Congelación + destello + zoom + círculo rojo dibujado a mano alrededor de la cara (+ etiqueta opcional) |
/vfx pinned-comment | Aparece una tarjeta de "Respuesta al comentario" en la parte superior |
/vfx plan | Varios efectos en una sola renderización |
/vfx showcase | Envuelve un clip renderizado en una interfaz de Claude-app: comandos escritos, encabezado "Editado con /vfx X", sonidos de escritura + efectos y una CTA final |
Entradas
- El video (preferiblemente un talking-head vertical 9:16) y, por efecto, los textos exactos y la sincronización.
Nunca inventes textos que el usuario no haya proporcionado; pregunta una vez si faltan. La sincronización puede provenir de una palabra clave (consulta
words). - Guarda la salida junto al archivo fuente como
<nombre>_vfx.mp4.
Configuración (una vez)
- Los scripts se encuentran junto a este archivo:
scripts/vfx.py,scripts/compose.py(invócalos con la ruta completa). - Necesita
ffmpeg, Node/npm (las fuentes y el modelo de segmentación se descargan una vez connpm packen ~/.cache/vfx) ypip install numpy pillow fonttools python-bidi ai-edge-litert "opencv-python-headless<5". Opcional:pip install rembg onnxruntime(bordes de cabello más limpios, se usa automáticamente),pip install faster-whisper(sincronización de palabras).
Flujo de trabajo
ffprobeal clip. Si hay poco espacio sobre la cabeza, los títulos caen automáticamente al tercio inferior; sugiere reencuadrar.- Sincronización desde el habla:
python3 scripts/vfx.py words clip.mp4 --lang he-> líneas{word,start,end}. - Renderizar:
Variante strike (solo plan.json):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 alguien --text "..." --at 17 --dur 4 python3 scripts/vfx.py plan in.mp4 out.mp4 plan.json # [{"fx":"strike","text":..,"at":..}, ...]"front_first": truecoloca la primera palabra SOBRE la cara, delante del orador, y la palabra de intercambio DETRÁS de la cabeza (ej. "מלפנים" -> "מאחור");"overlap": 0.45oculta más parte detrás de la cabeza. Variante echo (plan.json):"linger": truemantiene las copias de contorno en pantalla (respirando suavemente) hasta que el efecto termine. Opciones:--y(altura fija del título, como fracción del fotograma; súbelo si la cabeza oculta letras),--color, freeze-mark--x --y --rpara rodear otra cosa,--seg fast|quality,--crf. - Showcase (opcional):
python3 scripts/compose.py fx.mp4 final.mp4 schedule.json{"intro": 2.4, "cta": 3.2, "cmds": [{"cmd": "strike", "send": 0.0, "desc": "Dilo, táchalo, cámbialo", "sfx": [["swish", 0.9], ["pop", 1.5]]}, {"cmd": "echo", "send": 2.75, "desc": "Título grande, estallido de eco", "sfx": [["boom", 2.8]]}], "cta_lines": ["רוצים את הסקיל", "של 5 הפקודות?"], "cta_button": "תגיבו "סקיל""}send= segundo del clip en que se envía el comando (ajusta elatde cada efecto ~0.05 s después). El primer comando se escribe en la intro. Sonidos: key, send, whoosh, swish, pop, boom, shutter, power, ding, chime. - Verificar: toma 2-3 fotogramas por efecto (
ffmpeg -ss T -i out.mp4 -frames:v 1 f.png), revísalos (texto legible, rostro visible, hebreo de derecha a izquierda, nada cortado), corrige y vuelve a renderizar. Luego entrega con una línea por efecto.