Communitygithub.com

raycfu/effects

토킹헤드 영상에 51가지 비디오 효과를 추가하세요 (orbit, spotlight, glass widgets, timeline, checklist, headline wall, comment box, phone fan, liquid glass graph, match-cut, iPhone toggles, LED sign, over-the-shoulder zoom, iMessage pop-ups, place-in-grid 등). 효과는 화자의 얼굴을 추적하며 머리 뒤에 배치할 수 있습니다. 사용자가 /effects를 입력하거나, 효과 이름을 말하거나, 영상에 효과/줌/등급/스티커/애니메이션을 추가해 달라고 요청할 때 사용하세요.

effects란 무엇인가요?

이 스킬은 토킹헤드 영상에 51가지의 전문적인 비디오 효과를 추가할 수 있는 강력한 도구입니다. 효과는 화자의 얼굴을 추적하여 머리 뒤나 주변에 자연스럽게 배치되며, orbit, spotlight, glass widgets, timeline, checklist, headline wall, comment box, phone fan, liquid glass graph, match-cut, iPhone toggles, LED sign, over-the-shoulder zoom, iMessage pop-ups, place-in-grid 등 다양한 효과를 지원합니다. 이 스킬은 Claude Code, Cursor, Codex와 같은 AI 에이전트 플랫폼에서 사용할 수 있으며, 사용자가 비디오 파일과 원하는 효과를 설명하면 자동으로 효과를 적용합니다. Python 기반의 스크립트를 사용하여 FFmpeg와 같은 외부 도구에 의존하며, Mac과 Windows 모두에서 실행 가능합니다. 주요 특징으로는 효과 타이밍을 단어 단위로 정밀하게 제어할 수 있고, 여러 효과를 순서대로 조합하여 계획(plan) JSON 파일로 관리할 수 있습니다. 또한 체크 프레임을 미리 생성하여 효과가 얼굴을 가리지 않는지 확인한 후 최종 렌더링할 수 있어 효율적인 워크플로우를 제공합니다. 각 효과는 다양한 옵션을 통해 커스터마이징이 가능하며, Robust Video Matting을 지원하여 인물 컷아웃 품질도 뛰어납니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/raycfu/claude_design_skills/tree/HEAD/effects

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

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

문서

Effects: 51개의 비디오 효과 (by Ray, @raycfu)

사용자는 일반적으로 기술에 익숙하지 않습니다. 답변은 짧고 친절하게 유지하고, 사용자를 대신하여 작업을 수행하며, 절대로 사용자에게 직접 명령어를 실행하도록 요청하지 마세요.

아래 모든 경로는 이 스킬의 폴더(이 SKILL.md가 있는 폴더)를 기준으로 합니다. 절대 경로를 사용하세요.

1. 첫 실행: 설정 (한 번만)

