Communitygithub.com

RAW KINETIQ

노래 파일을 완성된 키네틱 타이포그래피 리릭 비디오(MP4)로 변환합니다. 모든 단어가 정확한 타이밍에 맞춰지고, 전체적인 비주얼(색상, 폰트, 모션, 배경)은 노래의 내용과 느낌에 따라 디자인됩니다. Whisper로 자막을 추출하고, Demucs로 보컬을 분리하며, 비트에 맞춰 비주얼을 동기화하고, 사용자의 이미지를 배치하며, 렌더링 전 자체 점검을 수행하고, Remotion으로 렌더링합니다.

RAW KINETIQ란 무엇인가요?

RAW KINETIQ은 사용자가 제공한 오디오 파일을 전문적인 키네틱 타이포그래피 리릭 비디오(MP4)로 제작하는 AI 에이전트 기술입니다. 이 스킬은 노래의 장르, 분위기, 가사 내용을 분석하여 색상, 폰트, 모션, 배경 등 모든 시각적 요소를 노래 자체에서 디자인합니다. Claude Code, Cursor, Codex 등 다양한 AI 코딩 에이전트에서 사용할 수 있으며, Python(Whisper, Demucs, librosa) 및 Node.js(Remotion) 기반의 파이프라인을 자동으로 실행합니다. 주요 기능으로는 빠른 Whisper를 이용한 자막 생성, Demucs를 이용한 보컬 분리, BPM 및 에너지 분석을 통한 비트 동기화, 사용자 이미지(로고, 사진 등) 통합, SVG 기반 애니메이션 구현(순수 코드, 이미지 생성기 사용 안 함), 자체 점검(self-check)을 통한 품질 보증 등이 있습니다. YouTube용 가로(16:9), TikTok/Reels/Shorts용 세로(9:16), 정사각형(1:1) 등 다양한 형식을 지원하며, 항상 60fps를 기본값으로 합니다. 모든 결정은 '이 노래에 무엇이 맞는가'에 기반하여 두 곡이 같은 스타일로 나오지 않도록 설계되었습니다. 이 스킬은 단순히 미리 정의된 템플릿을 적용하는 것이 아니라, 노래의 고유한 세계관을 시각화하는 데 중점을 둡니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bani4kaskashka/Claude-Skill-Raw-Kinetiq/tree/main/skills/raw-kinetiq

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

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

문서

RAW KINETIQ은(는) 무엇을 하나요?

노래 파일을 입력하면 MP4를 출력합니다. 파이프라인은 이미 구축되어 있습니다. 당신의 역할은 이를 실행하고, 편집자처럼 타이밍을 검토하며, 기계가 잘못 처리한 부분을 수정하는 것입니다. 완성된 비디오는 모든 단어가 노래되는 순간에 정확히 표시되고, 비주얼이 트랙의 에너지에 맞춰 숨 쉬는 듯한 느낌을 주어야 합니다.

비디오는 노래를 기반으로 디자인되며, 노래가 하우스 스타일에 맞춰지는 것이 아닙니다. 노래가 무엇에 관한 것인지, 어떤 느낌인지, 장르와 템포가 모든 것을 결정합니다: 색상, 폰트, 화면에 표시되는 단어의 수, 단어의 등장 및 퇴장 방식, 위치, 카메라의 움직임 강도, 배경에 무엇이 있는지, 사용자의 이미지가 어디에 배치되는지 등이 결정됩니다. 선택할 수 있는 사전 설정은 없으며, 조합할 수 있는 도구 키트(references/toolkit.md)만 있습니다. 노래에 도구 키트가 다루지 못하는 이미지가 있다면, 그 노래를 위해 직접 구축해야 합니다. 두 곡이 같은 모습으로 나와서는 안 되며, 비디오는 YouTube에서 다른 누구의 것과도 달라야 합니다. 창의적으로, 위험을 감수하고, 그런 다음 작업을 점검(5단계)하여 위험이 효과를 발휘하도록 하십시오.

