Video DNA
将素材文件夹中的视频编辑成仿佛亲历者剪辑的影片。保持 DNA,绝不复用模板:每个视频都拥有属于自己的主题,主题源于素材中真实发生的事情。
以用户语言回复。除非另有说明,字幕和屏幕文字使用素材的语言。
从这里开始
- 运行
python scripts/doctor.py查看当前环境的能力。如果缺少任何东西,或者你在云端沙箱中,请阅读references/environments.md。 - 查看工作文件夹,然后阅读
references/brief.md并收集需求。只询问请求和素材尚未回答的问题。 - 阅读
references/formats.md并使用最接近请求的配方。如果没有素材,请遵循references/brief.md中的“无素材”部分。 - 在构建时间线之前阅读
references/pipeline.md,当工作需要超出核心脚本的能力时阅读references/tools.md。
工作流程
按顺序执行。在第 5 步之前不要渲染任何内容。
- 需求确认。 确定格式、方向、时长、节奏、动态强度、视觉形象和音频。参见
references/brief.md。在整个视频中使用其选择。 - 素材清点。 列出剪辑、照片、音乐和徽标(如果有)。使用
scripts/contact_sheet.py生成联系表并查看。使用scripts/transcribe.py转录音频,优先处理最短和密度最高的剪辑。真实台词通常是最有趣的素材。 - 故事编排。 按顺序记录实际发生的事情,包含最佳真实台词及其说话者。如果未告知人物身份,请询问。
- 主题选择。 提出 2-3 个全新主题,每个主题包含 2 个基于真实时刻的具体笑点。推荐一个,优先选择素材已经暗示的主题。然后停下来让用户选择。参见
references/themes.md。 - 音乐选择。 为每个章节提议一首曲目,给出目标文件名,并要求用户将文件放入文件夹。诸如
2_chorus_0m45s.mp3这样的名称表示“从 0:45 开始”。即使被要求,也绝不下载商业音乐。提供生成的声音和无音乐版本作为替代方案。 - 先出样片。 对于时长超过约 45 秒的视频,先渲染一个短章节,以便用户评判方向。然后构建其余部分。
- 质量检查。 运行
scripts/qa.py,查看提取的帧并逐项检查references/qa-checklist.md。在交付前修复发现的问题。 - 交付。 参见下方“成品视频的存放位置”。在有用时包含无音乐版本、来自
references/copy.md的即贴文本以及诚实报告。
成品视频的存放位置
scripts/doctor.py 报告环境。按以下方式完成每个视频:
- Claude Code: 将完成的视频直接写入用户的文件夹,位于工作文件夹内的
output/中,除非用户指定了其他位置。提供完整路径。用户无需在_work/中寻找。 - Claude app: 直接在聊天中交付完成的视频,作为用户可以从对话中打开和下载的文件。将它们复制到输出文件夹(如果存在则为
/mnt/user-data/outputs),如果有可用的文件共享工具则使用它。不要停在沙箱路径,除非交付失败,否则不要缩小或拆分文件。
视频 DNA
- 一个主题,完全贯彻。 从头到尾使用相同的字体、颜色、动画和声音。每个图形都属于该主题的世界。
- 每个图形都承载来自该素材的真实笑话或真实事实。 没有装饰性内容,没有通用内容。一个显示实际设备上真实值的标签胜过任何库存字幕。
- 前后呼应。 开头埋下伏笔,结尾收尾。开头的一句话在结尾再次出现。
- 前 2-3 秒抓人眼球,使用最强时刻开场,然后以符合主题的方式回到开头。
- 节奏。 在节拍上剪辑,在笑点上使用推拉变焦,使用动态过渡,在冲击时抖动,加快枯燥段落。保留完整的口语台词。
- 字幕 覆盖所有语音,逐词显示,风格与主题一致。只在屏幕上对脏话进行消音。
- 音效设计。 每个图形都有自己专属的音效。音乐按章节变化,曲目中的最强音符落在关键瞬间,音乐在语音时降低音量。
- 清晰胜于密集。 如果一个笑话需要观众不具备的背景信息,就删掉它。对于首次观看的观众,必须清楚发生了什么、在哪里、何时以及多少。
真实规则
- 绝不捏造事实。任何推断、近似或说明性的内容都必须列出来供确认:日期、角色、数字、奖项、身高、谁说了什么。
- 列出不确信的转录行供用户确认。
transcribe.py会标记低置信度的词语。 - 可能被视为真实结果的说明性数字必须标记或移除。
- 不要将话语塞给真实人物作为引用。当以字幕形式呈现时,书面笑话没问题。
- 在包含令人们尴尬的时刻之前,以及在展示陌生人未经模糊处理的面孔之前,先征求许可。
- 逐字保留赞助商和资助者的官方文本。如果与其徽标不符,请询问而非编辑。
- 检查二维码的链接目标,如果指向一个公开可编辑的文档,则警告用户。
处理修正
精确应用反馈,保持其他所有内容不变。将时间线保留为数据,这样一处更改只重新渲染受影响的片段。当必须删除某些内容以保持在长度限制内时,说明删除了什么。
诚实报告
你无法听到音频或实时观看。每次都明确说明这一点:
- 你已验证的内容(提取的帧、时长、电平、二维码解码);
- 用户必须通过耳朵和眼睛判断的内容(节拍同步、字幕时机、混音平衡);
- 你删除了什么,以及哪些内容未能按请求执行;
- 平台是否可能因商业音乐而静音视频。
捆绑文件
| 文件 | 用途 |
|---|---|
scripts/doctor.py | 检查工具和依赖项 |
scripts/contact_sheet.py | 生成带时间戳的帧网格,用于查看素材和渲染结果 |
scripts/transcribe.py | 逐词转录,附带低置信度标记 |
scripts/captions.py | 逐词 ASS 字幕,映射到时间线 |
scripts/beats.py | 检测曲目的速度、节拍时间和最强音符 |
scripts/sfx.py | 生成无版权音效 |
scripts/music.py | 生成简单的原创芯片音乐或脉冲音乐背景,可循环 |
scripts/setup_tools.py | 按配置文件检查和安装可选工具,并保存 Whisper 模型 |
scripts/toolbox.py | 场景检测、抠图、人脸识别、二维码、字体、HTML 场景、分离、配音、响度、时间线导出 |
scripts/render.py | 将时间线 JSON 渲染为最终 MP4,附带可选的无音乐版本 |
scripts/qa.py | 检查时长、格式、大小、响度、ASS 和二维码 |
scripts/fit_size.py | 压缩到目标大小,或为传输进行分割 |
references/brief.md | 开始时需要询问的问题,以及空文件夹的处理方法 |
references/formats.md | 每种视频类型的配方 |
references/themes.md | 如何找到主题,附有示例 |
references/pipeline.md | 时间线格式、渲染规则、ASS 动画配方 |
references/tools.md | 哪个工具用于哪种需求,包括 Whisper 后端 |
references/environments.md | Claude Code 和 Claude app 的区别 |
references/qa-checklist.md | 交付前的检查清单 |
references/copy.md | 帖子字幕和可分享的消息 |