/vfx - 토킹헤드 릴을 위한 VFX 팩
큰 제목이 화자 뒤에 그려지며 (사람 분할), 자동으로 머리 위에 배치됩니다. 히브리어/RTL 완벽 지원.
| 명령어 | 기능 |
|---|---|
/vfx strike | 머리 위에 큰 단어 표시 -> 빨간 줄로 긋고 -> 새 단어로 교체 |
/vfx echo | 큰 제목이 등장하면서 에코 복사본이 폭발하듯 퍼져 나감 |
/vfx spotlight | 배경이 어두워지고, 화자에게 따뜻한 조명, 깜빡이는 네온 제목 |
/vfx freeze-mark | 프리즈 + 플래시 + 확대 + 얼굴 주위에 손으로 그린 빨간 원 (+ 선택적 레이블) |
/vfx pinned-comment | "댓글에 답변" 카드가 상단에 나타남 |
/vfx plan | 여러 효과를 한 번에 렌더링 |
/vfx showcase | 렌더링된 클립을 Claude 앱 UI로 감쌈: 타이핑 명령어, "/vfx X로 편집" 헤더, 타이핑 + 효과음, 종료 CTA |
입력
- 비디오 (세로 9:16 토킹헤드가 가장 좋음)와, 각 효과에 대한 정확한 텍스트 및 타이밍.
사용자가 제공하지 않은 텍스트를 절대 임의로 만들지 말고, 누락된 경우 한 번만 물어보세요. 타이밍은 트리거 단어에서 가져올 수 있습니다 (
words참조). - 출력은 소스 옆에
<name>_vfx.mp4로 저장합니다.
설정 (한 번만)
- 스크립트는 이 파일 옆에 있습니다:
scripts/vfx.py,scripts/compose.py(전체 경로로 호출). ffmpeg, Node/npm (글꼴 및 분할 모델은npm pack으로 한 번 가져와 ~/.cache/vfx에 저장) 및pip install numpy pillow fonttools python-bidi ai-edge-litert "opencv-python-headless<5"필요. 선택 사항:pip install rembg onnxruntime(더 깔끔한 머리카락 가장자리, 자동 사용됨),pip install faster-whisper(단어 타이밍).
워크플로우
ffprobe로 클립을 분석합니다. 머리 위 공간이 부족하면 제목이 자동으로 하단 1/3로 내려가며, 재구성을 제안합니다.- 음성에서 타이밍 추출:
python3 scripts/vfx.py words clip.mp4 --lang he->{word,start,end}줄. - 렌더링:
Strike 변형 (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 someone --text "..." --at 17 --dur 4 python3 scripts/vfx.py plan in.mp4 out.mp4 plan.json # [{"fx":"strike","text":..,"at":..}, ...]"front_first": true는 첫 번째 단어를 얼굴 위, 화자 앞에 배치하고, 교체 단어는 머리 뒤에 배치합니다 (예: "앞" -> "뒤");"overlap": 0.45는 단어를 머리 뒤로 더 숨깁니다. Echo 변형 (plan.json):"linger": true는 에코 복사본을 화면에 유지합니다 (부드럽게 움직이며) 효과가 끝날 때까지. 옵션:--y(고정 제목 높이, 프레임의 분수; 머리가 글자를 가리면 높이세요),--color, freeze-mark--x --y --r로 다른 것을 원형 표시,--seg fast|quality,--crf. - 쇼케이스 (선택 사항):
python3 scripts/compose.py fx.mp4 final.mp4 schedule.json{"intro": 2.4, "cta": 3.2, "cmds": [{"cmd": "strike", "send": 0.0, "desc": "말하고, 긋고, 바꾸기", "sfx": [["swish", 0.9], ["pop", 1.5]]}, {"cmd": "echo", "send": 2.75, "desc": "큰 제목, 에코 폭발", "sfx": [["boom", 2.8]]}], "cta_lines": ["5개 명령어", "스킬 원하세요?"], "cta_button": ""스킬" 댓글"}send= 명령이 전송되는 클립 시간 (각 효과의at을 그 직후 ~0.05초로 설정). 첫 번째 명령은 인트로에서 타이핑됩니다. 효과음: key, send, whoosh, swish, pop, boom, shutter, power, ding, chime. - 검증: 효과당 2-3 프레임을 캡처하여 (
ffmpeg -ss T -i out.mp4 -frames:v 1 f.png), 텍스트 가독성, 얼굴 가시성, 히브리어 오른쪽에서 왼쪽, 잘린 부분 없음 등을 확인하고 수정 후 다시 렌더링합니다. 그런 다음 효과당 한 줄씩 전달합니다.