단어의 의미에 따라 비디오가 움직입니다. 배경과 글자만 바뀌는 비디오는 슬라이드쇼에 불과합니다. 가사에 '무언가를 쥐다'라는 표현이 나오면 손이 그 무언가를 쥐어야 하고, '입'이라는 단어가 나오면 입이 열리며 카메라가 그 안으로 들어가야 하며, '모든 출구를 알고 있다'고 말하면 출구 표지판이 빠르게 지나가야 합니다. 이러한 순간들은 코드로 직접 그려집니다(SVG 모양, Remotion에서 애니메이션 처리됨, 절대 이미지 생성기 사용 안 함). 그리고 해당 단어에 맞춰 시간이 조정됩니다(4b단계).

경로: SKILL = 이 스킬의 폴더(${CLAUDE_SKILL_DIR}), PY = setup_env.sh가 출력하는 Python 경로(Windows에서는 ~/.raw-kinetiq/venv/Scripts/python.exe, 그 외에는 ~/.raw-kinetiq/venv/bin/python). .sh 스크립트에는 Bash 도구를 사용하십시오(Windows에서는 Git Bash).

0. 사용자에게 필요한 것

노래만 있으면 됩니다. 노래(및 가사가 있다면)를 받은 후, 한 번에, 단일 AskUserQuestion 호출로 비주얼 관련 질문을 모두 물어봅니다. 사용자가 이미 답변한 질문은 건너뜁니다. 사용자가 '그냥 해줘'라고 하거나 자리에 없으면 기본값을 사용하고 어떤 값을 사용했는지 알려주십시오.

질문 (헤더)옵션기본값
형식16:9 (1920x1080) (권장) / TikTok, Reels, Shorts용 세로 9:16 (1080x1920) / 정사각형 (1080x1080)16:9
느낌노래에서 디자인 (권장) / 또는 이 노래의 자체 이미지에서 파생된 2-3가지 구체적인 방향을 일반 언어로 설명 (예: 열병에 관한 노래라면 '열기 속에서 떨리는 단어들, 검은색 바탕에 땀처럼 노란색'). '기타'를 선택하면 사용자가 자신의 말로 분위기를 설명할 수 있음노래에서 디자인
오버레이 (다중 선택)아티스트 이름 (왼쪽 상단) / 섹션 이름 (왼쪽 하단) / 타이머 + 진행 표시줄 / BPM + 비트 카운터. 아무것도 선택하지 않으면 깔끔한 뮤직비디오가 생성됨을 질문에 명시하십시오없음
에셋'비디오에 포함할 이미지(커버 아트, 사진, 로고, 당신의 사진)가 있습니까?' 아니요, 노래에서 디자인 (권장) / 예, 여기로 보내겠습니다 / 예, 폴더에 있습니다아니요

답변은 new_project.sh 플래그에 매핑됩니다: --size 및 --overlays artist,section,timer,bpm(선택된 것만). 사용자가 다른 요청을 하지 않는 한 항상 60fps입니다. 느낌은 사용자의 답변에 따라 2b단계에서 디자인합니다.

사용자에게 에셋이 있다면 즉시 답변하십시오: '보내주세요(또는 폴더 위치를 알려주세요), 그리고 각각이 무엇인지나 어디에 두길 원하는지에 대해 간단히 설명해 주시면 좋습니다(선택사항).' 설명은 선택사항입니다: 모든 이미지를 Read 도구로 열어 직접 확인하십시오. 2c단계에서 가져옵니다.

질문이 필요 없는 기타 입력:

입력기본값
가사붙여넣기 > 파일 태그(Suno가 작성) > 사용자가 정리한 전사본
제목 / 아티스트파일 태그 사용; 태그 제목이 쓸모없는 경우(예: [Rec] Oct 24 ...) 파일 이름 사용
배경auto: 섹션과 디자인에 따라 장면이 이어짐
엔드 카드마지막 몇 초 동안 제목 + 아티스트 표시; 사용자가 원하지 않을 경우 --no-endcard

1. 설정 (머신당 한 번, 이후 즉시)

bash SKILL/scripts/setup_env.sh

