前言¶
做竖屏解说短片,常见路径是:写稿、配音、打轴、用 Remotion 或同类工具合成。上游 papercut-explainer 是一套完整的 Remotion 剪纸风模板,但配套工具链面向 macOS(bash/Python、mlx-whisper、Homebrew 的 ffmpeg 等)。在纯 Windows 环境里往往要 WSL 或手工凑依赖。
DeepSeek Harness(DSH)用插件把能力挂进智能体会话。维护者 NL859 的 dsh-papercut 把「一句话想法 → 成片」整条链路接到 DSH:脚本脚手架、本地 TTS、逐词字幕时间轴、Remotion 分段渲染与 QA 联系表,在不装 WSL、不把 ffmpeg 放进 PATH 的前提下尽量在 Windows 10/11 上跑通。
这是什么¶
dsh-papercut 是 DSH 插件(npm 包名 dsh-papercut,当前版本 0.1.3,MIT)。它面向「剪纸风(papercut)竖屏 9:16 解说片」的端到端生产:从创意一句话到输出 1080×1920 的 H.264 成片。
插件在操作系统相关部分用 Node 重写上游脚本逻辑;Python 仅用于强制对齐(openai-whisper + 已知稿本)和 CJK 字体子集化两个叶子脚本。TTS 通过本机 HTTP 桥接(默认探测 127.0.0.1:7865 的 IndexTTS-2.5),插件不自行拉起模型,以免长期占用显存。
目录页:skillhub.cn/plugins/NL859/dsh-papercut
源码:github.com/NL859/dsh-papercut
管线里有什么¶
在 DSH 里使用专用 profile 时,一次请求会串联多个工具。README 中的示例:
$ dsh --profile papercut
> 做一个关于剪纸的 25 秒短片
→ papercut_plan → papercut_voice → papercut_storyboard → papercut_render → papercut_qa
→ episodes/01-jianzhi/papercut/out/jianzhi-papercut.mp4 (1080×1920, 27.5 s, −14.7 LUFS)
与上游 macOS 工具链的对照(节选):
| 环节 | 上游 | dsh-papercut |
|---|---|---|
| 编排渲染 | render.py + render.sh |
src/node/render.js,按场景 ProRes HQ 分段、内容键缓存 |
| 混音 | mix.py |
ffmpeg sidechaincompress + alimiter + loudnorm |
| 配音 | narrate.py |
本地 IndexTTS HTTP 桥接 |
| 逐词时间 | mlx-whisper |
openai-whisper + 稿本强制对齐(py/align.py) |
| 浏览器 | 系统 Chrome | Windows 自带的 Edge |
| ffmpeg | Homebrew | npm 自带的静态二进制 |
分镜构图、钩子文案、素材选择等仍由智能体完成;插件通过 九个 skills(npm run skills 安装到 <DSH_HOME>/skills)引导路由与各环节,例如 papercut-explainer(端到端路由)、papercut-script、papercut-voice、papercut-setup(本机工具链检查)等。
六个工具¶
| 工具 | 参数 | 作用 |
|---|---|---|
papercut_list |
— | 列出已有 episode、时长、场景数、是否已渲染 |
papercut_plan |
idea, slug?, comp?, lines? |
搭建 episode,返回 7 行脚本 brief |
papercut_storyboard |
slug |
由真实帧计划生成镜头 / 剪辑 / 音效表 |
papercut_voice |
slug, engine?, force?, model?, keepWarm? |
本地 TTS、静音裁剪、强制对齐,产出 voiceover.wav、字幕与 plan |
papercut_render |
slug, force?, workers?, conc? |
Remotion 分段渲染后一次 x264 与音床合成 |
papercut_qa |
slug, every?, scale? |
每隔 N 帧生成编号联系表,便于目视检查 |
工作区目录¶
插件驱动一个 workspace,内含上游库与 Remotion 应用。默认从插件包目录(或当前工作目录)向上查找 app/node_modules 与 src/papercut-explainer-main/library;也可用 cordis.patch.yml 的 root 或环境变量 PAPERCUT_ROOT 指定根路径。
<root>/
app/ Remotion 工程(remotion、ffmpeg-static 等)
src/papercut-explainer-main/ 上游 MIT 库(kit、音频引擎、场景模板)
episodes/<slug>/ 每个短片一个目录
tools/ 开发用 Node CLI
可用 papercut-setup skill,或 node tools/bin/papercut.mjs list,查看缺什么依赖。
环境与依赖¶
- Windows 10/11,带 Edge(Remotion 无头 Chromium 可用系统 Edge)
- Node 22+
- Python 3.11 虚拟环境,安装
openai-whisper、fonttools;在插件配置里用python:指向解释器 - 可选:本机 TTS HTTP 服务(默认
http://127.0.0.1:7865,健康检查/health)
README 中记录的示例成片指标(episodes/01-jianzhi,30 fps、824 帧):7 行旁白约 24.1 s;冷启动渲染约 55 s;仅改一个场景时约 20 s(其余分段缓存命中);输出约 8.6 Mbps、−14.7 LUFS。
安装与启用¶
以下命令来自仓库 README,请按本机路径替换占位路径。社区目录站点与 DeepSeek / 幻方无官方从属关系;安装前建议自行阅读源码与 MIT 许可证。插件以当前 dsh 进程权限运行,会读写工作区并调用本机 Python、Edge、可选 TTS 服务。
# 1. 安装插件
dsh plugin --profile papercut add "link:D:/path/to/dsh-papercut"
# 或从 npm:dsh plugin --profile papercut add dsh-papercut
# 2. 安装 skills(可重复执行)
cd D:/path/to/dsh-papercut
node scripts/install-skills.mjs
# 3. 在 DSH 中说「check my papercut install」→ 运行 papercut-setup 检查工具链
配置项¶
包内 cordis.patch.yml 片段(字段以仓库为准):
- insert:
- id: papercut
name: dsh-papercut
config:
root: '' # 工作区路径;否则 PAPERCUT_ROOT;否则内置默认
ttsUrl: http://127.0.0.1:7865
python: D:/tts/index-tts/.venv/Scripts/python.exe
chromePath: C:/Program Files (x86)/Microsoft Edge/Application/msedge.exe
defaultModel: small # 强制对齐用的 whisper 模型
debug: false
适用场景与注意¶
适合需要在 Windows 本机 批量或迭代「剪纸风竖屏解说」、且希望把 plan / 配音 / 渲染 / QA 固化为 DSH 工具与 skills 的开发者或内容工作流搭建者。不适合期望插件自动下载并常驻 GPU TTS 模型的场景——TTS 需自行在本地起桥接服务。
上游故事套件来自 papercut-explainer(MIT),在 NOTICE 中另有致谢说明。
结尾¶
dsh-papercut 把 macOS 向的 papercut-explainer 工具链收拢到 Windows 友好的 Node + 捆绑 ffmpeg,并通过 DSH 的六个工具与九个 skills 把「一句话 → 竖屏成片」变成可复现的会话流程。进一步了解可访问 插件目录页 与 GitHub 仓库。