用途:从 config 渲染“model comparison grid”格式视频,即“同一提示词,N 个模型”的并排对比展示。每拍先以等宽字体居中显示 PROMPT 眉标和精简提示词,保持可读约 0.8 秒,随后停靠到顶部小条,2-4 个带标签面板以 0.15 秒间隔依次出现并保持,进行并排对比;各面板下方常驻模型/变体标签,每拍列顺序一致;结尾为极简结束卡,仅含标题和列名。
主要能力:每个单元格媒体类型不限,可以是静态图片,也可以是静音视频片段(i2v 输出、屏幕录像),同一拍内可混用。视频单元格在保持期间循环播放,并按帧确定性定位(渲染器等待每次 seek),因此渲染不依赖真实播放时钟。渲染器本身免费且确定:Playwright 逐帧步进加 FFmpeg。付费输入是独立能力:单元格图片来自 create-image-fal,单元格视频片段来自 create-video-fal,背景音乐来自 create-music-elevenlabs。提示词文本和标签均为真实 DOM,从不经 AI 渲染。默认形状为 5 拍 × 4.5 秒加 2.5 秒结束卡,共 25.0 秒,1280×720/30fps,全部可通过一个 config.json 配置。
使用方式:运行 build_composition.py --config config.json --output hyperframe.html ; render_seekable_hyperframe.py hyperframe.html master-silent.mp4 --fps 30 --width 1280 --height 720。config schema 见 scripts/build_composition.py 顶部;scripts/config.example.json 是随附的可运行示例,把单元格路径指向自己的媒体即可。build_composition.py 会校验每个单元格路径和列数(2-4),根据扩展名推断媒体类型(.png/.jpg/.jpeg/.webp 为图片,.mp4/.mov/.webm/.m4v 为静音视频),并生成自包含 HTML,暴露 window.mediaReady() 与 window.renderAt(t)。render_seekable_hyperframe.py 会等待两者,使 video 单元格在每次截图前定位到正确帧,不会停留在冻结首帧。
限制:列数即每拍面板数(2-4),每拍必须提供恰好该数量的单元格且顺序相同;模板配方提供 config,单元格图片/视频和音乐为独立能力;状态完全在 renderAt(t) 中计算,不使用 CSS animation-delay/transitions,否则 Playwright 擦洗会把延迟动画困在初始状态;视频单元格必须能在渲染用 Chromium 中解码(H.264 可以,ProRes 不可以,需先把 .mov ProRes 转码为 H.264);纯图片网格无解码依赖。费用、价格、平台支持等其它事实暂未提供。