hf-kit은(는) 무엇을 하나요?
HyperFrames 0.8.77의 레이어입니다. 모든 내용은 측정된 연구 결과를 기반으로 합니다: 16개 니치에 걸친 48개의 YouTube 동영상으로, 수치는 research/ 디렉토리에 있습니다. 아래 경로는 리포지토리 루트 기준입니다. 계약 조건은 SPEC.md를 읽고, hyperframes-core 구성 규칙을 따르세요.
hyperframes는 npx [email protected] 또는 0.8.77의 로컬 설치를 의미합니다. Python 도구는 Python 3.10+와 numpy, Pillow, 그리고 PATH에 ffmpeg가 필요합니다.
워크플로우
-
스타일 선택.
styles/README.md는 니치 → 스타일 ID → 블록, 자막 및 믹스 프리셋을 매핑합니다. 스타일 JSON은 측정된 범위(세그먼트당 컷 속도, 샷 길이, wpm, LRA, 무음)와 마스터 타겟(-14 LUFS, -1 dBTP)을 보유합니다. -
스캐폴드 생성.
python tools/scaffold.py <dir> --format 16:9|9:16 --duration S --style <id> [--blocks a,b]. 스타일의 토큰을 포함하는index.html을 생성하고,hyperframes.json을 v0.8.78 레지스트리에 고정하며, 블록을compositions/에 복사합니다. 비어 있지 않은 디렉토리를 덮어쓰지 않습니다. -
블록.
blocks/README.md의 카탈로그: pill-label, chapter-card, number-card (일반 또는 금전용), progress-badge, question-card, doc-highlight, film-gate, world-camera, ui-window, tier-board, face-banner-stack (둥근 16:9 주제 상자를 위한topic-top레이아웃 포함), zoom-through, blur-swap. 각각은data-composition-variables가 포함된 하위 구성이며,data-variable-values로 값을 전달합니다.examples/<block>/에는 각 블록의 작동 데모가 있습니다. 각 블록은 일반#root와 일반 하위 선택자로 스타일을 지정합니다. 복합#root[data-composition-id=...]는 사용하지 마세요: 깔끔하게 린트되지만 빈 화면으로 렌더링됩니다. -
자막.
python tools/captions.py words.json --variant cards|karaoke|speaker|keyword|punch --format 9:16 --out compositions/captions.html. 입력은[{text,start,end,speaker?,class?}]또는hyperframes transcribeJSON입니다. -
사운드.
sound/MIX.md에는 10개의 복사 가능한hyperframes-audio프리셋(음성 우선 플랫, 전환 시 일시 정지, 가장 무거운 대사에서 무음, 클립 전 딥 등)이 있으며, 각각 소스 행을 명명합니다.sound/sfx/에는 11개의 생성된 효과가 있고,sound/SFX.md는 이벤트를 파일과 레벨에 매핑합니다. 7개의 무드 베드는 커밋되지 않았습니다:python sound/gen_bed.py는 모든 무드 베드를 -20 LUFS로sound/beds/에 렌더링하며,python sound/gen_bed.py --mood <name> --seconds N --out bed.wav는 원하는 길이로 렌더링합니다. 두 생성기는 결정론적이며 출력은 CC0입니다. -
YouTube의 배경 푸티지 또는 음악.
python tools/bg_source.py <url> [--download --out assets/ --audio].- ACCEPT (종료 코드 0): yt-dlp가 Creative Commons 라이선스를 보고하는 경우에만 허용합니다. 설명에 표시할 크레딧 라인을 출력합니다. 비디오 다운로드에는 최소
--min-height(기본값 1080)가 필요하며,--audio는 높이 제한이 없습니다. - REVIEW (종료 코드 3): 표준 라이선스 업로드가 제목이나 설명에 재사용을 명시하는 경우. "저작권 없음" 제목은 업로더의 주장일 뿐입니다. 업로더가 원본 제작자인지 확인하고 약관의 스크린샷을 보관하세요.
- REFUSE (종료 코드 2): 그 외의 경우.
모든 결정은
sources/provenance.jsonl에 추가됩니다(--log로 변경 가능). Content ID는 여전히 타인의 작품을 Creative Commons로 재업로드한 것을 주장할 수 있으므로, 원본 채널을 선호하세요. 다운로드는 프로젝트의assets/에 보관하고, 공개 리포지토리에는 절대 넣지 마세요. - ACCEPT (종료 코드 0): yt-dlp가 Creative Commons 라이선스를 보고하는 경우에만 허용합니다. 설명에 표시할 크레딧 라인을 출력합니다. 비디오 다운로드에는 최소
-
렌더 전 확인.
hyperframes lint <dir>및hyperframes check <dir>를 실행한 후,hyperframes snapshot <dir> --frames 6으로 연속 샷 시트를 확인하세요. 린트 통과는 시각적 합격을 의미하지 않습니다. -
렌더 및 측정.
hyperframes render <dir> --output out.mp4로 렌더링한 후,python tools/check.py out.mp4 --style <id>를 실행합니다. 각 측정값을 스타일 범위 및 마스터 라우드니스 라인과 비교하여 출력합니다. 이는 조언일 뿐입니다: 불일치는 컷이 참조에서 벗어났음을 의미하며, 최종 분석은 사용자의 판단에 달려 있습니다.
연구 결과 (요약)
- 16개 니치 전체에서 컷 속도와 라우드니스는 이상치와 대조군을 구분하지 못했습니다. 위험에 처한 사람, 첫 몇 초 안에 명시된 이해 관계, 화면에 증거, 그리고 유지된 답변이 구분했습니다(가설;
research/TECHNIQUES.md, "이상치와 대조군을 구분하지 못한 것" 참조). - 하드 컷 수는 최소 기준입니다. 템포는 나레이션 아래에서 신뢰할 수 없습니다. 오디오는 청취되지 않았습니다: 사운드 결과는 R128 수치, 스펙트럼 및 자막 태그에서 비롯되었습니다.
참고 자료 위치
| 필요 항목 | 경로 |
|---|---|
| 계약 조건 및 규칙 | SPEC.md |
| 스타일 및 측정 범위 | styles/README.md, styles/<id>.json |
| 블록 카탈로그 및 데모 | blocks/README.md, examples/<block>/ |
| 믹스 프리셋 및 SFX 맵 | sound/MIX.md, sound/SFX.md |
| 기법 라이브러리, 무드 표 | research/TECHNIQUES.md |
| 니치 DNA 시트(스틸 리스트 포함) | research/niches/<niche>.md |
| 동영상당 카드 및 데이터 파일 | research/cards/<niche>/<id>.md, research/data/<id>.json |
| 지식 챕터(음악 및 무드, 사운드 디자인, VFX 및 모션) | research/knowledge/ |