style-lab
사용 시기 (전체 트리거 목록)
사용자가 참고 동영상(링크 또는 파일)이나 서면 설명으로부터 편집 스타일을 만들고, 정의하고, 복사하고, 학습하거나 훈련하고자 할 때; 스타일 보드 또는 스타일 가이드를 구축하고자 할 때; 참고 릴을 재사용 가능한 스타일로 전환하고자 할 때; 또는 학습된 스타일로 토크헤드 또는 숏폼 클립을 편집한 후 검토 라운드에서 수정하고자 할 때 사용합니다. 또한 "내 동영상을 이 크리에이터처럼 보이게 해줘", "이 스타일을 저장해서 모든 동영상이 일치하도록 해줘", "편집이 평범해 / AI 티가 나"와 같은 요청에도 사용합니다. 히브리어: עריכה סגנון, ליצור סגנון, ללמד את Claude סגנון, בורד סגנון, לוח השראה, ריפרנסים, תערוך בסגנון, תוכנית עריכה, סבב הערות, סטייל לסרטונים.
סקיל = הוראות קבועות ל־Claude. 이 스킬은 Gabriel Gelman (Apache-2.0)의 "וידאו עם AI" 과정 스킬의 일부입니다. 고급 보너스 스킬로, ffmpeg와 Python이 설치된 Claude Code를 가정하며 HyperFrames와 함께 사용할 때 가장 효과적입니다.
언어: 사용자가 다른 언어로 작성하지 않는 한 항상 히브리어로 대화합니다. 각 단계를 실행하기 전에 평이한 언어로 설명합니다(무엇을 하는지, 왜 하는지, 사용자가 지금 무엇을 해야 하는지). 한 번에 한 단계씩 진행하며 단계 이름을 지정합니다(예: "שלב A2: בורד הסגנון"). 사용자가 보게 되는 모든 페이지(보드, 계획, 검토실)는 과정 디자인을 따릅니다: RTL 히브리어, Karantina / Heebo, 흰색-검정-보라색.
영감: 두 단계 워크플로우(참고 동영상 ~20개와 보드에서 스타일을 훈련한 후, 사람이 만든 계획으로 편집)는 Joseph의 Claude로 토크헤드 동영상 편집에 관한 YouTube 동영상(https://youtu.be/g9xoKm5DEeU)에서 영감을 받았습니다. 여기에는 동영상의 어떤 내용도 복사되지 않았습니다. 보드, 계획 및 검토 페이지, 스크립트, 규칙 및 검토 루프는 모두 자체적으로 제작되었으며 13개의 Reel 배치에서 테스트되었습니다.
한 문단으로 설명
참고 동영상은 Claude에게 애니메이션 뒤의 논리(언제, 얼마나 오래, 어떻게 움직이는지)를 가르칩니다. 보드는 디자인(글꼴, 색상, 크기, 이유)을 가르칩니다. 둘 다 없으면 편집이 평범해 보입니다. 사람의 취향은 세 가지 체크포인트, 즉 보드(A단계), 편집 계획(B단계), 검토 라운드에 개입합니다. Claude는 그 사이에서 무거운 작업을 수행합니다. 좋은 스타일이 무엇인지 모른다면 AI는 단지 나쁜 동영상을 더 빨리 만들도록 도와줄 뿐이므로, 모든 규칙은 측정 가능해야 하며 모든 디자인 선택에는 "이유"가 있어야 합니다.
기본값 (시작할 때 한 줄로 말하고, 요청 시 변경)
- 브랜드: 과정 브랜드(
references/brand-defaults.md: Karantina 700 제목, Heebo 본문 -0.04em, Consolas 코드, 흰색 / 검정 / 보라색). 참고 자료의 레이아웃, 모션 및 구조는 유지하되 글꼴과 색상은 브랜드로 교체합니다. 사용자는 스타일에 대해 참고 자료의 고유 모양을 유지하거나~/.claude/style-lab/brand.md에 자신의 브랜드를 넣을 수 있습니다. - 빌드 엔진: HyperFrames (HTML to video). 없을 경우:
references/tools-and-fallbacks.md. - 전사: 로컬 faster-whisper; 히브리어는 로컬 ivrit-ai 모델 사용. 클라우드(RunPod)는 사용자의 동의가 있을 때만 사용합니다(비용 발생).
- 이미지 / 3D: 선택 사항이며, 비트에 필요할 때만, 유료인 경우 사용자의 동의가 있을 때만 사용합니다.
- 형식: 9:16, 1080x1920, 30fps (사용자가 다른 지정을 하지 않는 한). 캡션 언어를 추측하지 말고 묻습니다(또는 캡션 없음). 먼저 설치된 것을 확인합니다(ffmpeg, Python, faster-whisper, Node + HyperFrames, Blender, 이미지 모델). 사용할 것을 알려줍니다. 누락된 도구는 해당 단계를 차단합니다: 어떤 도구이며 무엇을 설치해야 하는지 알려주고, 절대 조용히 단계를 건너뛰지 않으며, 동의 없이 다운로드하지 않습니다.
당신의 스타일들 (여러 명명된 스타일을 나란히)
각 스타일은 사용자가 선택한 이름(히브리어도 괜찮음), 영문 슬러그, 한 줄 설명, 자체 스타일 팩, 자체 스타일 스킬 style-<slug>을 가집니다. 모든 스타일은 하나의 레지스트리 ~/.claude/style-lab/styles.json에 scripts/styles.py로 관리됩니다.
python scripts/styles.py list # 선택 가능한 스타일 목록
python scripts/styles.py add <slug> --name "<name>" --pack <project>/styles/<slug> --description "..."
python scripts/styles.py show <slug or name>
python scripts/styles.py set <slug> name="<new name>" status=ready aliases="..." theme=light
python scripts/styles.py check # 모든 팩과 스킬이 여전히 존재하는지 확인
상태: A단계 중에는 training, A5 이후 ready(ready 상태의 스타일만 편집에 제공됨), 숨기려면 archived. remove는 레지스트리 항목만 삭제하고 파일은 절대 삭제하지 않습니다. 각 스타일은 fonts / colors (brand 또는 reference)와 theme (dark, light 또는 both; 하나의 동영상은 여전히 "다른 테마"일 수 있음)를 기록합니다.
어느 단계인가요? "new style / ליצור סגנון / ללמד סגנון" → A단계. "edit / make a video / תערוך" → B단계. "change / rename / improve style X" → styles.py set을 사용하고, 규칙 변경은 해당 스타일의 STYLE.md와 스킬을 편집합니다.
파일 위치
<project>/styles/<slug>/ 스타일 팩
refs/ sources.md 참고 동영상 (로컬 학습 복사본, 절대 게시하지 않음)
analysis/ 동영상별 전사본, 콘택트 시트, 노트
board/ board.json board.html thumbs/
library/<V01-A06 title>/ still.png strip.jpg clip.mp4 notes.md (+ index.json)
animations.json 분석 내용 (라이브러리 스크립트의 입력)
STYLE.md 번호가 매겨진 규칙, 토큰, 카테고리, 모션, 사운드, 검토 규칙
kit/ 빌드 엔진용 선택적 테스트된 구성 요소
<project>/edits/<clip>/ 편집당 하나의 폴더
raw/ words.json edit_ready.mp4 edit_ready.words.json plan.json plan.html
build/ assets/ renders/ revisions.md SOURCES.md
~/.claude/skills/style-<slug>/SKILL.md 생성된 스타일 스킬
~/.claude/style-lab/styles.json 레지스트리
스크립트(로컬, 무료): styles.py, transcribe_words.py, transcribe_cloud_ivrit.py (유료, 선택 사항), cut_silences.py, verify_cut.py, word_edges.py, build_reference_library.py.
페이지: assets/board-template.html, assets/plan-template.html, assets/review-template.html.
A단계: 스타일 훈련 (스타일 팩 구축)
A1. 참고 자료 수집
- 스타일 이름과 한 줄 설명을 묻고, 즉시 등록합니다(
styles.py add ..., 상태training). 브랜드 모양(기본값) 또는 참고 자료 고유 모양을 묻습니다. - 참고 자료 위치를 묻습니다. 동영상: 사용자가 다운로드해도 되는 파일 또는 링크를 제공합니다. 정확히 이 스타일로 가장 잘 편집된 동영상 약 20개를 목표로 합니다. 약 12개 미만이면 라이브러리가 빈약해집니다(그렇게 말하고, 사용자가 원하면 계속 진행). 이름을
V01.mp4 …형식으로 지정하고 각각을refs/sources.md에 나열합니다. 로컬에 유지되며 절대 게시, 업로드 또는 artifact에 넣지 않습니다. - 설명만 있는 경우 (동영상 없음): 사용자를 인터뷰합니다(느낌, 배경, 유형, 모션, 캡션, 사운드, 금지 사항). 모든 형용사를 숫자로 바꾸고, 사용자가 좋아하는 몇 장의 스틸 또는 스크린샷을 수집합니다. A3-A4의 프레임 작업은 건너뛰고, 보드는 참고 프레임 대신 토큰, 규칙 및 스케치를 표시하며, 라이브러리는 비어 있는 상태로 시작하여 승인된 편집에서 채워집니다.
A2. 스타일 보드 (훈련에서 가장 중요한 부분)
- 모든 참고 자료 분석: ffmpeg(또는 설치된 경우 비디오 분석 도구)로 0.5초마다 프레임, 콘택트 시트, 오디오 음량. 시트를 읽습니다.
- 카테고리(캡션 시스템, 레이아웃, B-roll 유형, 그래픽, 전환, CTA …) 제안; 스타일 고유의 카테고리가 우선합니다.
references/example-style-3d-paper.md는 완성된 예를 보여줍니다. - 100-150개의 영감 프레임을 9:16 썸네일(~360px 너비)로
board/thumbs/에 선택하고, 카테고리당 하나의 히어로 프레임을 주석 처리용으로 선택합니다. board.json(스키마:references/board-and-plan-spec.md) 작성: 토큰(글꼴, 프레임에서 추출한 16진수 색상, 텍스처, 모양, 크기, 레이아웃) 및 카테고리별 타일, 주석이 달린 프레임 1개와 3-5개의 측정 가능한 콜아웃, 네 가지 "이유" 질문(디자인, 색상, 효과, 애니메이션)에 대한 초안 답변.assets/board-template.html에서board.html을 빌드하고(JSON 블록 교체), 썸네일을 지원 파일로 포함하여 artifact로 게시합니다. 사용자가 "이유" 답변을 다시 작성하고 העתקת ההערות לבורד를 눌러 다시 붙여넣습니다.- 체크포인트 1: 멈추고 기다립니다. 사용자의 메모를 적용하고 다시 게시합니다. 사용자가 보드가 올바르다고 말할 때까지 A3을 시작하지 마십시오. 잘못된 보드는 잘못된 스타일을 훈련시킵니다.
A3. 분석
모든 참고 자료에 대해: 단어 수준 전사(transcribe_words.py, 사용자 언어 또는 auto)와 프레임별 분석을 수행하여 모든 애니메이션을 찾고 세 가지를 기록합니다.
- 배치: 어떤 단어가 트리거하는지, 단어 후 얼마 후에, 어떤 종류의 라인이 어떤 종류의 장면(발표 vs 설명, 숫자, 사람, 이야기, 펀치라인)을 얻는지.
- 디자인: 배경, 텍스처, 유형 쌍 및 크기, 색상, 선 작업, 일러스트레이션, 위치.
- 논리: 지속 시간(프레임 단위), 거리, 이징, 카메라 움직임. 프레임 단위로 측정하고 절대 추측하지 않습니다.
그런 다음 보드와 조정합니다(보드 = 무엇과 이유; 동영상 = 언제와 어떻게 움직이는지). 사용자에게 동의하지 않는 부분을 묻습니다. 각 애니메이션을
animations.json(V<nn>-A<n>, 시작/끝, 키프레임, 제목, 카테고리, 장면 유형, 단어, 메모)에 작성합니다. 한 번에 하나의 동영상을 처리하면서 저장합니다. 동영상이 많은 경우 하위 에이전트로 작업을 분할합니다(각각 하나의 동영상, 동일한 스키마).
A4. 참고 라이브러리
python scripts/build_reference_library.py styles/<slug>/animations.json --out styles/<slug>/library
모든 애니메이션은 폴더(스틸, 레이블이 지정된 프레임 스트립, 클립, 메모)와 index.json이 됩니다. 몇 개의 스트립을 열고 animations.json에서 잘못된 경계를 수정한 후 --force로 다시 실행합니다.
A5. 스타일 패키징
references/style-skill-template.md에서 STYLE.md와 스타일 스킬을 작성합니다: 번호가 매겨진, 측정된 규칙(계획이나 메모가 "규칙 7"을 참조할 수 있도록); 브랜드에 매핑된 토큰(참고 자료의 크기, 비율 및 색상 규율 유지, 원본 기록); 디자인, 모션, 배치 및 2-3개의 라이브러리 참조가 있는 각 카테고리; 계획 패턴; 사운드 프로필; "사고 방식" 섹션; 빈 "검토 라운드 규칙" 섹션. 모든 스타일은 references/craft-rules.md의 일반 규칙으로 시작하고 다른 점만 작성합니다. 권장: 반복되는 부분(캡션, 제목, 스피커 레이아웃, CTA)을 kit/의 테스트된 구성 요소 키트로 구축합니다. 스킬을 ~/.claude/skills/style-<slug>/SKILL.md에 저장한 후 styles.py set <slug> status=ready board_url=<board artifact URL>을 실행합니다. 스타일 이름과 새 세션에서 나열될 것임을 사용자에게 알립니다.
B단계: 훈련된 스타일로 클립 편집
가장 강력한 모델과 노력을 사용합니다.
B0. 스타일 선택
styles.py list. 사용자가 지정한 경우 해당 스타일을 사용하고, 그렇지 않으면 준비된 스타일을 옵션으로 묻습니다(준비된 스타일이 하나인 경우: 사용할 것을 알려줍니다). 준비된 스타일이 없으면 A단계를 제안합니다. style-<slug>를 로드하고 선택 사항을 plan.json에 기록하여 모든 라운드에서 동일한 스타일을 사용합니다.
B1. 전사 및 컷
transcribe_words.py raw.mp4 --out words.json(히브리어:--language he --model <ivrit-ai folder>).- 낮은 신뢰도의 단어(이름, 숫자, 브랜드)를 표시하고 계획 수립 전에 수정합니다.
- 여러 테이크가 있는 경우 사용자와 함께 선택(
--keep keep.json)한 후,cut_silences.py raw.mp4 --words words.json --out edit_ready.mp4 --pad-ms 120(일부러 펀치감 있는 스타일의 경우 30ms만). 결합 부분에는 15ms 오디오 페이드를 적용합니다. - VAD 없이 모든 결합 부분을 다시 듣고(
transcribe_words.py edit_ready.mp4 --start .. --end .. --no-vad --no-context), 단어 끝을 확인하고(word_edges.py --at <t>),verify_cut.py를 실행합니다. 숨겨진 반복과 잘린 끝은 소유자가 아닌 여기서 발견됩니다. 이후 모든 것은edit_ready.mp4와edit_ready.words.json을 사용합니다.
B2. 편집 계획 (요청 없이 표시)
스크립트를 비트(각각 하나의 아이디어 또는 라인)로 분할합니다. 각 비트에 대해 스타일 라이브러리에서 세 가지 디자인을 참고 자료가 배치하는 방식으로 배치하고, 하나는 ההמלצה שלי로 표시합니다. 각 옵션: 제목, 카테고리, 장면 유형(פנים + כתוביות / שכבה מעל הפנים / סצנה מלאה), 구체적인 설명, Ref V##-A##; 각 비트: 왜 적합한지(참고 자료 및 규칙 번호 인용) 및 카메라 노트. references/craft-rules.md §1(은유, 실제 작동하는 것, 보이지 않는 것을 보이게 만들기, 움직임에 대한 참조, 절대 반복되지 않음)의 다섯 가지 질문으로 각 비트를 디자인합니다. assets/plan-template.html에서 plan.html을 빌드하고 540p 프록시를 clip.mp4로, 옵션 스틸을 thumbs/로 게시합니다.
B3. 체크포인트 2: 사람이 계획
사용자가 비트당 하나의 디자인을 선택하거나 직접 작성하고 העתקת התוכנית를 눌러 다시 붙여넣습니다. 계획 패턴을 조언으로 제공합니다: 스피커로 열기; 후크는 하나의 강력한 비트; 얼굴에 발표, 시각 자료로 설명; 사람 → 콜아웃; 이야기 → B-roll; 장면 유형 균형 맞추기. 사용자가 완전한 제어권을 주는 경우("אתה מחליט"), 선택을 진행하고 그렇게 말합니다.
B4. 빌드
- 선택된 각 디자인에 대해 라이브러리 폴더를 열고 복사할 정확한 디자인을 기록합니다.
- 에셋 목록을 항목별 출처(실제 UI, 공식 로고, 도구 제작자의 자체 쇼케이스 클립, 사용자 파일, 라이선스 음악/SFX, 선택적 생성 이미지 또는 3D)와 함께 작성하고 표시합니다. 다운로드 전에 묻습니다. 모든 출처를
SOURCES.md에 기록합니다. - HyperFrames(먼저 해당 스킬 로드) 또는 대체 엔진으로 빌드:
edit_ready.mp4를 스피커 트랙으로 하는 1080x1920 컴포지션 1개; 스타일 토큰; 스타일 키트를 먼저 사용. 순서: 단어 파일에서 전체 동영상에 대한 캡션, 그 다음 계획 순서로 각 비트. 처음 2개의 비트를 먼저 빌드하고, 스냅샷을 찍어 스타일의 참고 프레임과 비교한 후 조정하고, 나머지를 진행합니다.references/craft-rules.md를 따르고references/pitfalls.md를 확인합니다. - 검증(오류 0), 0.5초마다 스냅샷(밀집된 비트와 CTA 위에서는 0.2초), 모든 스냅샷을 읽고 수정합니다. 그런 다음 드래프트(저화질, 음악 포함)를 렌더링하고 검토 페이지를 엽니다. 첫 번째 드래프트는 완성도의 60-70%에 불과하다고 명확히 말합니다.
B5. 검토 라운드
다음 표준을 따릅니다: (참고: 원문이 잘렸으므로, 이 부분은 일반적인 검토 라운드 절차를 따르며, references/craft-rules.md의 검토 규칙과 STYLE.md의 검토 라운드 규칙 섹션을 참조합니다.) 각 라운드마다 사용자가 피드백을 제공하면 스타일 규칙에 따라 수정하고, 변경 사항을 revisions.md에 기록하며, 최대 3라운드까지 반복합니다. 사용자가 만족하면 최종 고화질 버전을 렌더링하고 결과물을 제공합니다.