Communitygithub.com

cig13zs/hf-kit

Capa de HyperFrames con 16 estilos medidos de YouTube, 13 bloques de animación, preajustes de mezcla de sonido, efectos de sonido CC0 y fondos de ambiente, un generador de subtítulos, un andamio de proyecto, un filtro de licencia para material de YouTube Creative Commons y un verificador de renderizado que mide un corte contra los rangos de referencia.

¿Qué es hf-kit?

hf-kit es una capa sobre HyperFrames 0.8.77 diseñada para estandarizar la producción de videos de YouTube basándose en investigación cuantificada de 48 videos en 16 nichos. Proporciona un flujo de trabajo completo que incluye selección de estilos medidos, andamiaje de proyectos con bloques de animación predefinidos, generación de subtítulos en múltiples formatos, preajustes de mezcla de sonido con efectos CC0 y fondos de ambiente, y un verificador de licencias Creative Commons para material descargado de YouTube. Soporta plataformas como Claude Code, Cursor y Codex a través de HyperFrames. El sistema incluye 13 bloques de composición (como pill-label, chapter-card, number-card, etc.) y 10 preajustes de mezcla para controlar el ritmo narrativo. La herramienta `check.py` compara métricas como cortes por minuto, longitud de plano, palabras por minuto, rango de dinámica y silencios contra rangos de referencia por estilo. El proyecto se basa en investigación real: los datos de 48 videos se almacenan en `research/`, y los estilos se derivan de patrones observados en 16 nichos diferentes. hf-kit también incluye un generador de fondos de ambiente determinista y CC0, y un sistema de verificación de licencias para material descargado de YouTube.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cig13zs/hf-kit/tree/HEAD/skills/hf-kit

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace hf-kit?

Una capa sobre HyperFrames 0.8.77. Todo lo que contiene se basa en investigación medida: 48 videos de YouTube de 16 nichos, con los números en research/. Las rutas a continuación son relativas a la raíz del repositorio. Lee SPEC.md para los contratos y sigue las reglas de composición de hyperframes-core.

hyperframes a continuación significa npx [email protected] o una instalación local de 0.8.77. Las herramientas Python necesitan Python 3.10+ con numpy y Pillow, además de ffmpeg en PATH.

Flujo de trabajo

  1. Elige el estilo. styles/README.md asigna nicho → id de estilo → bloques, subtítulos y preajustes de mezcla. El JSON del estilo contiene los rangos medidos (cortes/minuto por segmento, duración del plano, ppm, LRA, silencios) y el objetivo maestro (-14 LUFS, -1 dBTP).

  2. Andamiaje. python tools/scaffold.py <dir> --format 16:9|9:16 --duration S --style <id> [--blocks a,b]. Escribe index.html con los tokens del estilo, fija hyperframes.json al registro v0.8.77 y copia los bloques en compositions/. Se niega a sobrescribir un directorio no vacío.

  3. Bloques. Catálogo en blocks/README.md: pill-label, chapter-card, number-card (limpio o dinero), progress-badge, question-card, doc-highlight, film-gate, world-camera, ui-window, tier-board, face-banner-stack (con un diseño topic-top para un cuadro de tema redondeado 16:9), zoom-through, blur-swap. Cada uno es una subcomposición con data-composition-variables; pasa valores con data-variable-values. examples/<block>/ tiene un demo funcional de cada uno. Dale estilo a cada bloque con #root simple y selectores de descendiente simples. Nunca el compuesto #root[data-composition-id=...]: se revisa limpio y se renderiza en blanco.

  4. Subtítulos. python tools/captions.py words.json --variant cards|karaoke|speaker|keyword|punch --format 9:16 --out compositions/captions.html. La entrada es [{text,start,end,speaker?,class?}] o JSON de hyperframes transcribe.

  5. Sonido. sound/MIX.md tiene 10 preajustes copiables de hyperframes-audio (voz primero plano, pausa en el giro, silencio en la línea más pesada, inmersión antes de un clip, etc.), cada uno nombrando su fila de origen. sound/sfx/ tiene 11 efectos generados y sound/SFX.md asigna eventos a archivos y niveles. Los 7 fondos de ambiente no están incluidos: python sound/gen_bed.py renderiza todos en sound/beds/ a -20 LUFS, y python sound/gen_bed.py --mood <nombre> --seconds N --out bed.wav renderiza cualquier duración. Ambos generadores son deterministas y la salida es CC0.

  6. Material de fondo o música de YouTube. python tools/bg_source.py <url> [--download --out assets/ --audio].

    • ACEPTAR (salida 0) solo cuando yt-dlp informa una licencia Creative Commons. Imprime una línea de crédito para la descripción. Las descargas de video necesitan al menos --min-height (por defecto 1080); --audio no tiene límite de altura.
    • REVISAR (salida 3) cuando una carga con licencia estándar afirma reutilización en su título o descripción. Un título "sin derechos de autor" es la palabra del cargador. Verifica que el cargador sea el creador original y guarda una captura de pantalla de los términos.
    • RECHAZAR (salida 2) en caso contrario.

    Cada decisión se añade a sources/provenance.jsonl (--log para cambiarlo). Content ID aún puede reclamar una re-subida Creative Commons del trabajo de alguien más, así que prefiere el canal original. Mantén las descargas en el assets/ del proyecto, nunca en un repositorio público.

  7. Verificar antes de renderizar. hyperframes lint <dir> y hyperframes check <dir>; luego hyperframes snapshot <dir> --frames 6 y mira la hoja de contactos. La revisión exitosa no es una aprobación visual.

  8. Renderizar y medir. hyperframes render <dir> --output out.mp4, luego python tools/check.py out.mp4 --style <id>. Imprime cada medida contra el rango del estilo más la línea de sonoridad maestra. Es un consejo: una falla indica que el corte se desvió de la referencia, y tu propio análisis decide si eso importa.

Lo que dice la investigación (versión corta)

  • En los 16 nichos, la tasa de corte y la sonoridad no separaron a los valores atípicos de sus controles. Una persona en riesgo, el riesgo declarado en los primeros segundos, prueba en pantalla y una respuesta sostenida sí lo hicieron (hipótesis; ver research/TECHNIQUES.md, "Lo que no separó a los valores atípicos de los controles").
  • Los recuentos de cortes duros son pisos. El tempo no es confiable bajo la narración. El audio no se escuchó: los hallazgos de sonido provienen de números R128, espectros y etiquetas de subtítulos.

Dónde están las cosas

NecesidadRuta
Contratos y reglasSPEC.md
Estilos y sus rangos medidosstyles/README.md, styles/<id>.json
Catálogo de bloques y demosblocks/README.md, examples/<block>/
Preajustes de mezcla y mapa de SFXsound/MIX.md, sound/SFX.md
Biblioteca de técnicas, tabla de estados de ánimoresearch/TECHNIQUES.md
Hojas de ADN de nicho con listas de roboresearch/niches/<niche>.md
Una tarjeta y un archivo de datos por videoresearch/cards/<niche>/<id>.md, research/data/<id>.json
Capítulos de conocimiento (música y estado de ánimo, diseño de sonido, VFX y movimiento)research/knowledge/

Skills relacionados