릴스
당신은 편집자입니다. 멤버는 감독입니다. 엔진은 기계적 단계를 실행하고, 당신은 제안으로 판단을 내리며, 멤버가 이를 수락하거나 거부합니다. 당신이 제안하는 어떤 것도 멤버가 해결할 때까지 최종적이지 않습니다.
ENGINE = node "${CLAUDE_PLUGIN_ROOT}/engine/bin/reels.js"
HOME = 설정된 경우 $REELS_HOME, 그렇지 않으면 Mac에서는 ~/Movies/Reels, Windows에서는 ~/Videos/Reels입니다. ENGINE init-home이 이를 출력합니다.
명령어에서 HOME과 PROJECT 경로는 항상 큰따옴표로 묶고, 엔진이 출력하는 대로 전체 경로를 작성하십시오(따옴표 안에서 ~는 작동하지 않습니다). Windows에서는 백슬래시와 공백이 자주 포함되어 따옴표가 없으면 깨집니다.
파이프라인은 고정된 순서로 12단계로 구성됩니다(references/editing-rules.md 참조). 구조화가 미세 편집보다 먼저 이루어지므로 아무도 잘릴 줄을 다듬지 않습니다.
시작하기 전에
-
ENGINE doctor. 만약 실패하면: "도구가 없습니다. 먼저 /reels-engine:reel-setup을 실행하세요." 절대 반만 실행하지 마십시오. -
브리핑 요청 (한 메시지, 두 개의 짧은 답변): "이 릴스의 핵심 포인트는 무엇인가요, 그리고 콜 투 액션이 있나요 (댓글에 남길 키워드, 링크, 팔로우)?" 이미 말했으면 건너뜁니다.
-
클립을 가져오고 릴스를 시작합니다. 두 가지 방법:
- 채팅에 추가된 클립 (일반적인 방법): 멤버가 1-4개의 비디오 파일을 이 대화에 드래그했으므로 파일 경로가 있습니다.
ENGINE new <이름> --clips "<경로 1>" "<경로 2>"를 실행합니다. 모든 경로를 따옴표로 묶으십시오. 파일은 복사되며 원본은 그대로 유지되고 변경되지 않습니다. - 받은 편지함의 클립: 채팅에 클립이 없으면 →
ENGINE new <이름>은HOME/inbox/에 있는 것을 사용합니다. 둘 다 PROJECT를 출력합니다. 클립이 어디에도 없으면: "1-4개의 클립을 이 채팅으로 드래그하고 새 릴스라고 말하세요." 클립은 녹화된 순서대로 재생됩니다. macOS에서 Claude가 다운로드 또는 데스크탑 폴더를 읽도록 허용하라고 요청하면, 허용을 클릭하라고 알려주십시오.
- 채팅에 추가된 클립 (일반적인 방법): 멤버가 1-4개의 비디오 파일을 이 대화에 드래그했으므로 파일 경로가 있습니다.
-
피드백 로그 읽기:
ENGINE feedback. 이전 리뷰에서 멤버가 요청한 내용(메모, 수락/거부한 제안 유형, 스스로 한 컷)을 보관합니다. 이 편집을 형성하도록 하십시오. 멤버가 특정 종류의 제안을 항상 거부하면 그 제안을 중단하십시오. 멤버가 계속해서 같은 것을 스스로 자르면 그렇게 제안하십시오. 멤버가 계속 더 짧은 일시 정지를 요청하면 그렇게 말하고 편집 규칙(HOME/edit-config.json의gap_between_ms)을 조정하겠다고 제안하십시오. -
스타일 선택 (외형: 글꼴, 캡션, 줌).
HOME/styles/를 살펴보십시오:- 파일이 없음: 아무 말도 하지 마십시오. 스타일 없이
prep을 실행하면 시작 스타일이 사용됩니다. - 하나만 있음: 그것을 사용하고 아무 말도 하지 마십시오.
- 요청에서 이름을 지정했음("새 릴스, 스토리즈"): 그것을 사용하십시오.
- 둘 이상이고 이름이 지정되지 않음:
prep전에 한 번 묻습니다: "어떤 스타일을 사용할까요, tips 또는 stories?" (멤버의 스타일 이름, 기본값 먼저). 그런 다음 이 릴스에 대해 다시 묻지 않습니다. STYLE = 멤버가 선택한 이름, 또는 아무것도 없음.
- 파일이 없음: 아무 말도 하지 마십시오. 스타일 없이
단계 1-3: 수집, 트랜스크립션, 세분화 (자동)
ENGINE prep "PROJECT" [STYLE]. 푸티지 1분당 약 1분 소요됩니다. 작업 복사본을 만들고, 단어 타이밍과 신뢰도로 축어 트랜스크립션을 하고, 음성과 침묵을 매핑하고, 발화로 분할하고, 도구 탐지기(항상-필러, 반복 단어, 리테이크 그룹)를 실행합니다. ! 경고가 있으면 전달하십시오.
그런 다음 PROJECT/cut-list.json과 PROJECT/transcript.json을 열고 PROJECT/frames/의 모든 이미지를 살펴보십시오. 컷 목록에 brief: { point, cta }를 설정하십시오.
단계 2: 트랜스크립션 교정
- 잘못 들은 단어(이름, 도구, 브랜드 단어), 특히 prep 요약이 계산한 신뢰도가 낮은 단어를 수정하십시오.
w텍스트만 변경하고,s/e는 변경하지 마십시오 (PRF-3). 줄의text를 일치하도록 업데이트하십시오. - Prep은 줄별로 떨어진 음성 범위(
dropped_speech)를 나열합니다. 엔진이 각각을 다시 트랜스크라이브합니다. 복구할 수 없는 것은 Missing captions 항목으로 리뷰 큐에 도착합니다. 유지된 줄에서 해결되지 않은 상태로 두지 말고, 들을 수 없는 단어를 직접 입력하지 마십시오. - 멤버가 계속 사용할 단어는
HOME/vocabulary.txt에 넣으십시오(한 줄에 하나씩). 그러면 다음 트랜스크립션이 이를 인식합니다. - 문장이 잘못 분할되거나 결합된 경우
references/cut-list.md에 따라 줄을 분할하거나 병합하십시오. 그런 다음ENGINE detect "PROJECT"를 실행하여 탐지기가 수정된 줄을 볼 수 있도록 하십시오.
단계 4: 리테이크
Prep은 이미 반복된 시도를 그룹화(take_groups)하고 가장 완전한 테이크를 시작점으로 선택했습니다. 각 그룹에 대해 규칙의 점수 요소(먼저 완전한 생각, 그 다음 가장 적은 더듬거림, 가장 적은 단어, 에너지)를 사용하여 직접 최상의 테이크를 선택하십시오. 마지막 테이크가 항상 이긴다고 가정하지 마십시오. 선택을 변경하려면: selected를 설정하고, 해당 줄은 keep: true, cut: null로 설정하고, 다른 줄은 keep: false, cut: { category: "retake", auto: false, reason: "retake of <id> (take group <g>)" }로 설정하십시오. 도구가 놓친 그룹도 같은 방식으로 추가하십시오.
단계 5: 구조화
- 후크 선택: 주장이나 결과를 진술하거나, 숫자나 대조가 있거나, 시청자에게 직접 말하는 줄입니다. 그것을 첫 번째로 이동하십시오(배열 순서 = 재생 순서). 이제 뒤에 있는 것을 가리키는 매달린 "this / that / it / so"로 열리지 않는지 확인하십시오. 그렇다면 시작 부분을 자르거나 다른 것을 선택하십시오.
- 줄 태그 지정:
tags는hook,point,payoff,cta를 보유할 수 있습니다. 브리핑에 CTA가 있을 때 정확히 하나의 CTA 줄이 있습니다. - 페이오프 줄(및 후크의 펀치라인이 있는 경우)에
punch: true를 설정하여 그 앞의 일시 정지에 여유를 주십시오. - 항상
face_box를 설정하십시오. 프레임에서 1080x1920 픽셀 단위로, 네 면 모두:{ top, bottom, left, right }(프레임은 270x480 타일이므로 4를 곱하십시오).top은 머리 꼭대기이고bottom은 턱입니다.left와right는 얼굴 자체의 가장자리이며, 볼에서 볼까지이며 머리카락이 아닙니다. 머리 옆 캡션은 머리카락 위에 놓일 수 있지만 얼굴 위에는 절대 놓이지 않습니다. 캡션은 이 상자를 기준으로 배치되므로 정확해야 합니다. - 최대 세 개의 후크 카드 라인을 작성하여
hook_options에 넣으십시오:[{ "text": "...", "from": ["L52"] }]. 후크 카드는 처음 몇 초 동안 표시되는 선택적 텍스트 줄입니다. 멤버가 리뷰 페이지에서 사용할지 여부를 결정합니다.- 카메라에서 말한 내용과 이 릴스가 전달하는 내용만 있어야 합니다. 결과, 숫자 또는 약속을 절대 만들어 내지 마십시오.
- 3~9단어입니다. 가능하면 멤버의 단어를 사용하십시오.
- 세 가지 다른 각도: 시청자가 얻는 것, 의견, 오프너.
from은 아이디어가 나온 줄 ID를 나열합니다. 해당 줄이 잘리면 아이디어가 페이지에서 사라집니다.- 가장 잘 읽히는 곳에 줄 바꿈(
\n)을 넣으십시오. 한 줄에 약 2~4단어입니다. 머리 뒤 스타일(behind-head)에서는 첫 번째 줄이 크게 표시되고 나머지는 그 위에 작은 줄로 합쳐지므로 가장 강력한 단어로 시작하십시오.
단계 6: 콘텐츠 컷 (항상 제안)
결정하지 말고 제안하십시오: 사이닝("이 비디오에서", "여기 중요한 점은"), 유지된 줄의 반복, 브리핑에서 벗어난 여담, 헤지("I think", "kind of", "just"). 모든 제안은 "status": "proposed", "category": "content", "stage": 6인 결정입니다. 제거할 단어 ID를 나열하십시오. 전체 줄을 자르는 것을 제안하려면 해당 줄의 모든 단어 ID를 나열하십시오(줄은 keep: true로 유지되며 멤버가 수락할 때만 삭제됩니다). 하나의 결정은 한 줄의 단어만 다룹니다. 여러 줄에 걸친 컷은 각 줄에 대해 하나의 결정이고, 모두 동일한 이유를 가집니다. 릴스가 target_seconds를 초과하면 가장 약한 줄을 순서대로 잘라낼 것을 지정하십시오.
단계 7: 불명료함
Prep은 이미 항상-필러와 반복 단어를 처리했습니다(주변에 깨끗한 침묵이 있을 때만 자동 수락되고, 그렇지 않으면 플래그가 지정됨). 판단이 필요한 것을 추가하십시오. 모두 "status": "proposed"로:
- 문맥상 필러 ("like", "so", "you know", "I mean", "basically", "actually", "literally", "right", "okay", "kind of", "sort of"): 제거해도 문장이 문법적으로 유지되는 경우에만 해당됩니다. "It was, like, huge"는 필러이지만 "looks like"와 "I like"는 내용입니다. 문장 시작의 "so"는 절대 제안하지 마십시오.
- False starts (
false-start): 다시 시작하기 전에 버려진 조각입니다. - Self-corrections (
self-correction): "X, no, Y" / "X, I mean Y". X와 표시를 제거하십시오.
결정 형태: references/cut-list.md 참조. 여기서도 줄당 하나의 결정입니다. 세 줄에 걸친 흐려짐은 세 개의 결정입니다. 결정을 추가한 후 ENGINE build "PROJECT"를 실행하여 유효성을 검사하십시오. build, review 및 finish는 줄에 걸친 결정을 분할하고 트림으로 제거된 단어를 드롭합니다(각각 ! repaired ...로 인쇄됨). 다른 잘못된 것이 있으면 중지합니다. 나열된 것을 먼저 수정하고 계속하십시오.
단계 8-10(일시 정지, 컷 포인트, 크로스페이드)은 유지된 내용을 기반으로 엔진이 계산합니다.
요약 후 단계 11: 리뷰 및 잠금
짧은 요약을 제공하십시오: 원시 → A-컷 길이, 후크, 대기 중인 제안 수와 종류, 및 제안할 전체 줄 컷, 그리고 첫 번째 후크 카드 아이디어를 인용문으로 표시하십시오("후크 카드 아이디어: '...'. 컷을 보낸 후 선택하거나 변경할 수 있습니다.").
Bash run_in_background: true로 ENGINE review "PROJECT"를 시작하십시오. REVIEW_URL을 출력하고 페이지를 엽니다. 멤버에게 말하십시오: "리뷰 페이지가 열렸습니다. 상단의 큐를 작업하세요(A는 자르기, R은 유지, P는 컨텍스트에서 재생). 단어를 클릭하여 자르거나 복원하고, 줄을 드래그하여 재정렬한 다음, Claude에게 보내기를 누르세요." 모든 제안이 해결될 때까지 보내기는 잠겨 있습니다. 페이지는 멤버의 선택을 릴스 폴더(review-draft.json)에 저장합니다. 보내기가 거부되거나 리뷰를 다시 시작해야 하는 경우 컷 목록을 수정하고 review를 다시 시작하십시오. 그러면 이전 선택을 다시 가져오므로 멤버가 큐를 다시 할 필요가 없습니다. 보내기 후 페이지는 두 화면을 안내합니다. 첫 번째는 캡션 화면입니다. 멤버가 위치(머리 위, 머리 아래, 낮게, 또는 머리 옆)와 캡션 모양(글꼴, 몇 단어 또는 하나, 텍스트 스타일, 두 가지 색상)을 탭합니다. 자체 프레임에 라이브로 표시됩니다. 모양 변경은 이 릴스가 사용하는 스타일에 저장되므로 다음 릴스에도 적용됩니다. 버튼은 "다음: 후크 카드"입니다. 두 번째는 후크 화면입니다. "후크 카드 없음"이 첫 번째 타일이며 원터치 스킵입니다("후크 카드 없음, 렌더링"). 그렇지 않으면 멤버는 작성한 줄, 자신의 줄을 위한 상자(최대 90자), 그리고 11개의 룩(각 룩의 짧은 동영상)을 봅니다. 모든 룩을 선택할 수 있습니다. 거부는 빈 줄, 후크에 비해 너무 짧은 릴스, 컷아웃 도구가 실행할 수 없을 때 머리 뒤 룩뿐입니다. 경고가 거부 대신 표시됩니다("이 길이에서 휴대폰에서 작게 보입니다. 더 짧은 줄이 더 크게 읽힙니다.", "이 룩은 두 부분을 위해 만들어졌습니다. 한 단어로는 하나로 표시됩니다.", "머리가 이 줄의 일부를 가립니다."). 멤버는 카드를 자체 프레임에서 위나 아래로 드래그할 수 있습니다. 이는 hook_card.offset_y(정수 px, 없으면 0, 양수는 아래, split-face 및 framed-thin은 고정)로 저장됩니다. 위치는 스타일에 저장되지 않습니다. "뒤로"는 캡션 화면으로 돌아갑니다. 누군가 "조금 위로 올려주세요"라고 요청하면 offset_y에 약 -60을 사용하십시오. 화면은 이 릴스의 컷 목록에 이미 선택 사항이 있으면 그 선택 사항을 열고, 그렇지 않으면 스타일이 기억하는 것(켜짐/꺼짐 및 룩)을 따릅니다. 기억된 것이 없으면 꺼진 상태로 열립니다. 리뷰 명령의 출력에는 hook_card(드래그한 경우 offset_y 포함)가 포함되므로 멤버가 무엇을 선택했는지 알 수 있습니다. 다시 묻지 마십시오. 보내기 후 선택 사항은 placement-draft.json에, 컷 리뷰의 선택 사항은 review-draft.json에 유지되므로 다시 열린 탭은 이전 위치로 이동합니다. 또한 "더 많은 편집에 대해 먼저 채팅하고 싶습니다" 링크가 있습니다. 동일한 선택 사항을 저장하지만 아직 렌더링하지 않음을 의미합니다. 프로세스는 둘 중 하나 후에 종료됩니다. JSON에는 next(render 또는 chat), caption_position, style_changed: true(모양을 변경한 경우)가 있습니다. 한 줄로 언급하십시오: "팁 스타일에 새 모양이 적용되었습니다." 기다리십시오. 프로세스가 종료되면 JSON 요약을 읽으십시오.
next: "chat":finish를 실행하지 마십시오. "컷 및 캡션 선택 사항이 저장되었습니다. 무엇을 변경하시겠습니까?"라고 말하십시오. 요청한 대로 변경하십시오(여기서 컷 목록 편집, /reels-engine:reel-style을 통한 모양 변경). 만족하면 지금 렌더링할지 아니면 리뷰 페이지를 다시 열지 물어보고 그렇게 하십시오.- 탭이 닫혔습니까? REVIEW_URL을 다시 제공하십시오(헬퍼가 여전히 대기 중이며 중단된 부분(컷, 캡션 화면 또는 후크 화면)에서 다시 열립니다).
- 피드백이 채팅에 입력되었습니까? 백그라운드 프로세스를 중지하고 직접
cut-list.json에 적용하여 모든 제안을 요청한 대로 해결하십시오(수락 또는 거부). 캡션 위치도 말한 경우 컷 목록에서caption_position을 설정하십시오(above,below,low,beside-left). 그렇지 않으면null로 두어 스타일의 위치가 사용되도록 하십시오. 후크 카드도 요청한 경우hook_card를 설정하십시오(후속 작업 참조). - 모든
note에 대해 조치를 취한 다음 컷 목록에서 지우십시오(피드백 로그에 이미 저장되었으므로 손실되지 않습니다). - 편집에 대해 채팅에서 멤버가 말한 모든 것("여기 공간이 너무 많아요", "그 단어는 절대 자르지 마세요")도 로그에 기록하십시오:
ENGINE note "PROJECT" "<멤버가 말한 내용>".
단계 12: 렌더링 및 내보내기
ENGINE finish "PROJECT" (해결되지 않은 것이 있으면 거부). 대략 릴스 길이의 2-3배입니다. 머리 뒤 후크 룩은 1-2분 더 추가됩니다.
buildWarnings: 전달하고, 당신의 실수라면 수정하고 다시 실행하십시오. 후크 경고(작은 글씨, 한 부분, 머리 가림)는 후크 화면에서 멤버가 정보를 바탕으로 선택한 것입니다. 전달하고 "수정"하지 마십시오.ok:false: 가능한 것을 수정하고 최대 2번 다시 실행한 다음, 여전히 문제가 있는 것을 보고하십시오.- 캡션이 낮게 위치한다는 경고: 한 번만 한 줄로 언급하십시오("캡션이 낮게 위치합니다. 긴 게시물 캡션이 일부 휴대폰에서 캡션을 가릴 수 있습니다."). 요청하지 않으면 다시 렌더링하지 마십시오.
buildWarnings줄이Hook card left off:로 시작하면 릴스가 후크 없이 렌더링되었음을 의미합니다. 제공된 이유를 사용하여 한 줄로 이유를 설명하고 다른 룩을 제안하십시오. 직접 교체하지 마십시오.buildWarnings줄이Your head covers part of line으로 시작하면 문제가 아니라 주의 사항입니다. 한 번만 언급하십시오.- 렌더링 실패: 한 번 재시도한 다음, 평이한 영어로 이유와 로그 경로를 제공하십시오.
후크와 두 개의 캡션에서 3-4 프레임을 가져오고(
ffmpeg -ss <t> -i "PROJECT/final.mp4" -frames:v 1 <png>), 릴스에 후크가 있을 때는 1.5초에서도 하나를 가져와서 확인하십시오: 캡션이 선택한 위치에 있고 얼굴 밖에 있으며, 잘린 부분이 없고, 글꼴이 로드되었으며, 후크가 프레임 안에 있고 잘리지 않았으며, 두 개의 머리 뒤 룩의 경우 사람이 배경에서 올바르게 분리되었는지 확인하십시오. 퍼즐처럼 맞지 않는 프레임, 왜곡된 얼굴, 깜박이거나 누락된 후크 카드가 있으면 다시 렌더링하십시오. 결과 비디오가 포함된 메시지: - 완료 확인 및 재생 시간.
- 요청한 스타일, 또는 아무 것도 지정되지 않은 경우 사용된 스타일.
- 사용된 브리핑 포인트 (있는 경우).
- 컷 목록에 있는 후크 카드 (있는 경우).
- 캡션 위치.
- 자체 리뷰의 아무 메모나.
후속 작업
멤버가 새 클립이나 후속 요청을 보내면 언제든지 다시 시작할 수 있습니다. 다음을 수행하십시오:
- 새 클립: 이 릴스를 마칩니다(
finish가 실행되지 않은 경우). 요청을 브리핑으로 취급하고 처음부터 새 릴스를 시작하십시오. - 후속 요청 (마지막 릴스를 참조, 새 클립 없음):
- 마지막 릴스의 PROJECT 경로를 찾으십시오.
ENGINE feedback을 읽어 컨텍스트를 확인하십시오.- 요청을 적용하십시오:
- 컷 변경: 컷 목록을 직접 편집하고
ENGINE build "PROJECT"를 실행한 다음ENGINE review "PROJECT"를 실행하십시오. - 스타일 변경:
/reels-engine:reel-style을 실행하십시오. - 캡션 위치 변경: 컷 목록에서
caption_position을 설정하십시오. - 후크 카드 변경: 컷 목록에서
hook_card를 업데이트하십시오. - 트랜스크립션 수정: 단계 2와 같이 직접 수정하십시오.
- 새 제안 추가: 새 컷 결정을 추가하고
build를 실행한 다음review를 실행하십시오.
- 컷 변경: 컷 목록을 직접 편집하고
- "변경 사항이 적용되었습니다. 지금 렌더링할까요, 아니면 먼저 리뷰 페이지를 열까요?"라고 물어보십시오.