Communitygithub.com

Clip Montage

사용자의 동영상 클립을 TikTok, Reels, Shorts에 적합한 세로형 릴로 편집합니다: 각 클립의 최고 순간, 비트에 맞춘 컷, 자막, 레이블, 엔드 카드를 제공합니다.

Clip Montage란 무엇인가요?

Clip Montage는 사용자가 휴대폰으로 촬영한 짧은 동영상 클립을 음악이나 음성 녹음과 결합하여 바로 게시할 수 있는 완성된 9:16 세로형 몽타주로 편집하는 전문 AI 에이전트 스킬입니다. 사용자가 파일을 보내기 전이라도 사용할 수 있으며, 각 클립의 최고 순간을 스토리를 구성하는 순서로 배열하고, 비트에 맞춰 컷하며, 훅, 레이블, CTA를 포함합니다. 또한 중요 클립의 원음을 유지하고 단어별 자막을 제공하며, 사용자의 음성 내레이션을 전체 비디오에 동기화된 자막과 함께 입힐 수 있습니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 작동하며, 완전히 무료로 제공됩니다. 모든 렌더링은 플러그인의 `scripts/video/` 도구(`montage.js` 및 `render.js`)를 사용하여 로컬 머신에서 수행되므로, 계정이나 크레딧이 필요 없으며 데이터가 외부로 유출되지 않습니다. 스킬은 브랜드 보이스 설정, 클라이언트 프로필 관리, 사용자 피드백에 따른 반복 편집 등 체계적인 단계별 프로세스를 안내하며, 각 버전을 덮어쓰지 않고 보관합니다. 사용자가 사진만 가지고 있을 경우, 실제 동영상 촬영을 권장하거나 무료 로컬 모션으로 `montage-video`로 전환하며, AI 카메라 무브는 유료 요금제가 확인된 경우에만 제한적으로 사용합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/GreyCatVP/marketing-skill/tree/main/skills/clip-montage

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

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

문서

Clip Montage은(는) 무엇을 하나요?

목적

사용자가 휴대폰으로 촬영한 짧은 동영상과 가지고 있는 음악 또는 음성 녹음을 사용하여 게시 가능한 완성된 9:16 몽타주로 편집합니다:

  • 각 클립의 최고 순간을 스토리를 구성하는 순서로 배열;
  • 비트에 맞춰 컷;
  • 첫 번째 샷에 훅, 각 샷에 레이블, 마지막에 CTA;
  • 중요한 순간(누군가 말하는 소리, 지글거리는 소리, 환호성)에는 클립 자체의 사운드를 유지하고 단어별 자막 제공;
  • 사용자의 음성 내레이션을 전체 비디오에 동기화된 자막과 함께 입힘.

그런 다음 사용자가 만족할 때까지("그녀가 웃는 부분 사용", "부엌 먼저", "클립 소리 크게, 음악 없음") 한 번에 하나의 버전으로 계속 편집하며, 이전 버전을 잃지 않습니다.

이것은 몽타주의 기본이며 무료입니다. 모든 것은 이 머신에서 플러그인의 scripts/video/ 도구(montage.js는 짧은 스크립트로 페이지를 빌드하고, render.js는 MP4를 만듭니다)로 렌더링됩니다. 계정, 크레딧이 필요 없으며, 어떤 것도 머신 밖으로 나가지 않습니다. 실제 영상은 장소나 제품에 대한 가장 진실된 그림을 제공합니다: AI가 어떤 것도 발명하지 않습니다.

비용이 드는 경우와 언제 언급해야 하는지:

사용자가 가진 것수행되는 작업비용
동영상(사진, 음악, 음성 녹음 포함 또는 미포함)이 스킬무료
사진만 있고, 몇 개의 클립을 촬영할 수 있는 경우클립을 요청한 후 이 스킬무료
사진만 있고, 클립 촬영이 불가능한 경우로컬 무브(팬, 푸시인, 3D 무브)가 포함된 montage-video무료
사진만 있고, 카메라가 실제로 움직이길 원하는 경우(새로운 각도)사용자가 유료 플랜(유료 Figma 플랜의 Figma Weave, Higgsfield)이 있다고 말하고 견적이 승인된 경우에만 montage-video의 "AI 카메라 무브"유료 크레딧

이 스킬에서 유료 비디오 모델을 절대 실행하지 마십시오. 사용자가 유료 플랜이 있고 원한다고 말하지 않는 한 견적을 제시하지 마십시오.

단계별 프로세스

