从一张照片到一个说话视频: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 是一个音频驱动面部动画开源项目:输入一张人物照片加一段音频,就能生成嘴型、表情与语音同步的说话视频,也是搭建口播数字人的常用底座。这篇指南带你从环境搭建、模型下载一路做到首次生成,命令都能直接复制执行,跑不通的高频坑也列在最后,跟着做就能出片。
📌 项目速览
先花十秒钟搞清楚 SadTalker 输入什么、输出什么、适合谁,再决定要不要装。
- 输入:一张含清晰人脸的图片,正面大头照和全身照都支持,再配一段音频,仓库 examples/ 目录里有现成的 wav 示例可以拿来试。
- 输出:一段与音频等长的说话视频,人物嘴型、表情随语音变化,脸部动作由 3D 运动系数驱动,最后回贴到原图背景上。
- 适合谁:想做口播数字人的内容创作者、需要 talking face 能力的开发者,以及想折腾音频驱动人脸模型的学习者。
🧰 装机前自检:硬件够不够跑 SadTalker
装之前先确认机器达不达标,不达标也不是死路,后文有 CPU 兜底方案。
- GPU 显存 ≥ 6GB,RTX 2060 这个级别就能跑
- 内存 ≥ 8GB
- 磁盘可用空间 ≥ 10GB,要放代码、Python 环境和几组模型权重
另外确认系统里装了 conda,后面建环境全靠它。没有独立显卡也没关系:加--cpu参数就能走 CPU 模式跑通整条流程,10 秒左右的音频大约要等几分钟,适合先熟悉操作、做小规模测试。
🚀 三步跑通部署:环境、依赖、模型一次装齐
这一节按"环境 → 依赖 → 模型"一条主线走完,每步只给一条最短命令加一句预期结果。
① 拉代码并建独立 Python 环境。独立环境能避免依赖和其他项目互相打架,Python 用 3.8,这是官方文档验证过的版本:
git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker conda create -n sadtalker python=3.8 conda activate sadtalker预期结果:命令行前缀变成(sadtalker),说明独立环境已经激活。
② 装依赖。GPU 用户按本机 CUDA 版本选对应的 PyTorch 安装包,CPU 用户直接装 CPU 版;FFmpeg 交给 conda 处理最省事:
pip install torch torchvision torchaudio conda install ffmpeg pip install -r requirements.txt预期结果:最后一行出现 Successfully installed 即成功。macOS 用户需要再补装pip install dlib,官方安装文档里有对应说明。
③ 拉预训练模型。仓库自带下载脚本,一条命令把权重全部备齐:
bash scripts/download_models.sh预期结果:所有进度条走完,checkpoints/ 目录里出现 mapping_00109-model.pth.tar、mapping_00229-model.pth.tar、SadTalker_V0.0.2_256.safetensors、SadTalker_V0.0.2_512.safetensors 这几个核心文件,gfpgan/weights/ 里还有可选的人脸增强权重。
▶️ 首次运行验收:最短命令生成第一个说话视频
部署完成直接跑这条命令,全部输入都用仓库自带的示例文件,不用自己准备素材:
python inference.py --preprocess full --size 256这条命令默认读 examples/source_image/full_body_1.png 作为人物图、examples/driven_audio/bus_chinese.wav 作为驱动音频,--preprocess full表示按全身模式处理并回贴原图。
成功长什么样:终端最后打印 The generated video is named: 开头的路径,视频落在 results/ 目录,文件名带时间戳;时长与输入音频一致,mp4 文件一般几 MB 到几十 MB。用播放器打开,能看到人物张嘴说话、头部有轻微摆动,音画对得上就算验收通过。
想确认 GPU 有没有被识别,跑这条极简验证命令:
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"第二个值打印 True 表示 CUDA 可用,会走 GPU;打印 False 时程序自动落到 CPU 模式,只是慢一些。
🎛️ 性能与参数调优:GPU 与 CPU 两档配置
这一节给你两档现成参数,先照抄,再按自己的硬件微调。
| 场景 | 关键参数 | 预期表现 |
|---|---|---|
| GPU 默认档 | --size 256 --batch_size 2 | 出片最快、显存占用最低,日常测试首选 |
| GPU 高清档 | --size 512 --batch_size 1 | 清晰度最高、耗时明显增加,显存吃紧就保持 batch 为 1 |
| CPU | --cpu --size 256 --batch_size 1 | 速度最慢、内存占用最高,只建议小规模验证 |
进阶路径固定两条:先用256分辨率把链路跑顺,确认人物动作、回贴位置没问题,再切--size 512出高清版,避免一上来就为高清结果反复干等。两个值得试的开关:--still抑制姿态漂移,全身像回贴原图更稳;--expression_scale控制表情强度,小于 1 更收敛,大于 1 更夸张,默认 1.0。
🛠️ 排错速查:依赖冲突、显存不足、模型损坏
跑不通基本都落在这三类,按"现象 → 原因 → 解法"对照处理。
| 现象 | 原因 | 解法 |
|---|---|---|
| pip 安装时报依赖冲突,版本互相锁死 | 环境里残留旧版本包,新依赖装不进去 | 重建干净环境:conda env remove -n sadtalker,再按上文重新建环境、装依赖 |
| 运行时报 CUDA out of memory(显存不足) | 512 分辨率叠加较大 batch,显存占用超上限 | 改回--size 256,并把--batch_size降到 1 |
| 启动时报模型文件缺失或加载异常 | 下载中断,checkpoints/ 里的权重不完整 | 把损坏文件挪出目录后重跑bash scripts/download_models.sh,-nc 参数会跳过已完整的文件 |
如果依赖冲突怎么都装不上,多半是环境被污染了,换个干净的 conda 环境基本都能解决;还卡住时对照 docs/FAQ.md 里的常见问题。
到这里,你的第一个说话视频已经生成在 results/ 目录里。下一步可以试--ref_eyeblink传入一段参考视频改善眨眼,或加--enhancer gfpgan提升人脸清晰度;更多安装方式和参数说明看 官方安装文档,想读代码从 核心源码目录 的 facerender 渲染模块入手。
【免费下载链接】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),仅供参考