Que fait hf-kit ?
Une couche au-dessus d'HyperFrames 0.8.77. Tout ce qu'elle contient provient de recherches mesurées : 48 vidéos YouTube
réparties sur 16 niches, avec les chiffres dans research/. Les chemins ci-dessous sont relatifs à la racine du dépôt.
Consultez SPEC.md pour les contrats, et suivez les règles de composition de hyperframes-core.
hyperframes ci-dessous signifie npx [email protected] ou une installation locale de 0.8.77. Les outils Python
nécessitent Python 3.10+ avec numpy et Pillow, ainsi que ffmpeg dans le PATH.
Workflow
-
Choisissez le style.
styles/README.mdfait correspondre la niche → l'ID du style → les blocs, les sous-titres et les préréglages de mixage. Le JSON du style contient les plages mesurées (coupures/min par segment, durée du plan, mots/min, LRA, silences) et la cible maître (-14 LUFS, -1 dBTP). -
Générez le squelette.
python tools/scaffold.py <dir> --format 16:9|9:16 --duration S --style <id> [--blocks a,b]. Il écritindex.htmlavec les jetons du style, épinglehyperframes.jsonau registre de la v0.8.77, et copie les blocs danscompositions/. Il refuse d'écraser un répertoire non vide. -
Blocs. Catalogue dans
blocks/README.md: pill-label, chapter-card, number-card (propre ou monnaie), progress-badge, question-card, doc-highlight, film-gate, world-camera, ui-window, tier-board, face-banner-stack (avec une dispositiontopic-toppour une boîte thématique arrondie 16:9), zoom-through, blur-swap. Chacun est une sous-composition avecdata-composition-variables; passez les valeurs avecdata-variable-values.examples/<block>/contient une démo fonctionnelle de chaque bloc. Stylisez chaque bloc avec#rootsimple et des sélecteurs descendants simples. N'utilisez jamais le composé#root[data-composition-id=...]: cela linte propre et rend un écran blanc. -
Sous-titres.
python tools/captions.py words.json --variant cards|karaoke|speaker|keyword|punch --format 9:16 --out compositions/captions.html. L'entrée est[{text,start,end,speaker?,class?}]ou du JSONhyperframes transcribe. -
Son.
sound/MIX.mdcontient 10 préréglageshyperframes-audiocopiables (voix-first flat, pause au tournant, silence à la ligne la plus lourde, dip avant un clip, etc.), chacun nommant sa ligne source.sound/sfx/contient 11 effets générés etsound/SFX.mdfait correspondre les événements aux fichiers et aux niveaux. Les 7 nappes d'ambiance ne sont pas commitées :python sound/gen_bed.pyrend toutes danssound/beds/à -20 LUFS, etpython sound/gen_bed.py --mood <name> --seconds N --out bed.wavrend n'importe quelle durée. Les deux générateurs sont déterministes et la sortie est CC0. -
Vidéos ou musique d'arrière-plan depuis YouTube.
python tools/bg_source.py <url> [--download --out assets/ --audio].- ACCEPTER (sortie 0) seulement lorsque yt-dlp signale une licence Creative Commons. Il imprime une ligne
de crédit pour la description. Les téléchargements vidéo nécessitent au moins
--min-height(par défaut 1080) ;--audion'a pas de seuil de hauteur. - RÉVISER (sortie 3) lorsqu'un téléchargement sous licence standard revendique une réutilisation dans son titre ou sa description. Un titre « sans droit d'auteur » n'engage que l'auteur du téléchargement. Vérifiez que l'auteur est le créateur original et conservez une capture d'écran des conditions.
- REFUSER (sortie 2) dans les autres cas.
Chaque décision est ajoutée à
sources/provenance.jsonl(--logpour modifier le chemin). Content ID peut toujours revendiquer une re-upload sous Creative Commons du travail de quelqu'un d'autre, préférez donc la chaîne originale. Gardez les téléchargements dans leassets/du projet, jamais dans un dépôt public. - ACCEPTER (sortie 0) seulement lorsque yt-dlp signale une licence Creative Commons. Il imprime une ligne
de crédit pour la description. Les téléchargements vidéo nécessitent au moins
-
Vérifiez avant le rendu.
hyperframes lint <dir>ethyperframes check <dir>; ensuitehyperframes snapshot <dir> --frames 6et regardez la planche contact. Un lint réussi n'est pas un succès visuel. -
Rendu et mesure.
hyperframes render <dir> --output out.mp4, puispython tools/check.py out.mp4 --style <id>. Il imprime chaque mesure par rapport à la plage du style plus la ligne de sonorité maître. C'est un conseil : un écart indique que le montage a dévié de la référence, et vos propres analyses décident si cela importe.
Ce que la recherche dit (version courte)
- Dans l'ensemble des 16 niches, le taux de coupure et la sonorité n'ont pas séparé les valeurs aberrantes de leurs
contrôles. Une personne en jeu, l'enjeu énoncé dans les premières secondes, une preuve à l'écran et une réponse
soutenue l'ont fait (hypothèses ; voir
research/TECHNIQUES.md, « Ce qui n'a pas séparé les valeurs aberrantes des contrôles »). - Les nombres de coupes franches sont des planchers. Le tempo est peu fiable sous la narration. L'audio n'a pas été écouté : les constatations sonores proviennent des nombres R128, des spectres et des étiquettes de sous-titres.
Où se trouvent les éléments
| Besoin | Chemin |
|---|---|
| Contrats et règles | SPEC.md |
| Styles et leurs plages mesurées | styles/README.md, styles/<id>.json |
| Catalogue des blocs et démos | blocks/README.md, examples/<block>/ |
| Préréglages de mixage et carte SFX | sound/MIX.md, sound/SFX.md |
| Bibliothèque de techniques, table des ambiances | research/TECHNIQUES.md |
| Fiches ADN de niche avec listes de ce qui marche | research/niches/<niche>.md |
| Une carte et un fichier de données par vidéo | research/cards/<niche>/<id>.md, research/data/<id>.json |
| Chapitres de connaissance (musique et ambiance, conception sonore, VFX et mouvement) | research/knowledge/ |