플러그인 루트: 아래 경로에 아직 확장되지 않은 CLAUDE_PLUGIN_ROOT 플레이스홀더가 표시되면(Claude Code는 이를 채우고, Codex와 같은 다른 에이전트는 채우지 않음), 사용하기 전에 해결하십시오: printenv CLAUDE_PLUGIN_ROOT의 출력을 가져와 경로를 출력하면 사용하고, 그렇지 않으면 이 파일의 폴더에서 references/brand-voice.md가 포함된 첫 번째 폴더까지 위로 이동하며, 둘 다 작동하지 않으면 사용자에게 이 플러그인이 어디에 있는지 물어보십시오. 아래 모든 파일 경로 및 셸 명령에서 해당 절대 경로를 사용하십시오. 아래 VIDEO는 ${CLAUDE_PLUGIN_ROOT}/scripts/video를 의미합니다.

  1. 온보딩 상태 확인. ${CLAUDE_PLUGIN_ROOT}/references/brand-voice.md를 읽으십시오. 파일이 없거나 첫 번째 줄이 <!-- MARKETING-SKILL:UNCONFIGURED -->이면, 계속하기 전에 사용자에게 이 플러그인의 4가지 설정 질문(우선 순위 작업; 제작할 콘텐츠 유형; 대상 청중 + 어조; 기본 출력 형식 — /marketing-skill:marketing-setup과 동일)을 하고, 답변을 파일에 저장하고 마커를 오늘 날짜와 함께 CONFIGURED로 변경하십시오. 파일이 설정되지 않았지만 사용자가 이미 설정을 건너뛰거나 기본값을 사용하라고 말한 경우, 묻지 마십시오: 이번 실행에는 해당 플레이스홀더 기본값을 사용하고, 한 줄로 말하고 마커를 그대로 두십시오.

  2. 클라이언트 선택. montage-video 2단계(${CLAUDE_PLUGIN_ROOT}/skills/montage-video/SKILL.md)와 정확히 동일합니다: 저장된 클라이언트(프로필 및 ## Notes 읽기), 새 클라이언트(비즈니스 이름, 연락처, 필수 세부 사항, 로고, 색상, 선호하는 음악), 또는 사용자 자신의 비즈니스(client: 생략). 프로필은 ${CLAUDE_PLUGIN_ROOT}/state/clients/에 있으며 git에서 제외됩니다.

  3. 영상, 음악, 음성 요청. 한 메시지로:

    • 클립(기본 요청). 짧은 휴대폰 동영상, 각각 315초, 방, 각도, 또는 순간당 하나씩. 아직 촬영하지 않은 경우, montage-guide.md의 "클립 촬영 팁"을 제공하십시오: 세로로, 각 샷을 35초 동안 안정적으로 유지하고, 천천히 움직이며, 좋은 조명과 디테일을 클로즈업으로.
    • 음악(있는 경우). 사용자가 광고에 사용할 권리가 있는 트랙. 스트리밍 앱이나 라디오의 노래는 해당하지 않습니다. 그 외: 클라이언트의 저장된 사운드(무료 생성 트랙), 크리에이티브 커먼즈 트랙(node VIDEO/media.js search "<분위기>" --type music --out state/videos/assets --count 3), 또는 음악 없음(게시 시 앱에서 트렌딩 사운드를 추가하도록, TikTok 및 Instagram 비즈니스 계정에는 상업용 라이브러리가 있음).
    • 음성(있는 경우). 사용자가 녹음한 음성 내레이션(파일 하나면 충분, 휴대폰 음성 메모도 가능), 자막을 위해 말한 내용을 단어 그대로 포함. 또는 누군가 카메라를 향해 말하는 클립. 또는 없음: 대부분의 몽타주는 음악만 있음.
    • 참고할 몽타주(있는 경우): 사용자가 보내는 동영상(또는 brand-voice.md의 비디오 설정에 있는 스타일 참조). node VIDEO/reference.js <동영상>을 실행하고, reference.md를 읽고 시트를 살펴본 다음, 속도(pace: 일반적인 샷 길이, 비트에 컷이 맞춰지는 경우 비트 단위), 빠른 컷의 폭발, 자막, 느낌을 일치시키고, 일치시키는 내용을 한 줄로 말하십시오. 편집 방식을 복사하고, 절대 영상, 음악 또는 단어를 복사하지 마십시오. 앱에서 다른 사람의 게시물을 다운로드하지 말고 파일을 요청하십시오.
    • 사진만 있습니까? 대신 몇 개의 클립을 촬영할 수 있는지 물어보십시오(무료이며 가장 진실된 그림). 촬영할 수 없으면, 무료 로컬 무브로 사진을 움직이는 montage-video로 전환하십시오. AI 사진-비디오 변환은 사용자가 실제 카메라 무브나 새로운 각도를 요청하는 경우에만 언급하고, 유료 플랜(유료 Figma 플랜에서만 Figma Weave 비디오 모델 실행)이 필요하다고 말하십시오. 사용자가 유료 플랜이 있다고 말하고 견적을 승인한 후에만 실행하며, montage-video의 "AI 카메라 무브"를 따르십시오.
    • 파일을 디스크에 저장. 렌더러는 파일이 필요합니다: 폴더(또는 파일 경로)를 요청하십시오. 채팅에 붙여넣은 동영상은 렌더러가 읽을 수 없습니다. Google Drive에 있고 Drive 커넥터를 사용할 수 있으면, 새 폴더에 다운로드하십시오.
    • 사용자 또는 클라이언트가 촬영했거나 사용 라이선스가 있는 영상만 사용하고, 출연에 동의한 사람만 사용하십시오.
  4. 파일 가져오기. node VIDEO/montage.js inspect <폴더> --slug <슬러그>를 실행하십시오. 여기서 슬러그는 짧고 비디오 이름을 지정합니다(maple, taco-night).

    • 각 클립을 state/videos/assets/<slug>-01.mp4 등으로 복사하며, 그림과 사운드는 그대로 유지하고 메타데이터는 제거합니다(휴대폰 클립의 위치 정보 포함). 원본은 건드리지 않습니다.
    • 각 클립의 크기, 모양, 길이, 사운드 유무를 출력하고, 긴 클립, 가로 클립, 저해상도 클립을 플래그합니다.
    • 번호가 매겨진 연락처 시트 <slug>-contact.png와 시작 스크립트 state/videos/<날짜>-<슬러그>.md(파일당 하나의 샷)를 작성합니다.
    • 사용자의 음악을 state/videos/assets/<slug>-music.<ext>로, 음성 내레이션을 state/videos/assets/<slug>-vo.<ext>로 복사하십시오.
  5. 모든 클립 보기. 비디오를 재생할 수 없으므로 프레임을 확인하십시오:

    • 각 클립에 대해 node VIDEO/montage.js frames <클립> --every 1을 실행하십시오(--every 0.5는 짧고 바쁜 클립용). 1초마다 프레임을 시간과 함께 배치하고, 클립 사운드가 큰 경우(누군가 말하거나 유지할 가치가 있는 소리)를 출력합니다. 각 시트를 읽으십시오.
    • 각 클립이 보여주는 것을 명명하고, 최고의 순간을 선택하십시오: 안정적이고, 선명하며, 조명이 좋고, 주제가 명확해야 합니다. 떨리는 시작, 휴대폰을 내리는 부분, 흐릿함, 출연에 동의하지 않은 사람은 건너뛰십시오. 각 선택은 구간 [from: 3.5] [to: 6.5]입니다: 대부분 샷에 1.5~4초가 적당합니다. 긴 클립은 서로 다른 순간에서 두세 개의 샷을 제공할 수 있습니다.
    • 가로 클립은 9:16으로 잘립니다. 프레임 내에 유지할 대상을 [focus: x%,y%](사람, 제품, 벽난로)로 기록하십시오.
    • 사운드를 유지해야 하는 클립을 기록하십시오([sound]): 카메라를 향해 말하는 사람, 웃음, 그릴에서 지글거리는 소리. 들을 수 없으므로 사용자에게 말한 내용을 단어 그대로 자막용으로 물어보고, 사운드를 유지할 클립을 알려 확인할 수 있게 하십시오.
    • 제외한 클립이나 순간과 그 이유를 말하십시오. 사용자가 무시할 수 있습니다.
    • ${CLAUDE_PLUGIN_ROOT}/references/montage-guide.md("클립: 순서")에 따라 샷을 정렬하십시오: 가장 강력한 순간을 먼저, 장소나 이벤트를 통한 경로, 마지막에 CTA.
  6. 한 메시지로 범위 확인. 제안하고 사용자가 수정할 수 있게 하십시오:

    • 길이와 샷: 약 15, 30, 또는 60초, 어떤 순간이 채울지.
    • 음악: 사용자 트랙, 클라이언트 사운드, 다른 장르, 크리에이티브 커먼즈 트랙(먼저 듣기 위해 보내기), 또는 없음.
    • 음성: 사용자 음성 내레이션, 자체 사운드를 유지하는 클립, 또는 없음.
    • 화면 텍스트: 훅(${CLAUDE_PLUGIN_ROOT}/references/hooks.md의 세 가지 옵션, 각각 다른 패턴), 각 샷의 레이블, 상태 스티커(있는 경우), CTA, 리스팅이나 제품의 가격과 사양. 모든 사실은 사용자 또는 클라이언트로부터 옵니다. 누락된 것이 있으면 묻거나 생략하십시오.
  7. 스크립트 작성 및 페이지 빌드. 시작 스크립트를 편집하십시오. 형식과 모든 태그는 VIDEO/montage.js 상단에 문서화되어 있습니다:

    ---
    title: taco night
    client: casa-lupe
    hook: tuesday is taco night
    cta: book a table · link in bio
    music: assets/taco-night-music.mp3
    pace: 4 beats
    ---
    3. assets/taco-night-03.mp4  Fresh off the grill  [from: 1.2] [to: 4] [sound]
    1. assets/taco-night-01.mp4  Handmade tortillas  [from: 0.5] [to: 3] [focus: 40%,60%]
    2. assets/taco-night-02.mp4  Meet chef Lupe  [from: 6] [to: 10.5] [sound] [say: Every tortilla is pressed by hand, every morning.]
    4. assets/taco-night-04.mp4  The patio  [from: 2] [to: 5] [move: push-in]
    
    • 클립 구간: [from:]과 [to:]가 구간을 설정합니다. 그런 다음 샷은 비트에 맞춰집니다(반올림되어 [to:] 이후 잠시 더 재생). 클립의 경우 소절이 아닌 비트로 pace:를 사용하십시오: 소절은 96 BPM에서 3초 구간을 5초로 반올림합니다.
    • 클립 자체 사운드: [sound]는 음악을 그 아래로 낮추면서 동기화하여 재생합니다. 해당 클립의 [say: ...]는 클립에서 말한 내용이며 단어별로 자막 처리됩니다. 다시 음성 처리되지 않습니다.
    • 사용자 음성 내레이션: voiceover: assets/<slug>-vo.m4a 및 voiceover-text: <말한 내용, 단어 그대로>. 0.3초부터 재생(voiceover-at:으로 변경 가능), 음악이 그 아래로 낮춰지고, 자막은 모든 샷에서 낮게 실행되며, 샷은 이를 덮도록 늘어납니다. [say: ...] 음성 라인도 사용하지 마십시오.
    • 음악: music: assets/<slug>-music.mp3. 비트는 beats.js로 읽히고 컷이 비트에 맞춰집니다. music: none은 앱에서 추가된 트렌딩 사운드를 위한 공간을 남깁니다.
    • 무브: 클립은 자체 모션을 유지합니다. [move: push-in], pull-out, 또는 drift는 위에 느린 줌을 추가합니다. 팬은 확대된 클립을 슬라이드합니다. 프레임 옆에 팬할 것이 없기 때문입니다.
    • 혼합된 사진은 montage-video에서처럼 움직입니다(팬, 푸시인, 3D 무브).

    그런 다음 node VIDEO/montage.js state/videos/<날짜>-<슬러그>.md를 실행하십시오. 스크립트 옆에 <날짜>-<슬러그>.html을 쓰고, 샷 테이블, 사운드, 음성, 및 메모(클립이 샷보다 짧은 경우, 레이블을 읽을 수 있도록 샷이 유지되는 경우)를 출력하고 render.js --check를 실행합니다. 체크에서 나열된 항목(일반적으로 레이블 단축)을 수정하고 깨끗해질 때까지 다시 실행하십시오.

  8. 첫 번째 컷. 직접 node VIDEO/render.js <페이지> --slides의 모든 프레임을 확인하십시오: 프레임 안의 주제(가로 클립에서 잘리지 않음), 레이블 읽기 가능, 자막이 레이블과 겹치지 않음, 순서가 스토리를 전달하는지. 그런 다음:

    • 사용자에게 슬라이드를 보내 순서와 텍스트를 승인받으십시오.
    • 렌더링: node VIDEO/render.js <페이지> state/videos/<slug>-v1.mp4 --cover 0. MP4(1080×1920, 30fps), 커버 이미지, 음성이나 자막이 있는 클립 사운드가 있을 때 .srt 자막 파일을 작성합니다. --draft는 타이밍을 먼저 확인하기 위해 빠른 절반 크기 버전을 만듭니다. 초안을 게시하지 마십시오.
    • 결과를 들을 수 없습니다. 사용자에게 들어보라고 요청하십시오: 음악, 유지된 각 클립 사운드, 자막과 함께 음성 내레이션.
  9. 올바를 때까지 편집. 각 요청은 스크립트에 대한 편집이 되어야 하며, 페이지가 아닙니다. montage.js가 모든 타이밍을 다시 계산하기 때문입니다:

    사용자가 말함스크립트 변경
    "그녀가 웃는 부분 사용"해당 샷의 [from:] / [to:] (--every 시트에서 찾기)
    "떨리는 부분 잘라내"더 늦은 [from:] 또는 더 이른 [to:]
    "부엌 부분 더 길게"더 늦은 [to:] 또는 [hold: 4s]
    "더 빠르게" / "더 느리게"더 짧은 구간, pace:(예: 3 beats), 또는 length:
    "15초로 만들어"length: 15, 가장 약한 순간 삭제(어느 것인지 말함)
    "부엌 먼저", "3과 5 바꿔"번호가 매겨진 줄 재정렬
    "그 부분 사운드 유지" / "음소거"[sound] 추가 또는 제거
    "그가 말하는 것에 자막 추가"해당 [sound] 클립에 [say: <그의 말, 정확히>]
    "내 음성 내레이션 추가"voiceover: 및 voiceover-text:
    "다른 노래" / "음악 없음"music: 다른 파일, 장르, 또는 none
    "왼쪽 보여줘", "그녀를 프레임에 유지해"[focus: 25%,50%]
    "그것 확대"[move: push-in] (해당 지점에 [focus:]와 함께)
    "더 부드럽게" / "더 강력한 컷"transition: fade, 또는 cut, slide, zoom, wipe, flash
    "텍스트 변경"레이블, hook:, cta:, price:, specs:
    "슬로우 모션"지원되지 않음: 속도 변경 없음. 휴대폰 슬로우 모션으로 촬영된 클립은 촬영된 대로 재생
    "다른 색상 / 로고 / 전화번호"클라이언트 프로필, 스크립트 아님

    각 라운드: 스크립트 편집, montage.js 다시 실행, 타이밍 변경 시 --draft 또는 모양 변경 시 --slides 사용. 다음 버전을 <slug>-v2.mp4, -v3.mp4 등으로 렌더링합니다. 이전 버전을 덮어쓰지 마십시오. 사용자가 되돌릴 수 있도록 하기 위함입니다.

  10. 게시 가능 확인. 각 최종 버전에서:

    • node VIDEO/render.js <페이지> --check를 실행하여 문제가 없는지 확인(레이블 길이, 누락된 자산, 오디오 동기화).
    • node VIDEO/render.js <페이지> --slides로 모든 프레임을 보고 주제가 잘렸는지, 레이블이 읽기 쉬운지, 자막이 가려지지 않는지 확인.
    • 미리보기와 함께 이 메모를 보내십시오:

      준비되었습니다! <slug>-v<N>.mp4와 커버 이미지입니다. 검토해 주세요: 1️⃣ 전체 동영상 시청 — 음악, 전환, 분위기 확인. 2️⃣ 자막 확인 — 클립 사운드 유지 부분 정확한지 확인. 3️⃣ 음성 내레이션 확인 — (있는 경우) 자막과 동기화 확인. 4️⃣ 텍스트 검토 — 모든 레이블, 훅, CTA가 정확하고 철자 확인. 5️⃣ CTA 확인 — 올바른 링크 또는 행동. 수정 사항이 있으면 알려주시면 다음 버전을 만들겠습니다!

  11. 게시 준비 완료. 사용자가 "좋아요"라고 말하면:

    • 동영상에 워터마크나 개인 정보가 포함되지 않았는지 다시 확인.
    • 사용자가 게시하려는 플랫폼(TikTok, Instagram Reels, YouTube Shorts)에 맞는지 확인. 이 스킬은 9:16을 출력하므로 모든 곳에서 작동.
    • 필요한 모든 텍스트(훅, CTA, 해시태그)를 포함하여 게시물 사본을 제공하십시오.
    • 최종 동영상 파일의 위치를 상기시켜 주십시오: state/videos/<slug>-v<최종>.mp4.

중요 규칙

  • 절대 유료 비디오 모델을 실행하지 마십시오. 사용자가 유료 플랜이 있고 원한다고 명시적으로 말하지 않는 한.
  • 절대 사용자 또는 클라이언트가 촬영하지 않은 영상을 사용하지 마십시오. 저작권이 있는 자료를 사용하지 마십시오.
  • 절대 사용자의 허락 없이 개인 정보나 위치 데이터를 공유하지 마십시오.
  • 각 버전을 보관하십시오. 덮어쓰지 마십시오.
  • 최종 게시 전에 항상 사용자가 검토하게 하십시오.
  • 가짜 정보를 만들지 마십시오 — 모든 사실은 사용자 또는 클라이언트로부터 옵니다.

이 스킬은 Claude Code, Cursor, Codex, 및 기타 AI 에이전트 플랫폼에서 작동합니다.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