之前看到的所有数字人口播方案,都是基于 heygen 的,1 分钟 10 块钱左右,贵。

这套方案是用本地跑口播数字人的方案,只需要一张 Nvidia 显卡。
第 1 章 先检查电脑配置
1.1 三种常见配置
先看你电脑配置,再决定使用本地服务还是云端服务。

1.2 没有 NVIDIA 显卡怎么办
跳过本地数字人的合成即可。 文章改口播、配音、字幕、插画、动画和视频渲染都可以继续做。
数字人只是把一段对好口型的人像叠到基础视频上,不影响前面的内容生产。 另外你还可以选云端数字人方案。
第 2 章 一句话启动工作流
2.1 可直接复制的启动提示词
复制了丢给 codex,只替换方括号里的内容。
请安装并使用 agent-video-pipeline
https://github.com/JayceHuang/agent-video-pipeline.git
把【文章路径、附件或下方正文】制作成视频。
工作区是【绝对路径】。
项目目录是【绝对路径】。
发布平台是【填写】。
画幅是【16:9 或 9:16】。
本次【不使用数字人或使用本地数字人】。
安装后完整读取 README.md 与 SKILL.md,检查本机硬件及 Git、Python 3.10 或更高版本、ffmpeg、ffprobe、Node.js。缺少依赖时优先在工作区内安装或修复,不污染系统环境。
检查工作区内完整的 .agent-video/。缺失或结构不完整时,运行下面的命令初始化中性配置。
python scripts/init_config_root.py –workspace 【工作区绝对路径】
自动填写能够安全推断的 workspace.yaml、runtime.local.yaml 和素材配置,并列出最终配置。随后运行 resolve_profile.py 验证并冻结本项目配置。
输入是长文章时,先调用 adapt-longform-for-speech 生成口播稿并等待我确认。
任何配置或质量检查失败时,只暂停下游阶段。请诊断并修复当前失败层,重新运行检查,直到通过。只有缺少凭据、授权素材、必须由我决定的内容,或确实无法自动修复时才向我提问。
口播稿通过后,先生成一段 60 到 90 秒、带声音、字幕、视觉和动效的 1080p 试播视频。运行全部质量检查,提供试播视频、封面和检查报告,等待我确认。
未经确认不要生成完整视频。确认后再继续完成全片及最终交付包。
2.2 给第一次运行留足时间
视频生产比普通文档任务重得多。 第一次运行还要下载依赖、模型和浏览器环境,速度不能只看最终渲染时间。
我自己的两次测试差异很大。
- Windows 上处理一篇长文,第一次从启动到完成用了两个多小时
- Linux 上生成一段约 80 秒的非数字人试播,第一次用了约 21 分钟

这两个数字只能代表当时的机器和网络,第二次通常会快不少,因为依赖、模型和部分中间产物已经有缓存。
2.3 跑完以后看什么
Codex 第一次停下来时,按下面的顺序检查。
- 口播内容有没有增删关键事实
- 声音里有没有错读、吞字、突然变速和明显机械感
- 字幕是否跟着声音走
- 画面有没有遮住字幕
- 动画是否抢内容
- 试播片段能否代表整条视频的真实风格
某个地方不对,就把时间点和目标状态写给 Codex。 比如告诉它第 18 秒字幕太靠下,第 32 秒卡片出现得太急。 指出明确的问题比一个模糊的概念有用的多。
第 3 章 接入本地数字人
3.1 数字人合成
基础视频先通过内容、声音、字幕和画面检查,最后再生成数字人。