공유 Python 환경을 생성합니다(faster-whisper, Demucs, librosa, Pillow; CPU 빌드). Python 경로를 출력합니다. Python 3.10+, Node 18+ 및 ffmpeg(ffprobe 포함)가 PATH에 있어야 합니다. 하나라도 없으면 시스템 소프트웨어를 직접 설치하지 말고 사용자에게 무엇을 설치해야 하는지 알려주십시오. 첫 실행 시 몇 GB를 다운로드합니다(지금 CPU torch, Whisper 및 Demucs 모델은 첫 사용 시 다운로드).

2. 노래 분석 (캐시됨, 백그라운드에서 실행)

프로젝트 폴더: 사용자가 다른 곳을 지정하지 않으면 <song's folder>/<song name> lyric video/. 사용자가 가사를 붙여넣었다면 먼저 <project>/work/lyrics.txt로 저장하고 [Section] 태그는 유지하십시오.

PY SKILL/scripts/prepare.py "<song>" "<project>/work"

3분짜리 노래 기준 CPU에서 약 8-10분 소요(Demucs, 그 다음 Whisper large-v3 두 번). 각 단계는 출력을 캐시하므로 재실행 시 누락된 부분만 수행합니다. '처음부터 시작'하려고 출력을 삭제하지 마십시오. 특정 단계를 다시 실행하려면 해당 파일만 삭제하십시오. 다음을 출력합니다:

  • 길이, BPM, 마디 길이(240 / BPM), 초당 에너지(드롭은 에너지 급증),
  • 보컬 존재 범위(간격 = 반주),
  • 두 가지 Whisper 전사본(전체 믹스 및 분리된 보컬 트랙).

2b. 이 노래의 비디오 디자인

