Communitygithub.com

netfire222/vfx

리얼 VFX 팩 - /vfx strike, echo, spotlight, freeze-mark, pinned-comment. 화자 뒤에 애니메이션 제목 표시, 단어 강조 및 교체, 네온 스포트라이트, 얼굴 프리즈 및 원형 강조, 댓글 카드 등을 토킹헤드 영상에 추가합니다 (히브리어 + 영어 지원). 선택적으로 /vfx showcase를 사용하면 Claude 앱 UI로 결과물을 감싸 타이핑 명령, 효과음, CTA를 제공합니다.

vfx란 무엇인가요?

이 스킬은 토킹헤드 영상에 전문적인 VFX 효과를 추가하는 도구입니다. 주요 기능으로는 화자 뒤에 큰 제목을 표시하는 'strike' (단어 강조 후 교체), 에코 효과가 있는 'echo', 배경을 어둡게 하고 네온 제목을 표시하는 'spotlight', 얼굴을 프리즈하고 빨간 원을 그리는 'freeze-mark', 상단에 댓글 카드를 표시하는 'pinned-comment'가 있습니다. 히브리어와 영어를 완벽하게 지원하며, 사용자의 음성 타이밍을 분석하여 자동으로 효과를 동기화할 수 있습니다. 또한 'showcase' 명령어를 통해 완성된 클립을 Claude 앱 UI 형태로 감싸 타이핑 명령어와 효과음, CTA 버튼을 추가하는 기능도 제공합니다. 스킬은 Python 스크립트와 ffmpeg, Node.js를 기반으로 동작하며, 한 번 설정하면 명령줄에서 간편하게 사용할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/netfire222/vfx-skill/tree/HEAD/vfx

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

/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 (단어 타이밍).

워크플로우

  1. ffprobe로 클립을 분석합니다. 머리 위 공간이 부족하면 제목이 자동으로 하단 1/3로 내려가며, 재구성을 제안합니다.
  2. 음성에서 타이밍 추출: python3 scripts/vfx.py words clip.mp4 --lang he -> {word,start,end} 줄.
  3. 렌더링:
    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":..}, ...]
    
    Strike 변형 (plan.json 전용): "front_first": true는 첫 번째 단어를 얼굴 위, 화자 앞에 배치하고, 교체 단어는 머리 뒤에 배치합니다 (예: "앞" -> "뒤"); "overlap": 0.45는 단어를 머리 뒤로 더 숨깁니다. Echo 변형 (plan.json): "linger": true는 에코 복사본을 화면에 유지합니다 (부드럽게 움직이며) 효과가 끝날 때까지. 옵션: --y (고정 제목 높이, 프레임의 분수; 머리가 글자를 가리면 높이세요), --color, freeze-mark --x --y --r로 다른 것을 원형 표시, --seg fast|quality, --crf.
  4. 쇼케이스 (선택 사항): 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.
  5. 검증: 효과당 2-3 프레임을 캡처하여 (ffmpeg -ss T -i out.mp4 -frames:v 1 f.png), 텍스트 가독성, 얼굴 가시성, 히브리어 오른쪽에서 왼쪽, 잘린 부분 없음 등을 확인하고 수정 후 다시 렌더링합니다. 그런 다음 효과당 한 줄씩 전달합니다.

관련 스킬