Duix.Avatar 是一个可本地部署、可通过 API 调用的开源数字人项目。 官方说明里,一段约 10 秒的参考视频就可以用于建立数字人形象和声音,随后可用文字或音频驱动口型。 本文的工作流只取口型合成这部分,最终声音继续使用前面已经确认的配音母带。
注意: Duix.Avatar 当前 README 写明,开源本地部署支持免费商用,用户量超过 10 万或年营收达到 1000 万美元以上的企业需要签署商业许可协议。
使用任何真人形象和声音前,先确认本人授权。
3.2 准备参考视频
参考视频尽量满足下面几项。
- 人正对镜头
- 脸部完整、清楚、无遮挡
- 光线和背景稳定
- 头部与身体动作不要太大
- 画面里只保留一个主要人物
- 素材确实属于你或已经获得授权
你可以从以前拍过的公开视频里截一段,也可以专门录一段。 画面一旦选定,后续视频就会反复循环这段人物动作,为了避免被看穿,人物幅度不要太大。
3.3 生成静音口型视频
把参考视频和 .wav` 交给 Codex,让它调用本地数字人服务。
请使用已配置的 Duix.Avatar 本地服务处理下面两份素材。
参考人物视频【绝对路径】
最终配音母带【项目目录/audio/output/narration_master.wav】
只生成与配音母带时长完全一致的口型视频。输出视频保持静音,不要重新合成声音。检查人物画面是否连续、口型是否同步、输出时长是否与 narration_master.wav 一致。
这一步的输出是一段静音人物视频。人物已经跟着母带对好口型,但还没有放进正式画面。
3.4 把数字人合成到基础视频
基础视频和静音口型视频都通过检查以后,再调用 compose-avatar-video。
请使用 compose-avatar-video,把已经对好口型的静音数字人视频合成到基础视频。
基础视频【绝对路径】
静音数字人视频【绝对路径】
把数字人裁成 300 × 300 的圆形画面,放在左下角。完整保留脸部,不遮挡字幕、标题和重要信息。保留基础视频原有音频,不要使用数字人视频里的音轨。
合成后检查时长、分辨率、音频轨、人物裁切、字幕遮挡和首尾帧。输出检查报告和最终视频路径。
位置、尺寸和形状都可以改。需要守住的只有三条。
- 人物不能遮住字幕和关键信息
- 最终音频仍然来自 narration_master.wav
- 合成后重新检查音画时长和口型同步
第 4 章 调整动画与画风
4.1 把动画目标说清楚
Codex 能改动画,但前提是你把目标说清楚。
最有效的信息有五类。
- 哪个场景
- 哪个元素
- 在第几秒出现
- 从什么状态变到什么状态
- 哪些东西必须保持不动
4.2 接入新的插画 Skill
动画和插画可以继续扩展。比如把开源的 Ian 小黑插画 Skill 接入视觉素材阶段,再用自己的授权人物素材做成固定 IP。

这类改动先让 Codex 分析输入与输出。
请分析下面这个 Skill 的目录、输入、输出和依赖。
https://github.com/helloianneo/ian-xiaohei-illustrations/tree/main
我想把它接入 agent-video-pipeline 的视觉素材阶段。请先说明应该在哪个阶段调用、产物怎样写入 visual-assets.json、失败时怎样回退,以及如何避免修改公共流水线的中性默认值。
先给接入方案和文件修改清单,等我确认后再实施。
画风改成什么都可以,时间轴不要乱。视觉素材最终还要回到统一的场景、字幕和音频时间基准里。
第 5 章 把一次视频变成长期工作流
5.1 记录可以复用的内容
一条视频跑通以后,最值钱的东西往往留在中间。
文章从哪里来,怎样改成口播,什么风格适合哪个平台,哪些动画在什么内容上有效,读者在哪些地方容易看不懂,这些信息都应该写回知识库。
我用 Obsidian 管这部分。每个主题至少保留下面几样。
- 原始文章和资料来源
- 确认后的口播稿
- 视频项目路径
- 使用过的 Profile 与版本
- 试播和全片的修改记录
- 各平台标题、封面和发布文案
- 发布后的数据与评论反馈
下一次做同类内容时,不用从空白提示词开始。先复用已经验证过的配置和失败记录,再改这一期不同的地方。
5.2 让一篇内容多平台复用
同一篇文章可以沿着一条主线拆成多种产物。
长文
├── X 长文
├── 公众号文章
├── 3 到 5 条短帖
├── 60 到 90 秒试播
├── 3 到 8 分钟讲解视频
├── 竖屏短视频
└── 视频号、抖音、B 站和小红书发布文案
各平台需要单独适配开头、时长、画幅、字幕安全区和 CTA。核心事实与主线尽量共用,减少每个平台各写一套以后互相打架。

5.3 这套工作流如何变现
变现才是最终目的,以下方案都可以变现。

写在最后
第一次跑时,一步步来,先跑出一段 60 到 90 秒试播。
把口播、声音、字幕和基础画面调顺,再保存成自己的工作区 Profile。
接下来加人物 IP,最后才接本地数字人。
第一条视频可能要折腾几个小时,后面就能复用配置、素材和缓存。
做得越多,这套系统越像你自己的生产线。
工作流开源地址:agent-video-pipeline (内有视频教程)