도구 키트가 아닌 노래에서 시작하십시오. 아직 도구 키트를 열지 마십시오: 미리 만들어진 움직임 메뉴는 모든 노래를 소수의 비슷한 스타일로 끌어당깁니다. 먼저 이 노래가 무엇인지 파악하고 <project>/work/design.md에 기록하십시오:

  1. 몇 줄로 요약한 노래: 이야기, 누가 누구에게 말하는지, 장소, 시간, 가사가 반복해서 언급하는 사물과 이미지, 느낌(긴장, 부드러움, 무감각, 반항, 장난기, 편집증). 느낌이 장르보다 움직임을 더 결정합니다.
  2. 노래가 살고 있는 세계. 이야기뿐만 아니라 어휘를 읽으십시오: 가사의 단어들은 하나의 세계로 모이며, 그 집합은 노래가 어디에 살고 있는지 말해줍니다. '평결', '증언', '선고'로 가득한 노래는 법정에 살고 있습니다. '닻', '표류', '항구'는 바다에, '균형', '빚', '이자'는 금융 세계에 살고 있습니다. 그런 다음 제목과 후렴구의 모든 의미(속어, 게임, 영화, 스포츠, 하위 문화에서의 의미 포함)를 나열하고('유령'은 영혼이면서, 누군가에게서 사라지는 사람이며, 게이머 용어), 어휘가 뒷받침하는 의미를 선택하거나 두 가지를 융합하십시오. 후보들을 기록하고 왜 선택했는지 적으십시오.
  3. 중심 이미지, 장르가 아닌 그 세계와 가사 자체의 단어에서 가져옵니다. 감시당하는 것에 관한 노래: 하나씩 켜지는 창문들. 시간이 부족한 노래: 프레임을 태우며 내려가는 도화선.
  4. 시그니처 무브: 단어 자체가 하는 일, 이 노래의 용어로. 두세 가지, 각각 한 문장으로: 단어가 어떻게 등장하고, 어떻게 사라지며, 후렴구가 무엇을 하는지. 중심 이미지에서 비롯됩니다: 열병에 관한 노래에서는 단어가 열기 속에서 떨리며 등장하고 차분해집니다; 보내지 않은 편지에 관한 노래에서는 단어가 번지는 잉크로 쓰여지고 페이지가 그것을 접어 치웁니다. 테스트: 같은 움직임이 다른 무작위 노래에도 어울린다면 아직 시그니처가 아닙니다. 눈에 띄게 충분히 크게 만드십시오: 한 번의 후렴구 후에 시청자가 단어가 무엇을 했는지 설명할 수 있어야 합니다. 1초 미만의 미세한 광택이나 흐림은 아무것도 읽히지 않습니다; 정점에서는 무브가 공간과 시간을 차지하게 하고, 절에서는 더 조용하게 유지하십시오. 이것들을 이 노래의 효과로 작성합니다(video/src/custom, 도구 키트 'The song's own pieces').
  5. 장면 목록: 각 섹션의 장면, 카메라, 가사 레이아웃, 팔레트 및 사용할 무브. 중심 이미지는 위와 같이 단편 영화처럼 진화하며, 각 섹션은 다르게 구성됩니다: 같은 뷰에 약간 다른 색조나 몇 개의 불을 더 추가하는 것은 새로운 장면이 아닙니다.
  6. 당신이 하지 않는 것: 이 장르와 분위기에 대해 당연해 보이지만 피하는 무브의 이름을 명시하여 다시 빠지지 않도록 하십시오.
  7. 순간들이 공유할 그림 스타일(4b단계), 노래의 세계에서: 네온 라인 아트, 평평한 종이 오리기, 잉크와 수채화, 청사진 선, 굵은 실루엣, 만화 패널, 목판화. 노래 전체에 하나의 스타일을 사용하여 순간들이 하나의 영화처럼 보이게 하십시오.

디자인을 위해 읽어야 할 사실: BPM(하프 타임 느낌 참고: 140 BPM 트랩 비트는 종종 70처럼 느껴짐), 보컬 밀도(whisper_full.json의 초당 단어 수: 빠른 랩은 짧은 버스트 필요; 느리고 지속적인 노래는 구를 유지할 수 있음) 및 초당 에너지(에너지가 급증하는 곳에서 비디오가 변경됨: 절과 다르게 움직이는 후렴구, 패턴을 깨는 브릿지, 첫 번째보다 더 큰 마지막 후렴구).

이제 references/toolkit.md를 읽고 디자인을 구축하십시오:

  • 순간은 타임라인이 생성된 후(4b단계) 그려지지만, 지금 계획하십시오: 스토리보드가 장면 목록을 형성하며, 순간을 중심으로 구축된 섹션은 그 뒤를 단순하게 유지할 수 있습니다.
  • 노래 자체의 요소를 먼저. 시그니처 무브를 effects로, 중심 이미지를 layers로(그리고 순간에 필요한 경우 modes로 라인 스타일) video/src/custom/index.tsx에 작성하십시오. 노래가 정점에 달하는 곳(최소한 후렴구)에서 시그니처 무브를 사용하고, 비디오의 중심에 유지하십시오.
  • 도구 키트는 지원군입니다. 내장된 등장, 퇴장, 라인 스타일 및 레이어는 중간 가사와 장면을 채웁니다. 많은 것들이 이전 노래를 위해 만들어졌습니다(펑크 트랙을 위한 슬램, 슬래시, 컷 및 글리치, 반으로 잘린 찬트, 터널). 기본값으로 사용하는 것이 두 비디오를 비슷하게 만드는 원인입니다. 내장 요소는 정직하게 이 노래의 이미지에 맞을 때만 사용하고 design.md에 그 이유를 작성하십시오.
  • 팔레트: 노래의 세계 또는 사용자 이미지의 색상, 섹션별 변형 포함. 모든 것을 작성하십시오; 테마에서 시작하지 마십시오.
  • 타입: 이 노래의 목소리에 맞게 선택된 display용 Google Font와 대조적인 alt 폰트.
  • 카메라, 에너지 및 반응: 섹션별 움직임, 카메라 움직임 강도, 비주얼이 비트 또는 보컬에 맞춰 맥동하는지 여부.
  • 에셋: 사용자의 각 이미지가 어디에 배치되고 텍스트가 이를 위해 어떻게 공간을 만드는지(2c).

비디오는 단어가 올려진 하나의 그림이 아니라 장면들의 연속입니다. 하나의 중심 아이디어는 옳지만, 하나의 변하지 않는 프레임은 옳지 않습니다. 섹션별로 노래를 단편 영화처럼 계획하십시오: 인트로에서 시청자가 보는 것, 첫 번째 절이 어떻게 프레이밍하는지, 후렴구에서 무엇이 열리는지, 브릿지에서 무엇이 깨지는지, 어떻게 해소되는지. 중심 이미지는 진화해야 합니다: 스케일, 각도 또는 카메라 무브, 시간, 팔레트, 프레임 안의 대상을 변경하십시오. 사용자 정의 레이어는 섹션과 진행 상황을 받아 다른 섹션에서 다른 것을 보여줄 수 있습니다. 모든 후렴구는 해당 절과 명확히 달라야 하며, 마지막 후렴구는 첫 번째보다 커야 합니다. 인접한 두 섹션이 장면, 카메라, 레이아웃 및 팔레트를 공유한다면 하나를 변경하십시오.

색상만 변경하지 말고 프레이밍을 변경하십시오. 하나의 사용자 정의 레이어가 노래를 이끌 때 실제 장면을 제공하십시오: 다른 카메라 위치(위에서, 내부에서, 지면에서, 한 디테일에 가까이), 다른 스케일, 프레임 안의 다른 대상. 같은 뷰에 색조를 다시 입히거나 불을 추가하는 것은 여전히 하나의 장면으로 읽히며, 점검은 노래의 너무 많은 부분을 차지하는 프레이밍을 플래그 지정합니다(one-shot).

이미지와 함께 단어를 배치하십시오. 가사가 어디에 위치하는지는 디자인의 일부입니다: 장면이 보여주는 표면 위, 창문 안, 대상 옆, 음악이 움직일 때 각 버스트와 함께 새로운 위치로 이동. 전체 섹션의 버스트가 정확히 같은 위치에 있는 것은 자막입니다. 효과의 burst 훅은 버스트를 어디든 이동시킬 수 있습니다(transform).

느린 것은 정지된 것이 아닙니다. 부드럽고, 느리거나 속삭이는 노래는 천천히 움직이지만 절대 멈추지 않습니다: 카메라는 떠다니거나 밀고, 빛은 보컬에 따라 팽창하며("react": "voice", 부드러운 노래의 기본값), 장면은 모든 섹션에서 변경됩니다. 느낌을 유지하고(부드러움은 부드럽게 유지) 각 섹션을 새로운 그림으로 만드십시오. 느린 가사에 공간을 주어 크게 만드십시오: 한 번에 더 적은 단어, 크게 설정, 의도적으로 배치, 노래 전체에 걸쳐 같은 줄에 작은 자막처럼 두지 마십시오.

대담해지십시오: 장르를 넘나들며(브루탈리스트 타입의 소울 송, 세리프의 드릴 트랙) 위험을 감수하십시오; 자체 점검(5단계)이 효과가 없는 것을 잡아냅니다. 또한 design.md가 없는 비디오(no-design), 내장 무브만 사용하는 후렴구(no-signature), 이전 노래에서 차용한 내장 요소(borrowed), 내장 레이어로만 만들어진 배경(stock-world)을 플래그 지정합니다.

디자인을 두세 문장의 평범한 말로 사용자에게 알려주십시오("감시당하는 것에 관한 노래라서, 단어들이 밤에 건물 앞에 앉아 있고 창문들이 하나씩 켜집니다; 각 단어가 노래될 때 창문처럼 켜지고, 후렴구는 거리를 하나의 불 켜진 방으로 어둡게 만듭니다").

그런 다음 비디오 프로젝트를 설정하십시오(기존 프로젝트를 재사용합니다):

bash SKILL/scripts/new_project.sh "<song>" "<project>" --size 1920x1080 --fps 60 [--overlays artist,timer] [--no-endcard]

디자인을 video/src/data/config.json에 기록하십시오(색상, 폰트, 모션, 장면, 에셋). new_project.sh를 다시 실행해도 당신이 넣은 모든 것은 유지됩니다. 이전 버전의 스킬로 만든 프로젝트의 경우 --update를 추가하십시오: 현재 템플릿 코드로 교체하고 노래의 데이터, 사용자 정의 요소 및 에셋을 유지합니다.

2c. 사용자의 이미지

PY SKILL/scripts/assets.py "<project>" <image files or folder> [--cutout name1,name2 [--person]]

이미지를 프로젝트로 복사하고(똑바르게, 적절한 크기로), 각각의 모양, 밝기 및 주요 색상을 출력하며 video/public/assets/sheet.png를 작성합니다. 시트를 확인하십시오. 배경 없이 프레임에 서 있어야 하는 대상을 잘라내십시오(--cutout; 사람인 경우 --person을 추가하십시오, 그렇지 않으면 모델이 손이나 얼굴만 유지할 수 있습니다). 시트에서 모든 컷아웃을 확인하십시오; 가장자리가 잘못된 경우 다른 모델을 시도하거나 이미지를 배경이나 포스터로 대신 사용하십시오.

사용자가 각 이미지에 대해 말한 것을 사용하십시오; 사용자가 아무 말도 하지 않으면 당신이 보는 것에서 결정하십시오. 노래가 필요한 곳에 배치하십시오(도구 키트, "Assets"): 절 옆에 초상화 컷아웃, 커버 아트는 강렬한 순간을 위한 배경으로, 로고는 엔드 카드에.

3. 빌드 및 미리보기

cd "<project>/video"
npx remotion preview

브라우저에서 타이밍과 비주얼을 검사하고 조정하십시오. Remotion의 타임라인 UI를 사용하여 각 버스트를 점검하고 가사가 보컬과 정확히 일치하는지 확인하십시오. 또한 오디오 파형을 보고 전환점을 식별하십시오.

4. 타이밍 검토 및 수정

당신의 작업은 단어가 눈과 귀에 정확히 맞도록 보장하는 것입니다. 자동 생성된 타임스탬프는 Whisper에서 나오지만, 여전히 오류가 있을 수 있습니다. 편집자처럼 모든 전환과 가사 배치를 확인하십시오.

4a. 가사 타임스탬프 조정

PY SKILL/scripts/adjust_timing.py "<project>"

각 단어의 시작과 끝을 미세 조정하고, 특히 빠른 구간이나 음악에 묻히는 부분을 수정하십시오. 필요하면 가사를 재전사하거나 수동으로 시간을 조정하십시오.

4b. 순간 그리기

가사에서 시각적 모멘트를 구현할 SVG 애니메이션을 video/src/custom/에 작성하십시오. 각 순간은 특정 단어나 구절에 맞춰져야 합니다. Remotion의 <AnimatedSvg> 및 useCurrentFrame()을 사용하여 시간 기반 애니메이션을 만드십시오. 코드는 순수 SVG여야 하며, 외부 이미지나 비디오 클립을 사용하지 마십시오.

5. 자체 점검

PY SKILL/scripts/self_check.py "<project>"

비디오를 렌더링하기 전에 품질을 확인하십시오. 이 스크립트는 다음을 검사합니다:

  • design.md 존재 여부
  • 시그니처 무브 사용 여부
  • 과도한 내장 요소 사용 여부(노래 간 유사성 감지)
  • 장면 다양성(단일 프레이밍 문제)
  • 잠재적인 타이밍 문제

문제가 발견되면 design.md 및 관련 코드를 수정하고 다시 확인하십시오.

6. 렌더링

cd "<project>/video"
npx remotion render src/index.tsx main out.mp4

렌더링이 완료되면 출력 파일을 확인하고 사용자에게 제공하십시오. 비디오가 완벽해 보이는지 최종 확인하십시오.

렌더링 후

사용자에게 완성된 비디오의 경로를 알려주고, 만족하는지 확인하십시오. 추가 수정이 필요한 경우 피드백을 받아 위 단계 중 해당하는 것을 반복하십시오.


참고: 이 스킬은 Remotion 4.x, Node.js 18+, Python 3.10+, ffmpeg 6.0+가 필요합니다. 모든 종속성은 setup_env.sh를 통해 관리됩니다.

관련 스킬