Was macht hf-kit?
Eine Ebene auf HyperFrames 0.8.77. Alles darin basiert auf gemessener Forschung: 48 YouTube-Videos
aus 16 Nischen, mit den Zahlen in research/. Die Pfade unten beziehen sich auf das Repository-Wurzelverzeichnis.
Lesen Sie SPEC.md für die Verträge und befolgen Sie die hyperframes-core-Kompositionsregeln.
hyperframes unten bedeutet npx [email protected] oder eine lokale Installation von 0.8.77. Python-Tools
benötigen Python 3.10+ mit numpy und Pillow, zusätzlich ffmpeg im PATH.
Arbeitsablauf
-
Stil auswählen.
styles/README.mdbildet Nische → Stil-ID → Blöcke, Untertitel und Mix-Presets ab. Das Stil-JSON enthält die gemessenen Bereiche (Schnitte/Min. pro Segment, Aufnahmelänge, WPM, LRA, Stille) und das Master-Ziel (-14 LUFS, -1 dBTP). -
Gerüst erstellen.
python tools/scaffold.py <verzeichnis> --format 16:9|9:16 --duration S --style <id> [--blocks a,b]. Es schreibtindex.htmlmit den Tokens des Stils, fixierthyperframes.jsonauf die v0.8.77-Registry und kopiert die Blöcke incompositions/. Es weigert sich, ein nicht leeres Verzeichnis zu überschreiben. -
Blöcke. Katalog in
blocks/README.md: Pill-Label, Kapitel-Karte, Zahlen-Karte (sauber oder Geld), Fortschritts-Badge, Frage-Karte, Dokument-Highlight, Film-Gate, Welt-Kamera, UI-Fenster, Stufen-Board, Gesichts-Banner-Stapel (mit einemtopic-top-Layout für eine abgerundete 16:9-Themenbox), Zoom-Durch, Unschärfe-Wechsel. Jeder ist eine Unterkomposition mitdata-composition-variables; Werte übergeben mitdata-variable-values.examples/<block>/enthält eine funktionierende Demo jedes Blocks. Gestalten Sie jeden Block mit einfachem#rootund einfachen Nachkommen-Selektoren. Verwenden Sie niemals die zusammengesetzte#root[data-composition-id=...]: Sie lintet sauber und rendert leer. -
Untertitel.
python tools/captions.py words.json --variant cards|karaoke|speaker|keyword|punch --format 9:16 --out compositions/captions.html. Eingabe ist[{text,start,end,speaker?,class?}]oderhyperframes transcribeJSON. -
Ton.
sound/MIX.mdenthält 10 kopierbarehyperframes-audio-Presets (sprachfokus flach, Pause an der Wendung, Stille an der schwersten Zeile, Einbruch vor einem Clip usw.), jedes mit seiner Quellzeile.sound/sfx/enthält 11 generierte Effekte undsound/SFX.mdordnet Ereignisse Dateien und Pegeln zu. Die 7 Stimmungsbeats sind nicht festgeschrieben:python sound/gen_bed.pyrendert alle insound/beds/bei -20 LUFS, undpython sound/gen_bed.py --mood <name> --seconds N --out bed.wavrendert jede Länge. Beide Generatoren sind deterministisch und die Ausgabe ist CC0. -
Hintergrundmaterial oder Musik von YouTube.
python tools/bg_source.py <url> [--download --out assets/ --audio].- AKZEPTIEREN (Exit 0) nur, wenn yt-dlp eine Creative-Commons-Lizenz meldet. Es gibt eine Quellenangabe
für die Beschreibung aus. Video-Downloads benötigen mindestens
--min-height(Standard 1080);--audiohat keine Höhenbeschränkung. - PRÜFEN (Exit 3), wenn ein Upload mit Standardlizenz in Titel oder Beschreibung eine Wiederverwendung behauptet. Ein „No Copyright“-Titel ist die Aussage des Uploaders. Prüfen Sie, ob der Uploader der ursprüngliche Ersteller ist, und bewahren Sie einen Screenshot der Bedingungen auf.
- ABLEHNEN (Exit 2) andernfalls.
Jede Entscheidung wird an
sources/provenance.jsonlangehängt (--logzum Ändern). Content ID kann dennoch einen Creative-Commons-Re-Upload eines fremden Werks beanspruchen, daher bevorzugen Sie den Originalkanal. Behalten Sie Downloads imassets/-Verzeichnis des Projekts, niemals in einem öffentlichen Repository. - AKZEPTIEREN (Exit 0) nur, wenn yt-dlp eine Creative-Commons-Lizenz meldet. Es gibt eine Quellenangabe
für die Beschreibung aus. Video-Downloads benötigen mindestens
-
Vor dem Rendern prüfen.
hyperframes lint <verzeichnis>undhyperframes check <verzeichnis>; dannhyperframes snapshot <verzeichnis> --frames 6und betrachten Sie das Kontaktblatt. Ein bestandener Lint-Test ist keine visuelle Freigabe. -
Rendern und messen.
hyperframes render <verzeichnis> --output out.mp4, dannpython tools/check.py out.mp4 --style <id>. Es gibt jede Messung gegen den Bereich des Stils plus die Master-Lautstärkezeile aus. Es ist eine Empfehlung: Eine Abweichung bedeutet, dass der Schnitt von der Referenz abgewichen ist, und Ihre eigene Analyse entscheidet, ob das wichtig ist.
Was die Forschung sagt (Kurzfassung)
- Über alle 16 Nischen hinweg unterschieden Schnittrate und Lautstärke Ausreißer nicht von ihren Kontrollen. Eine
Person in Gefahr, die Gefahr in den ersten Sekunden genannt, Beweise auf dem Bildschirm und eine gehaltene Antwort
taten dies (Hypothesen; siehe
research/TECHNIQUES.md, „Was Ausreißer nicht von Kontrollen unterschied“). - Harte-Schnitt-Zahlen sind Untergrenzen. Tempo ist unter Erzählung unzuverlässig. Das Audio wurde nicht ezuhört: Die Tonergebnisse stammen aus R128-Zahlen, Spektren und Untertitel-Tags.
Wo die Dinge sind
| Bedarf | Pfad |
|---|---|
| Verträge und Regeln | SPEC.md |
| Stile und ihre gemessenen Bereiche | styles/README.md, styles/<id>.json |
| Blockkatalog und Demos | blocks/README.md, examples/<block>/ |
| Mix-Presets und die SFX-Karte | sound/MIX.md, sound/SFX.md |
| Technikbibliothek, Stimmungstabelle | research/TECHNIQUES.md |
| Nischen-DNA-Blätter mit Steal-Listen | research/niches/<niche>.md |
| Eine Karte und eine Datendatei pro Video | research/cards/<niche>/<id>.md, research/data/<id>.json |
| Wissenskapitel (Musik und Stimmung, Sounddesign, VFX und Motion) | research/knowledge/ |