bash scripts/setup.sh를 실행하세요. 완료되면 READY를 출력합니다 (첫 번째 실행은 1~3분 소요).

  • NEED_FFMPEG: 사용자를 위해 설치합니다. Mac: brew install ffmpeg (brew가 없으면 brew.sh에서 Homebrew를 먼저 설치하도록 안내). Windows: winget install ffmpeg.
  • NEED_PYTHON: Python 3.12를 설치합니다 (Mac: brew install [email protected], Windows: winget install Python.Python.3.12), 그런 다음 setup을 다시 실행합니다.
  • Windows에서 Python은 .venv\Scripts\python.exe에 있습니다 (.venv/bin/python가 아님).
  • bash가 없는 Windows: py -3.12 -m venv .venv 실행 후 .venv\Scripts\python.exe -m pip install -r requirements.txt를 실행하세요. 선택적으로 더 나은 컷아웃을 위해 https://github.com/PeterL1n/RobustVideoMatting/releases/download/v1.0.0/rvm_mobilenetv3_fp32.onnx 를 models/에 다운로드하세요.
  • NEED_PYTHON_312: 기본 Python이 패키지를 설치할 수 없었습니다. 위와 같이 Python 3.12를 설치하고 setup을 다시 실행하세요.
  • TensorFlow Lite, MediaPipe 또는 OpenCV의 무해한 로그 줄(INFO:, WARNING:, W0000, [ WARN)은 정상입니다. Done: 또는 saved만 성공을 의미합니다.

2. 영상과 효과 가져오기

  • 영상: 사용자가 파일을 채팅으로 드래그하거나 경로를 제공합니다. 세로로 촬영된 전화 영상이 가장 잘 작동합니다.
  • 효과: /effects <이름>를 통해 또는 사용자가 설명하는 내용에서 가져옵니다. 아래 표를 참고하여 사용자의 말을 일치시키세요. 확실하지 않으면 목록을 보여주세요.
  • 이름과 핸들: 프로필을 표시하는 효과(glass-widgets, comment-box, pastel-word, profile-wall, headline-wall 등)는 기본값으로 Ray / @raycfu를 사용합니다. 사용자에게 한 번 물어보고 모든 효과에 name과 handle을 전달하세요.

3. 타이밍 찾기

  • 사용자가 "X라는 단어에서" 또는 "...라고 말할 때"라고 말하면 .venv/bin/python scripts/words.py <video>를 실행하고 해당 시간을 사용하세요.
  • 타이밍을 지정하지 않으면 전체 클립에 효과를 적용하거나, 어느 부분인지 짧게 물어보세요.
  • 짧은 창이 가장 좋아 보입니다: 효과당 1.5~4초.

4. 초안, 확인, 렌더링

  1. 영상 옆에 <video-name>_effects.json 계획을 작성하세요:
    {"effects": [
      {"fx": "orbit", "start": 3.2, "end": 6.0},
      {"fx": "backdrop-word", "start": 14.0, "end": 16.3, "text": "CLAUDE"}
    ]}
    
  2. 먼저 프레임을 빠르게 확인하세요: .venv/bin/python scripts/fx.py --plan <plan.json> <video> <folder>/check.png --still 4.5,15.2, 각 효과의 중간 시간을 사용합니다. PNG를 직접 확인하세요. 텍스트, 타이밍 또는 옵션이 잘못된 경우(얼굴 가림, 가장자리 잘림, 읽기 어려움) 수정하세요.
  3. 렌더링: .venv/bin/python scripts/fx.py --plan <plan.json> <video> <video-name>_effects.mp4. 출력물은 원본 오디오를 유지합니다. 기본적으로 1080p로 렌더링되며 --width 2160을 추가하면 4K로 렌더링됩니다 (느림).
  4. 파일 위치를 알려주세요. 게시하기 전에 시청하라고 한 줄로 상기시키세요: 초안을 작성하고 사용자가 승인합니다.

단일 효과는 계획이 필요 없습니다: .venv/bin/python scripts/fx.py orbit <video> <out.mp4> --start 3 --end 6 --text "..." --opt key=value.

51가지 효과

#fx 이름기능옵션 (모두 선택 사항)
1noise0.25초마다 릴이 머리 뒤에 쌓입니다images (스크린샷 또는 클립 폴더), size
2lineup번호가 매겨진 타일이 머리 위에 아치형으로 펼쳐집니다text (타일 이름, |로 연결)
3locked-on모서리 브래킷이 얼굴에 고정되고, 카메라가 따라다닙니다zoom (기본값 1.35), text (태그)
4orbit릴이 머리 주위를 원형으로 회전합니다: 앞쪽은 아래, 뒤쪽은 위images, count, speed, size
5lean-in한 단어에 빠르게 확대됩니다zoom (기본값 1.45, 최대 2), speed
6backdrop-word거대한 단어가 뒤에서 떨어집니다text, color (hex), font (bold 또는 serif)
7spotlight조명을 끄고, 당신만 밝게 유지합니다text (뒤에서 빛나는 단어), color, push
8the-bill머리 위 벽에 영수증처럼 지침을 출력합니다text (줄, |로 연결)
9moody분위기 있는 색상 그레이딩grade (moody, bw, warm, cool, pop)
10swipebefore/after 슬라이더가 당신을 가로질러 스와이프됩니다grade ("after" 모양)
11todo머리 옆 체크리스트 카드가 말할 때마다 체크됩니다text (항목, |로 구분), ticks (비디오 초, |로 구분), title
12comment-boxInstagram 댓글 바가 단어를 입력하고 게시합니다text (기본값 EFFECTS)
13tapFollow 버튼이 나타나고 Following으로 전환됩니다at (전환되는 비디오 초), x, y (0~1), color
14pause-point프레임을 멈추고 손으로 그린 화살표로 당신을 가리킵니다text (라벨), color, label_x
15uninstall글리치한 제거 바가 프레임을 분해합니다text
16reel-frame영상이 Instagram 릴 카드로 축소됩니다text (핸들)
17shortcut-rain키보드 키가 뒤에서 비처럼 내립니다text (키, |로 구분), count
18reject-stamp큰 빨간 도장이 화면에 찍힙니다text, color, angle, y
19countdown-flip머리 위에 3, 2, 1 플립 시계from
20rabbit-hole프레임이 터널처럼 안으로 들어가며 회전합니다ratio, speed, spin
21cover-star당신이 잡지 표지가 됩니다, 제목은 머리 뒤에text (제목), lines (|로 구분), issue, color
22scribble마커 낙서가 당신 주위에 그려집니다text (라벨), color
23glass-widgets프로스트 유리 위젯과 미니 아티팩트가 머리 주위를 떠다니고, Edited by Claude 알약이 함께 표시됩니다text (큰 숫자), name, handle, look (simple은 3-위젯 버전)
24red-collage흑백의 당신, 뒤에 거대한 빨간 단어, 세 줄이 슬램인됩니다text (빨간 단어), lines (|로 구분), tag
25split-headline헤드라인 카드가 아래로 미끄러지며 당신을 하단 절반으로 밀어냅니다text (줄, |로 구분), hl (강조 표시된 단어), pill
26pastel-word라벤더 방, 뒤에 거대한 단어, 프로필 카드가 팔로우됩니다text, name, handle
27check-pills모눈종이 방, 뒤에 릴 보드, 커서가 파란 알약을 클릭합니다text (알약, |로 구분), images
28timeline어두운 빨간색 필름 그레이딩, 편집 타임라인, REC 타임코드, 빛나는 플레이헤드text (제목), sub, tc
29headline-box두 줄 헤드라인이 있는 확대 효과, 두 번째 줄은 흰색 상자 안에text (줄, |로 구분), zoom
30profile-wall당신의 릴 그리드가 뒤 벽을 채우고 카운터가 올라갑니다images, count, label
31tier-list티어 목록이 나타나고 Claude가 S 티어로 날아갑니다title, item, others
32broll-split상단에 B-롤과 가격표 스티커, 아래에 당신images, text (태그)
33phone-fan당신의 릴이 헤드라인 아래에서 핸드폰 카드처럼 펼쳐집니다images, text (줄, |로 구분)
34dot-reveal당신의 샷이 빛나는 점들로 만들어지다가 전체 그림으로 스냅됩니다color, cell
35headline-wall당신의 헤드라인이 머리 뒤에 쌓이고, 합계가 앞에 나타납니다text (headline::meta|...), total, label
36checklist턱 아래 Claude 작업 목록: 각 단계가 회전한 후 녹색으로 체크됩니다text (step::meta|...), title
37liquid-glass-graph턱 아래 액체 유리 카드: 녹색 그래프가 상승하고 숫자가 카운트업됩니다text (라벨), from, to (예: 197K, 59%), color
38carousel-spin당신의 릴이 3D 회전목마처럼 주위를 돌다가 천천히 멈춥니다images, count, size, turns
39match-cut뉴스 페이지가 한 단어로 잘리며, 머리 뒤 빨간 상자에 고정됩니다text (단어, 기본값 Claude), color
40apple-toggles턱 아래 iPhone 설정 카드가 한 줄씩 스위치를 켭니다text (행, |로 구분), ticks (초, |로 구분), color
41led-sign조명이 내려가고 빛나는 LED 간판이 뒤에서 타이핑됩니다text (줄, |로 구분), color, push
42slow-push얼굴로 천천히 영화 같은 푸시인, 방이 초점 밖으로 녹습니다zoom (기본값 1.6), blur
43over-the-shoulder-zoom카메라가 한쪽 상단 모서리로 푸시인되고 투명 액체 유리 그래프가 머리 옆에 나타나며(선 상승, 숫자 카운트업), 다시 뒤로 물러난 후 다른 쪽 모서리에 두 번째 관련 막대 그래프가 표시됩니다. 머리는 앞에 유지됩니다text (두 라벨, |로 구분), to (두 숫자, |로 구분, 예: 197K|672K), zoom (기본값 2.0)
44messagesiMessage 알림이 하나씩 나타나며, 부드러운 광택이 있는 크리미한 유리 스타일, 프레임 하단 위로 쌓입니다text (메시지, |로 구분), title (기본값 Messages), y
45place-in-grid프로스트 유리의 3x3 프로필 그리드 중앙 타일로 축소된 후, 8개의 릴이 주위에 나타나며 각 타일에는 Instagram 조회수가 표시됩니다images (릴 또는 커버 폴더), views (9개 조회수, |로 구분, 9번째는 당신의 것)
46tape-label노란 테이프 조각에 당신의 문구가 가슴에 붙고, 얼굴을 피합니다text
47select-resize핸들이 있는 파란색 선택 상자가 머리 위 숫자를 잡고 커서가 더 크게 드래그합니다text (기본값 2X)
48wave-trim머리 위 어두운 패널에 음성이 표시되고 양쪽 끝의 빨간 점선 무음 부분이 축소되어 말만 남습니다없음
49huge-strike큰 세리프 단어 하나가 머리 뒤로 스와이프되고 빨간 선이 그어집니다text, at (효과 시작 후 취소선이 나타나는 초, 기본값 0.6)
50crayon-write빨간 크레용이 머리 뒤에 단어를 쓰고 밑줄을 긋고 날아갑니다text
51fan-build릴 커버가 머리 뒤에서 한 장씩 부채처럼 펼쳐집니다images (커버 폴더), count (기본값 13)

명명된 룩 (동일 효과, 더 화려한 버전; 개수에 포함되지 않음):

  • glitter-spotlight = look=sparkle이 있는 spotlight: 방이 어두워지고, 금빛 광선이 머리 뒤에서 터져 나오며, 큰 금색 단어에 광택 스윕, 반짝이는 스파클과 주변에 글로우가 생깁니다. text (단어), color, push.
  • look=editorial이 있는 cover-star: 부드럽고 따뜻한 필름 룩, 머리 뒤에 클래식한 세리프 마스트헤드, 이슈 라인과 우아한 커버 라인. text (마스트헤드), issue, lines (3줄, \|로 구분), right (줄, \|로 구분), color, accent, lines_y, right_y.
  • look=bento가 있는 liquid-glass-graph: 상승 그래프가 머리 뒤의 스모크 유리 화면으로 이동하고, 앞에는 유리 벤토 타일(도넛, KPI, 막대)이 있습니다. text, from, to, donut (29%::label), kpi (672K::label), bars (197\|140\|124::label).
  • apple-toggles는 이제 위에 위치하며 머리 뒤에 배치되고 부드러운 줌이 적용됩니다 (pos=below는 이전 턱 아래 카드용; overlap, zoom).

별칭도 작동합니다: bill, to-do, follow, stamp, countdown, cover, rain, pause.

규칙

  • 절대 얼굴을 가리지 마세요. 모든 것은 사람 뒤에 가거나 자동으로 얼굴을 피해야 합니다. 확인 프레임에서도 얼굴 위에 텍스트가 보이면 이동(x, y)하거나 텍스트를 줄이세요.
  • 효과는 나열된 순서대로 실행됩니다. 다른 효과와 겹칠 경우 카메라 효과(locked-on, lean-in, spotlight)를 먼저 배치하세요.
  • 줌은 2배를 넘지 않아야 영상이 선명하게 유지됩니다.
  • 이 스킬은 시각적 요소만 추가합니다. 음향 효과와 자막은 사용자가 알아서 처리합니다 (CapCut이 잘 작동합니다).
  • 이들은 초기 버전입니다. 사용자가 본 릴과 비교할 경우 이 점을 솔직하게 알리세요.

추가 옵션 (Ray's 에디션)

실제 영상에서 어색해 보이는 부분을 수정하기 위해 기본 효과 위에 추가된 옵션입니다. 다른 옵션과 같이 전달하세요 (계획에서 "key": "value" 또는 --opt key=value).

효과옵션기능
모든 카드/orbit 효과play=1images 폴더의 각 비디오를 정지 이미지 대신 카드 내에서 재생합니다
liquid-glass-graphpos=behind그래프를 가슴 대신 머리 뒤의 어두운 유리 화면에 배치합니다
liquid-glass-graphsmoke=0.5..0.85투명 액체 유리 대신 어두운 스모크 유리 사용 (몸이 번져 보이지 않음)
liquid-glass-graph, over-the-shoulder-zoomto=$32,000통화 접두사와 천 단위 구분 기호가 올바르게 카운트업됩니다
checklistsmoke, scale=0.86, bottom=0.95, guard=0어둡고 읽기 쉬운 카드, 더 작게, 낮게 위치하여 얼굴에 닿지 않음
checklistspan=2.9체크가 도착하는 시간(초), 마지막 체크가 사용자의 제스처와 맞춰짐
spotlightflicker=0, lift=0.8네온 깜박임 효과를 끄거나 단어를 낮춰 머리가 일부를 가리도록 함
cover-starmast_y=0.15고정된 마스트헤드 높이 (더 좁은 크롭과 함께 사용하여 머리가 겹치도록 함)
comment-boxlock=1, avatar_color=#FDB827댓글 시트를 고정하고 아바타 색상을 설정 (글자는 handle에서 가져옴)

카드 앞에 손이 있는 경우: 효과를 렌더링한 후 .venv/bin/python scripts/hands_front.py <original> <with_effect> <out>를 실행하세요.

컷아웃 품질: models/rvm_mobilenetv3_fp32.onnx가 존재하면 모든 효과가 Robust Video Matting을 사용하여 인물 컷아웃을 수행합니다 (더 깔끔한 머리카락, 깜박임 없음). 원래 MediaPipe 세그멘터를 사용하려면 FX_MATTE=mp를 설정하세요.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