O que hf-kit faz?
Uma camada sobre HyperFrames 0.8.77. Tudo nele remonta a pesquisa medida: 48 vídeos do YouTube
em 16 nichos, com os números em research/. Caminhos abaixo são relativos à raiz do repositório.
Leia SPEC.md para os contratos, e siga as regras de composição hyperframes-core.
hyperframes abaixo significa npx [email protected] ou uma instalação local de 0.8.77. Ferramentas Python
precisam de Python 3.10+ com numpy e Pillow, além de ffmpeg no PATH.
Fluxo de trabalho
-
Escolha o estilo.
styles/README.mdmapeia nicho → id do estilo → blocos, legendas e predefinições de mixagem. O JSON do estilo contém as faixas medidas (cortes/min por segmento, duração do shot, wpm, LRA, silêncios) e o alvo mestre (-14 LUFS, -1 dBTP). -
Estruture.
python tools/scaffold.py <dir> --format 16:9|9:16 --duration S --style <id> [--blocks a,b]. Ele escreveindex.htmlcom os tokens do estilo, fixahyperframes.jsonno registro v0.8.77 e copia os blocos paracompositions/. Recusa sobrescrever um diretório não vazio. -
Blocos. Catálogo em
blocks/README.md: pill-label, chapter-card, number-card (limpo ou money), progress-badge, question-card, doc-highlight, film-gate, world-camera, ui-window, tier-board, face-banner-stack (com layouttopic-toppara uma caixa de tópico arredondada 16:9), zoom-through, blur-swap. Cada um é uma subcomposição comdata-composition-variables; passe valores comdata-variable-values.examples/<block>/tem uma demonstração funcional de cada um. Estilize cada bloco com#rootsimples e seletores descendentes simples. Nunca o composto#root[data-composition-id=...]: ele passa no lint e renderiza em branco. -
Legendas.
python tools/captions.py words.json --variant cards|karaoke|speaker|keyword|punch --format 9:16 --out compositions/captions.html. A entrada é[{text,start,end,speaker?,class?}]ou JSON dehyperframes transcribe. -
Som.
sound/MIX.mdtem 10 predefinições copiáveis dohyperframes-audio(voz primeiro plana, pausa na virada, silêncio na linha mais pesada, mergulho antes de um clipe, e assim por diante), cada uma nomeando sua linha de origem.sound/sfx/tem 11 efeitos gerados esound/SFX.mdmapeia eventos para arquivos e níveis. As 7 bases de humor não são commitadas:python sound/gen_bed.pyrenderiza todas emsound/beds/a -20 LUFS, epython sound/gen_bed.py --mood <nome> --seconds N --out bed.wavrenderiza qualquer duração. Ambos os geradores são determinísticos e a saída é CC0. -
Filmagens ou música de fundo do YouTube.
python tools/bg_source.py <url> [--download --out assets/ --audio].- ACEITAR (exit 0) apenas quando yt-dlp relatar uma licença Creative Commons. Imprime uma linha
de crédito para a descrição. Downloads de vídeo precisam de pelo menos
--min-height(padrão 1080);--audionão tem piso de altura. - REVISAR (exit 3) quando um upload com licença padrão alegar reuso em seu título ou descrição. Um título "sem direitos autorais" é a palavra do uploader. Verifique se o uploader é o criador original e guarde uma captura de tela dos termos.
- RECUSAR (exit 2) caso contrário.
Cada decisão é anexada a
sources/provenance.jsonl(--logpara alterar o caminho). O Content ID ainda pode reivindicar um reupload Creative Commons do trabalho de outra pessoa, então prefira o canal original. Mantenha downloads noassets/do projeto, nunca em um repositório público. - ACEITAR (exit 0) apenas quando yt-dlp relatar uma licença Creative Commons. Imprime uma linha
de crédito para a descrição. Downloads de vídeo precisam de pelo menos
-
Verifique antes de renderizar.
hyperframes lint <dir>ehyperframes check <dir>; depoishyperframes snapshot <dir> --frames 6e olhe para a folha de contato. Passar no lint não é uma aprovação visual. -
Renderize e meça.
hyperframes render <dir> --output out.mp4, depoispython tools/check.py out.mp4 --style <id>. Ele imprime cada medida contra a faixa do estilo mais a linha de loudness mestre. É um conselho: uma falha diz que o corte se desviou da referência, e sua própria análise decide se isso importa.
O que a pesquisa diz (versão resumida)
- Em todos os 16 nichos, a taxa de corte e a loudness não separaram valores atípicos de seus controles. Uma
pessoa em risco, o risco declarado nos primeiros segundos, prova na tela e uma resposta mantida
sim (hipóteses; veja
research/TECHNIQUES.md, "O que não separou valores atípicos de controles"). - Contagens de cortes secos são pisos. Tempo é não confiável sob narração. O áudio não foi ouvido: as descobertas de som vêm de números R128, espectros e tags de legendas.
Onde as coisas estão
| Necessidade | Caminho |
|---|---|
| Contratos e regras | SPEC.md |
| Estilos e suas faixas medidas | styles/README.md, styles/<id>.json |
| Catálogo de blocos e demonstrações | blocks/README.md, examples/<block>/ |
| Predefinições de mixagem e mapa SFX | sound/MIX.md, sound/SFX.md |
| Biblioteca de técnicas, tabela de humor | research/TECHNIQUES.md |
| Folhas de DNA de nicho com listas de roubo | research/niches/<niche>.md |
| Um cartão e um arquivo de dados por vídeo | research/cards/<niche>/<id>.md, research/data/<id>.json |
| Capítulos de conhecimento (música e humor, design de som, VFX e movimento) | research/knowledge/ |