dsh-motion:用场景代码做逐帧可复现的 MP4 动画

前言

在 DeepSeek Harness(DSH)里做片头、产品讲解或数据动画时,常见做法是交给文生视频模型,或在外部剪辑软件里反复导出。文案改一个字、数字换一处、结尾多停一秒,往往意味着整条重来,产物也不方便用 Git 对比版本。

下面介绍的是 DSH 社区插件 dsh-motion(维护者 vlln,分类:工作流)。它让 Agent 在工作区里编写场景、组织时间轴并渲染视频;你在对话旁的侧栏预览、调参数或框选批注。成片是逐帧渲染的 MP4,场景与时间轴以代码和数据留在工作区里,而不是一次性生成的黑盒视频。

这是什么

dsh-motion 是 DeepSeek Harness 的动画制作插件。一句话概括:描述想法 → 确认分镜 → 预览与批注 → 导出 MP4;和 Agent 一起做动画,留下的不只是视频,还有能继续修改的代码。

它不是文生视频模型,也不是完整的非线性剪辑软件:画面由场景代码与素材合成,质量取决于分镜、素材和 Agent 的实现。插件当前版本 0.2.0(见仓库 package.json),许可证 MIT。README 标明已在 dsh web 0.2.1-rc.1 上做过验证(2026-10-27)。

为什么把动画写成代码

「标题再短一点」「这个数字换掉」「结尾多停一秒」——这类修改不应等于重新生成整条视频。dsh-motion 把场景、文字、颜色和时间轴保存在工作区中:Agent 可精确改一处,你也可在面板里调已暴露的字段;作品可用 Git 管理,重要节点可保存为命名版本再切换比较。

README 归纳的三点差异:

  • 可控:文字与数字来自明确数据,不依赖视频模型生成字形。
  • 可修改:场景可把文字、数值、颜色和参数暴露给面板。
  • 不绑定模板:引擎负责渲染与导出,画法由场景决定。

Agent 通过插件注册的 dsh-motion skill 走制作流程;没有额外的 motion_* 工具,Agent 用文件编辑和命令行完成制作。

运行环境与安装

依赖需装在运行 dsh 的机器上(不只是打开 GUI 的电脑):

依赖 用途
Node.js 22 或更高 运行插件和命令行
dsh web 对话、Agent 与预览侧栏;仅用 CLI 时可不要
Chromium / Chrome for Testing 预览与逐帧渲染(Playwright)
FFmpeg(含 ffprobe,在 PATH 中) 编码、音频与成片检查

浏览器不会由插件自动下载;可用环境变量 CHROMIUM 指定浏览器可执行文件的绝对路径,并让启动 dsh 的进程继承该变量。

macOS 上若缺 FFmpeg 或 Playwright 用 Chromium,README 示例:

brew install ffmpeg
npx playwright@1.64.1 install chromium

安装插件

在 dsh 的 Plugins → 添加插件 中输入 Git 源:

github:vlln/dsh-motion

或使用 CLI:

dsh plugin --profile web add github:vlln/dsh-motion

安装后,在会话右侧栏选择 动画。若没有,先刷新页面;仍没有则重启 dsh,并在 Plugins 页确认插件已启用。说明使用 Git 源,不依赖 npm 同名包;插件向 Agent 注册 skill 并把命令加入 dsh 进程的 PATH,不等于在外部终端全局安装命令。

卸载示例(web profile):

dsh plugin --profile web remove @vlln/dsh-motion

作品在工作区,卸载插件不会自动清理作品。

典型用法:在 DSH 里做第一条动画

在准备存放作品的工作区开启会话,向 Agent 说明主题、时长和画幅。README 中的示例提示:

用 dsh-motion 做一条 12 秒、16:9 的产品片头。主题是“把杂乱的笔记整理成清晰的想法”,暖白底、墨黑字,少量橙色强调。先给我看分镜,确认后再制作。完成后导出带声音的 MP4,并保存一个版本。

经过上面的描述,制作分成四步:

  1. 确认分镜:Agent 写清每一镜内容与整体画风。
  2. 看粗版:先看静帧和运动;初始化本身不会生成成片。
  3. 边看边改:右侧「动画」预览,调面板字段,或框选批注让 Agent 改。
  4. 导出与保存:生成 MP4,检查成片,再保存带说明的版本;检查通过之后仍要实际观看。

面板侧常见操作:播放/拖动定位某一帧;编辑场景开放的文字槽、数值槽与调色板;暂停后框选发送批注;在版本列表切换 Agent 保存的命名版本;让 Agent 用命令行导出 MP4、GIF 或静帧。改时间轴数据可更新预览;改场景代码后需要刷新面板。 新增镜头或新画法仍由 Agent 改代码。

命令行:独立渲染

不使用 dsh 面板时,可按 README 作为本地工具安装:

npm install -g github:vlln/dsh-motion
mkdir my-film && cd my-film
dsh-motion init --title "我的第一条动画"

init 只创建空时间轴、镜头表和样例工具库;之后需编写场景、排进时间轴并准备音轨。完整写法见仓库内 Agent 制作手册(skills/dsh-motion/SKILL.md)。完成后在作品工作区根目录执行(不要进入 motion/ 再跑):

dsh-motion check
dsh-motion render --stills 0,3,6 --out out/sheet.png
dsh-motion render --video --out out/film.mp4
dsh-motion check --deliver --file motion/out/film.mp4
dsh-motion version -m "第一版:完成分镜、动画和声音"

render --out 路径相对于作品目录 motion/;check --deliver --file 接收相对于当前目录的路径。其它命令如 dsh-motion reference reference.mp4、dsh-motion render --export --gif、dsh-motion version list / version use v1 见 README。

适用场景与使用前需要知道

适合片头、产品讲解、数据动画和风格化短片,尤其是文案、数字、节奏需要反复改的作品。一工作区一部作品;导出是逐帧渲染,复杂场景和长片更慢。音频为单轨,不是多轨剪辑台;MP4 不支持透明背景,GIF 无声音。

README 还写明:新建作品建议用 CLI 导出;面板导出与素材重烘焙目前存在项目内脚本路径问题,尚不能保证新工作区开箱可用。渲染会启动本地浏览器与 FFmpeg,并执行场景 JavaScript——不要把不可信的场景代码当作普通视频文件直接运行。插件以当前 dsh 进程权限运行;安装前应自行查看 GitHub 源码 与 MIT 许可证。本地渲染不依赖视频生成 API;对话与批注仍走 dsh 配置的模型服务。

兼容性表中,除 dsh web 0.2.1-rc.1 与 macOS + Chrome for Testing 有验证记录外,其它 dsh 版本、官方 Desktop 与其它渲染平台均为「未验证」。

结尾

dsh-motion 把镜头落成工作区里的场景与时间轴,Agent 与侧栏协作改稿,再导出逐帧可复现的 MP4。社区目录页:https://www.skillhub.cn/plugins/vlln/dsh-motion。源码与完整说明:https://github.com/vlln/dsh-motion。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye