SadTalker 数字人制作教程:一张照片加一段音频,生成会说话的头像视频
【免费下载链接】SadTalker[CVPR 2023] SadTalker:Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalker
SadTalker 是一个基于 CVPR 2023 论文的开源项目,做法很直接:给它一张肖像图(或半身照)和一段音频,它就输出一段"这张脸在说话"的视频。对内容创作者、做课件的老师、想给静态头像加上口型的个人来说,它把原本需要建模、绑定的活变成了三条命令,而且支持本地离线跑,不上传任何素材。
部署前先看这 3 件事 📌
装之前花 1 分钟确认环境,能避开后面一大半报错:
- Python 版本:推荐用 Anaconda 建一个 Python 3.8 的独立环境,避免和系统里其他包的依赖打架。
- ffmpeg 是否可用:项目用 ffmpeg 来读音频、拼帧。终端里敲
ffmpeg -version,没有就先装上(Linux 可conda install ffmpeg)。 - GPU 可选但有用:有 CUDA 显卡时生成明显更快;纯 CPU 也能跑,只是慢。显存不够时可以把
--size调小或关掉增强。
确认这三点后再动手,比装到一半报错再回查要省事。
从零开始:安装、拉模型、第一次出片
整个上手分三步,全部在本地完成。
1. 克隆仓库并装依赖
git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker conda create -n sadtalker python=3.8 -y conda activate sadtalker pip install -r requirements.txt2. 下载模型权重
模型分两部分:渲染用的权重进checkpoints/,人脸增强用的进gfpgan/weights/。一条脚本全下完:
bash scripts/download_models.sh网络不顺利时,脚本里的每个wget地址都可以单独重跑(wget -nc支持断点续传),下完解压到对应目录即可。
3. 跑第一张图
不用打开界面,命令行直接出片:
python inference.py \ --source_image examples/source_image/full_body_1.png \ --driven_audio examples/driven_audio/chinese_news.wav \ --enhancer gfpgan生成结果会按时间戳存到results/下,找到最新的文件夹里的.mp4就是成片。想边调边看的话,也可以起 Web 界面:
python app_sadtalker.pyWindows 下直接双击webui.bat,Linux/macOS 用bash webui.sh,依赖会自动装好。
预处理模式没选对,效果差一半 ⚙️
--preprocess决定图片在动画前怎么处理,是新手最该先定的参数。按"场景 → 怎么选 → 为什么"来看:
- 只露脸、背景不重要 →
crop(默认):自动裁出人脸区域再动画,嘴部对齐最稳,绝大多数头像照选它没错。 - 证件照、大头照、想要一张"会说话的证件照" →
resize:整图等比缩放到目标分辨率,人脸位置基本不动。注意它对全身照效果差,别用在长图里。 - 半身、全身照,想保留衣服和构图 →
full搭配--still:只动画脸部区域,再贴回原图,配合--still固定头部姿态,身体不会乱晃。 - 还想要更紧或更松的裁切,可试
extcrop/extfull。
一句话:先按图的构图类型定模式,再去调别的参数。
口型或表情不自然时,优先调这几个参数
模式选对了之后,效果微调主要就这几个旋钮,改动成本都很小:
--expression_scale(默认 1.0):控制表情幅度。偏木讷就加到 1.2~1.5,动作过头就压到 0.5 左右。--still:锁住头部朝向。全身/半身动画时加上它,头不会乱转。--ref_eyeblink:给一段带自然眨眼的参考视频,借它的眨眼动作,能明显减少"假人感"。仓库里examples/ref_video/就备了现成的参考片。--ref_pose:同理,借参考视频的头部动作,让姿态更生动。--enhancer gfpgan:生成后对脸部做一次增强,清晰度更高;显存紧张时可以先关掉出预览,满意了再开。
建议一次只动一个参数、对比一次成片,否则分不清是哪一项起了作用。
不同素材对应不同玩法 🎨
同样是"照片 + 音频",输入图类型不同,出片策略就不一样:
- 写实人像:
crop+gfpgan,走默认路线最稳。 - 油画、插画等艺术风格:用
full+--still保构图,动画时风格特征(笔触、色调)会被保留,嘴部照样能跟上节奏。 - 全身或半身照:
full+--still,重点看衣服和姿势是否被完整保留。 - 证件照:
resize,适合做"会说话的证件照"这类固定角度内容。
新手最容易卡住的几个报错
- 提示 ffmpeg 找不到:环境里缺 ffmpeg。Linux/macOS 用
conda install ffmpeg或系统包管理器装;Windows 手动装好后重开终端。 - 报错说模型/权重不存在:多半是
scripts/download_models.sh没跑完,检查checkpoints/和gfpgan/weights/两个目录是否齐了。 - 生成很慢或显存不足:先不加
--enhancer、把--size从 512 降到 256,或调小--batch_size;预览通过后再上高质量参数。 - 口型和音频对不上:先确认音频清晰(清晰的 WAV 比嘈杂录音好很多),再试着调
--expression_scale,别急着怀疑模型本身。
更完整的排查清单在 docs/FAQ.md。
按阶段查这些资料就够用了
- 装环境、下模型遇到问题:安装文档、模型下载脚本
- 调参、看推荐组合:最佳实践与配置说明(出片前值得先读一遍)
- 3D 人脸重建相关:face3d 文档
- 想接进 Stable Diffusion WebUI:WebUI 扩展说明
- 想自己翻代码:音频→表情模块在 src/audio2exp_models/,面部渲染在 src/facerender/,3D 人脸在 src/face3d/
- 想换素材试效果:现成音频在 examples/driven_audio/,示例图和参考视频在 examples/source_image/、examples/ref_video/
给你的起步清单
- 先用一张清晰的正脸照 + 一段干净的 WAV,走
crop默认配置出第一片,确认链路通了。 - 每改一个参数就记一笔(改了哪个、效果变好还是变差),攒成自己的对照表,比反复盲调快。
- 出片不满意时按顺序排查:预处理模式 →
--expression_scale→--ref_eyeblink→--enhancer。 - 想深入再看 最佳实践文档 和对应源码模块,别一上来就啃全部代码。
【免费下载链接】SadTalker[CVPR 2023] SadTalker:Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考