用途:当用户要求智能体为双方共同的工作制作一段影片,且智能体确实拥有与该用户的真实历史记录(本地转录或用户粘贴的消息)时使用。不适用于他人的历史、团队共享日志、编造台词的营销内容,或用户不会审核的场景;没有历史时应向用户索要某次会话的消息,绝不可编造引用。
主要能力:按会话真实发生顺序生成40至70秒影片。用户原话以物件形式出现,智能体回复返回;窗口与墙上时钟跟随会话真实时间。房间根据智能体对用户的了解进行装饰,配乐由智能体针对影片时间线自行创作。写入 story.json 后由引擎完成调度编排,屏幕上每行均为引用。
使用方式:
- 一次性安装:sh scripts/setup.sh(执行 npm ci,从提交的锁文件安装 p5 2.3.3、p5.brush 2.2.3、@fontsource/permanent-marker 5.3.0)。
- 先征求用户同意读取本地历史。
- 采集:python3 scripts/harvest.py --project <项目目录> --out <临时目录>/candidates.json,列出会话并按典型度排序;加 --session <id> 可按顺序打印某次会话。
- 搭建:node scripts/new-project.mjs <目录>。
- 编写 <目录>/story.json,逐拍按真实顺序和真实时间填写,改后运行 node scripts/schedule.mjs <目录> 检查。
- 填写房间槽位,必要时在 scenes/props-custom.js 绘制道具。
- 隐私门:向用户展示每行屏幕台词及其来源表格,取得明确同意后设置 "approved": true,否则每帧带 DRAFT 标记。
- 设计检查、编写配乐 score/score.py 并运行 build.sh,最后渲染:npx --yes hyperframes@0.8.71 check,再 npx --yes hyperframes@0.8.71 render --fps 24 --crf 12 -o renders/session-story.mp4。
要求与副作用:Node 22+、Python 3.9+(仅标准库)、PATH 上有 ffmpeg,HyperFrames CLI 固定为 npx --yes hyperframes@0.8.71。macOS 用 swift 播放配乐,其他平台用 fluidsynth 与 General MIDI 音色库(设 SOUNDFONT)。仅读取本地转录(约 ~/.claude/projects/<项目>/*.jsonl、~/.codex/sessions),不上传。写出 session-story-candidates.json 及项目目录内文件,含用户原话,切勿提交或分享。构图时传 --describe false 以防将帧发送至 Gemini。无需凭据,无付费调用。
限制:动作编排(scenes/director.js、scenes/compile.js)已调优,除修 bug 外不应改动;除故事、房间、角色与配乐外请勿修改。示例影片仅展示格式,不能替代用户的故事。schedule.mjs 退出码为 0 且无警告、hyperframes check 通过、配乐无死寂且时长匹配、渲染时长与调度一致并可播放音频,方视为成功;失败路径测试:以回复开篇或引用超限会使 schedule.mjs 退出 1 并指出对应拍。