解说(Vox 风格)→ HyperFrames
一个约 60 秒的解说视频是 N 个区块 × 10 秒(60 秒 = 6 个区块)。区块 k 的旁白文字区块在其对应的画面之上播放。工具:.claude/skills/explainer/tools/ ($T)。样式指南:references/styles.md。带来源的工作示例:examples/explainer-eiffel/。
使用体验
感觉就像使用一个精心制作的应用程序,而不是在终端里对话:
- 每次只做一个阶段,然后停止并等待。一个加粗的阶段标题,配上一个合适的表情符号。
- 设置和选择以表格形式呈现;各部分之间用
---分隔;行文简短,留出呼吸空间。 - 无内部噪音: 绝不要叙述文件写入、工具检查、时间计算等过程。仅在用户操作或缺少某些内容时说话。
- 任何需要粘贴的内容都放在一个仅包含提示词的代码块中;标签和注释放在外部。
阶段 0 — 静默检查(从不叙述)
setup/doctor.sh --quiet。如果 videos/ 中存在解说项目(内部有 pack.json),则打开时显示“欢迎回来 — 创建一个新视频,还是继续 <最新项目>?”而不是阶段 1。
阶段 1 — 欢迎 🎬
简短的欢迎语,一个 5 行的表格说明工作流程(构思 → 外观 → 语音 → 场景 → 最终剪辑),然后提出一个问题:*视频应该关于什么?*任何粗略的想法都可以,或者输入 find one 来查找本周的热门话题。停止。
阶段 2 — 话题与设置 ⚙️
find one→ 网络搜索当前热门话题;提供前 3 个,每个附带一行钩子(一个为什么/如何的提问 + 一个令人惊讶的数字 + 为什么它看起来会很好)。跳过悲剧和八卦。由用户选择;绝不替他们选择。- 否则,将想法提炼成一个单行的角度:一个答案令人惊讶的问题。
然后是一个带有默认值的设置表格;输入 go 接受所有设置:
| 设置 | 默认值 | 选项 |
|---|---|---|
| 外观 | collage | collage(粗体编辑拼贴) · diorama(怀旧纸板立体模型纪录片) |
| 画面 | code | code(自由,在 HyperFrames 中构建) · ai(Higgsfield 或任何生成器) · mixed |
| 长度 | 60 秒 | 30 秒 – 10 分钟,以 10 秒为一个区块 |
| 宽高比 | 16:9 | 16:9 · 9:16 · 两者 |
停止。
阶段 3 — 研究与脚本(静默)
创建 videos/<slug>/。研究每一个论断: 网络搜索,根据两个独立来源交叉核对每个数字,并保留 URL。如果来源不一致,使用安全的数据或放弃该数据。一个模糊的真实陈述胜过精确的错误陈述,所以绝不要编造数字、引述或预测。
为每个区块编写一行旁白文字,数字用文字拼写出来,使用平实的语言:
- Kokoro 语音:每行 22–26 个单词。edge-tts 语音:每行 18–20 个单词。语音步骤最终会纠正偏差。
- 结构:冷开场(最令人惊讶的事实,没有问候语)→ 风险的严重性 → 证据(每个区块一个想法,每个都具体:一个数字、日期或地点,层层递进)→ 转折 → 结局,收尾呼应区块 1。
- 语调:好奇、精确、略带诙谐。它在解释事情;它绝不推销。
- 跨区块设计:一个反复出现的“英雄”物体,它会再次出现并发生变化(比如塔、集装箱、硬币);一个早期提出,最后回答的问题;一个令人难忘的揭示时刻。
对于每个区块,还需要选择一个标注(屏幕上的数字或两个单词的事实,≤ 9 个字符,例如 +15 cm、2.5M、7 yrs)和一个画面。在代码模式下,画面 kind 是 tower 风格的剪影(适配 SVG)、dots、bars、lean、calendar 或 stat 之一。编写 pack.json(格式如下)。暂时不显示任何内容。
阶段 4 — 语音 🎙
| 语音 | 声音 | 引擎 |
|---|---|---|
am_michael | 美国男声,冷静的纪录片风格 | Kokoro(离线,默认) |
bm_george | 英国男声,沉稳 | Kokoro |
af_heart | 美国女声,温暖清晰 | Kokoro |
en-US-ChristopherNeural / en-GB-RyanNeural / en-US-JennyNeural | Microsoft 神经网络语音 | edge-tts(免费,在线) |
输入 samples → 用三种 Kokoro 语音分别生成区块 1 的语音文件并发送。停止。
阶段 5 — 简报 📋(门控)
一条消息:
- 一个表格,包含角度、主线、外观、画面、长度/区块数、宽高比和语音
- 脚本,形式为
区块 1 … N - 来源列表
结束语:“都满意吗?或者需要修改任何内容?” 循环直到用户批准。用户可以重写任何一行。
阶段 6 — 画面
code 模式: 跳转至阶段 8。每个区块变成一个拼贴场景:一个色块、纸张纹理、递增计数的标注、一个自动绘制的标记圆圈以及画面。
ai / mixed 模式:
- 风格关键帧 🎨: 用一句话提供 3 个命名的变体(相同的视觉系统,不同的调色板或构图,来自
references/styles.md)。选择后,给出可粘贴的图像提示词。 Higgsfield:nano_banana_pro,宽高比与视频相同。在生成前需要引用成本并等待“是”的确认。一个图像锁定外观;它会附加到每个场景。 - 场景 🎬: 每个区块一条消息(如果要求也可以一次性全部发送)。每个消息都以其旁白文字作为上下文,并提供一个基于
references/styles.md中模板构建的可粘贴提示词:STYLE / SCENE / MOTION / AUDIO / AVOID。设置表格:参考图像 = 风格关键帧,10 秒,720p+,环境音开启,保存为blockNN.mp4。 直接使用 Higgsfield: 使用风格关键帧进行kling3_0专业版图像转视频。在生成前需要引用总量(区块数 × 积分)。或者用户可以在他们喜欢的任何生成器中运行提示词(Veo、Kling、Runway…)。 - 剪辑回家 📥: 用户将文件放入
videos/<slug>/clips/目录。自动重命名明显的变体(Block 1.mp4→block01.mp4);仅当配对确实模糊时才询问。没有获得剪辑的区块自动回退到代码生成的场景。
阶段 7 — 检查剪辑(静默)
从每个剪辑中提取一帧并查看。如果风格不符或过于写实:加强 STYLE 和 AVOID 约束行,仅重新生成该区块。连续两次相同的失败意味着重写提示词,而不仅仅是更换随机种子。在 collage 模式下,AI 剪辑中出现的可读文字视为失败(文字应存在于我们的标注和字幕中)。
阶段 8 — 语音与剪辑制作(静默)
~/.local/share/hf-kokoro/bin/python $T/voice.py videos/<slug> # 或 --engine edge --voice en-GB-RyanNeural
每次录制必须落在 7.5 到 9.7 秒之间。该工具会列出不合格的项目:重写那些行(缩短或加长),使用 --only 3,5 重新配音,并重复此过程直到全部符合要求。绝不要进行时间缩放。
.venv/bin/python $T/build.py videos/<slug> [--aspect 9:16] # 生成 index.html + assets/mix.wav
cd videos/<slug> && npx --yes [email protected] lint && npx --yes [email protected] render -o raw.mp4
ffmpeg -y -i raw.mp4 -af loudnorm=I=-14:TP=-1:LRA=11 -c:v copy -c:a aac -b:a 192k "../../out/<Title> (16x9).mp4"
lint 会警告关于嵌套结构和密集轨道的问题。这些涉及 Studio 时间线视图,不影响渲染,因此可以忽略它们。但错误必须修复。为每个区块截取一帧(snapshot . --at 2.5,12.5,…)并检查:数字位于一行内,标记圆圈围绕数字,字幕不遮挡画面。
阶段 9 — 交付 ✅
发送 MP4 文件。然后附带一个小表格:话题、长度和宽高比、外观和语音、来源(链接)。提供选项:渲染另一种宽高比、修改任何一个区块、或者制作一个新视频。
pack.json
{ "title": "…", "angle": "…", "through_line": "…", "look": "collage", "aspect": "16:9",
"voice": { "engine": "kokoro", "name": "am_michael" },
"blocks": [ { "line": "…", "callout": { "big": "+15 cm", "label": "在最热的日子里更高" },
"visual": { "kind": "bars", "values": [10, 30, 60, 100], "highlight": 3 },
"prompt": "(ai 模式) 完整场景提示词" } ],
"sources": [ "发布者 — 标题: https://…" ] }
同时编写一个人类可读的 pack.md(简报、脚本、提示词、来源)。这是项目的记录文件。
规则
- 事实:每个数字有两个来源;每个视频都附带来源。不能编造数字、引述或预测。
- 只有引用模型 × 数量 × 积分并得到“是”的确认后才能进行付费生成(PLAYBOOK #1)。
- 不要生成真人人脸的近景画面;使用中景、剪影或遮盖条,这也可以避免审核拒绝。
- Vox 风格是一种致敬。绝不能在视频中使用 Vox 的徽标、名称或品牌。