/vfx - Pacote de VFX para reels de cabeça falante
Títulos grandes são desenhados atrás do orador (segmentação de pessoas) e posicionados automaticamente acima da cabeça. Suporte completo a hebraico/RTL.
| Comando | O que faz |
|---|---|
/vfx strike | Palavra grande acima da cabeça -> linha vermelha a risca -> troca por uma nova palavra |
/vfx echo | Título grande aparece com cópias de eco do contorno explodindo |
/vfx spotlight | Fundo escurece, luz quente no orador, título neon piscando |
/vfx freeze-mark | Congelamento + flash + zoom + círculo vermelho desenhado à mão ao redor do rosto (+ rótulo opcional) |
/vfx pinned-comment | Cartão "Responder ao comentário" aparece no topo |
/vfx plan | Vários efeitos em uma única renderização |
/vfx showcase | Envolve um clipe renderizado em uma interface do Claude-app: comandos digitados, cabeçalho "Editado com /vfx X", sons de digitação e efeitos, chamada para ação no final |
Entradas
- O vídeo (vertical 9:16 de cabeça falante funciona melhor) e, por efeito, os textos exatos e os tempos.
Nunca invente textos que o usuário não forneceu; pergunte uma vez se estiver faltando. O tempo pode vir de uma palavra de gatilho (veja
words). - Salve a saída ao lado da fonte como
<nome>_vfx.mp4.
Configuração (uma vez)
- Os scripts estão localizados ao lado deste arquivo:
scripts/vfx.py,scripts/compose.py(chame-os pelo caminho completo). - Necessita de
ffmpeg, Node/npm (fontes e modelo de segmentação são obtidos uma vez comnpm packem ~/.cache/vfx) epip install numpy pillow fonttools python-bidi ai-edge-litert "opencv-python-headless<5". Opcional:pip install rembg onnxruntime(bordas de cabelo mais limpas, usado automaticamente),pip install faster-whisper(tempo de palavras).
Fluxo de trabalho
- Execute
ffprobeno clipe. Pouco espaço acima da cabeça -> os títulos caem automaticamente para o terço inferior; sugira reenquadrar. - Tempo a partir da fala:
python3 scripts/vfx.py words clip.mp4 --lang he-> linhas{palavra,início,fim}. - Renderize:
Variante de strike (apenas 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 alguem --text "..." --at 17 --dur 4 python3 scripts/vfx.py plan in.mp4 out.mp4 plan.json # [{"fx":"strike","text":..,"at":..}, ...]"front_first": truecoloca a primeira palavra SOBRE o rosto, na frente do orador, e a palavra de troca ATRÁS da cabeça (ex.: "מלפנים" -> "מאחור");"overlap": 0.45esconde mais dela atrás da cabeça. Variante de echo (plan.json):"linger": truemantém as cópias do contorno na tela (respirando suavemente) até o efeito terminar. Opções:--y(altura fixa do título, fração do quadro; aumente se a cabeça esconder letras),--color, freeze-mark--x --y --rpara circular outra coisa,--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": "Diga, risque, troque", "sfx": [["swish", 0.9], ["pop", 1.5]]}, {"cmd": "echo", "send": 2.75, "desc": "Título grande, explosão de eco", "sfx": [["boom", 2.8]]}], "cta_lines": ["רוצים את הסקיל", "של 5 הפקודות?"], "cta_button": "תגיבו \"סקיל\""}send= segundo do clipe em que o comando é enviado (defina oatde cada efeito ~0,05s após ele). O primeiro comando é digitado na introdução. Sons: key, send, whoosh, swish, pop, boom, shutter, power, ding, chime. - Verifique: capture 2-3 quadros por efeito (
ffmpeg -ss T -i out.mp4 -frames:v 1 f.png), observe-os (texto legível, rosto visível, hebraico da direita para a esquerda, nada cortado), corrija e re-renderize. Entregue com uma linha por efeito.