README.md

HyperFrames production templates (drafts)

Built and tested on HyperFrames 0.8.185 on a CPU-only box (8 vCPU, no GPU). Every template renders fully offline: local assets/gsap.min.js, self-hosted OFL fonts (/workspace/video-editor-tools/fonts, see FONTS.md), no CDN (verified with tools/motion/netlog.cjs: 0 external requests, plus a no-network unshare -rn render). Run install.sh first: it downloads the OFL fonts and GSAP/Lottie into fonts/ and vendor/, and makes the placeholder clips. All sample content is placeholder (no real names, prices or clients).

templatewhatsample output (<template>/sample/, not in git)dur / resrender
hormozi-short/talking-head short: fillers → silence trim → captions, punch-in per cut, --batch hook variantssample/hormozi-short-sample.mp433.6 s, 1080x192030.4 s (-w 6)
gadzhi-luxe/dark LUT grade + CSS grain + light sweep + serif/sans editorial captions, 9:16 and 16:9sample/gadzhi-luxe-9x16.mp4, -16x9.mp411.4 s each40.0 s / 24.6 s
cinematic-opener/5-10 s AI-clip slot → scene-whip → main editsample/cinematic-opener-sample.mp412.2 s, 1920x108016.4 s
launch-video/16:9 hook → demo → payoff (45-90 s) + --mode yc-raw audio-only cleanup with 1:00 hard failsample/launch-video-sample.mp4, sample-yc/yc-raw-sample.mp448.0 s / 25.8 s, 1920x108020.8 s / 4.4 s

Shared code: _lib/hf.py (project scaffold, hash-named assets, offline rewrite, CPU-load gate + render lock, TTS/transcribe helpers). Shared tools in tools/motion/: audio_prep.py (highpass → afftdn/arnndn → de-ess → two-pass -14 LUFS loudnorm), qa_check.py (hyperframes check, ffprobe, loudness, 9:16 safe-zone mask), hf_offline.py, netlog.cjs.

Render etiquette: hf.render() waits (up to 7 min) for the 1-min load to drop below the core count (HF_MAX_LOAD to override) and serialises this toolkit's own renders with a lock. Single render: -w 6; batch: 3 jobs at -w 3.

Each template: cd hf-templates/<name> && python3 build.py (edit params.json first).