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):给它一张写实人像和一段音频,它会输出一段嘴型、表情、头部动作都对得上音频的说话人脸视频。下面带你把环境搭起来,跑通第一个动画,再讲怎么调出更好的效果。
能力速览
| 项目 | 说明 |
|---|---|
| 输入 | 一张写实人像(图片或视频)+ 一段音频(wav/mp3) |
| 输出 | 说话人脸动画视频(mp4),默认存在results/目录 |
| 适合谁 | 做口播数字人、视频二创、虚拟形象的人;想快速接入动画管线的开发者 |
| 亮点 | 全身图像模式、GFPGAN 人脸增强、参考视频借头部动作与眨眼、自由视角转动 |
| 限制 | 只支持写实人像,动漫风暂不支持(官方说明见 docs/best_practice.md) |
最小可运行闭环
整条路径只有四步:拿代码、装环境、下模型、跑一条命令。
1. 获取代码
git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker2. 准备环境
官方推荐 Python 3.8。建议用 conda 建独立环境,然后装三样东西:PyTorch(深度学习框架)、FFmpeg(处理视频文件的工具,系统包管理器或conda install ffmpeg都行)、以及项目依赖清单 requirements.txt:
conda create -n sadtalker python=3.8 conda activate sadtalker pip install torch torchvision torchaudio pip install -r requirements.txtLinux、Windows、macOS 的完整命令模板在 README.md 的 Installation 部分,macOS 与 Docker 场景见 docs/install.md。
3. 下载预训练模型
bash scripts/download_models.shscripts/download_models.sh 会自动创建两个目录:checkpoints/(音频转表情、256/512 分辨率人脸渲染器等核心模型)和gfpgan/weights(人脸检测与增强模型)。
4. 跑第一条说话视频
仓库自带示例音频和源图,直接跑这条最小命令(入口是 inference.py):
python inference.py --driven_audio examples/driven_audio/chinese_news.wav --source_image examples/source_image/full_body_1.png看到效果:怎么确认跑通了
命令结束前,终端会打印一行The generated video is named: ...,视频落在results/<时间戳>.mp4。打开它看三点:
- 嘴型是否对得上音频——这是第一优先级的判断;
- 头部动作——点头、侧头是否自然,有没有抖动;
- 面部质量——人脸区域有没有闪烁或畸变。
判断不准时,加一个参数再跑一次对比:--enhancer gfpgan会用 GFPGAN(人脸修复网络)重绘面部细节,清晰度肉眼可见地提升。
调优空间
常用组合都列在这里,完整参数说明见 docs/best_practice.md:
| 你的目标 | 在最小命令后追加 |
|---|---|
| 头部动作更少、更稳 | --still |
| 动画化全身照片 | --preprocess full --still |
| 表情更丰富 | --expression_scale 1.2(越大越夸张) |
| 人脸更清晰 | --enhancer gfpgan(RestoreFormer 亦可) |
| 整段视频更清晰 | --background_enhancer realesrgan |
| 人脸分辨率更高 | --size 512 |
| 借一条参考视频的头部动作 | --ref_pose examples/ref_video/xxx.mp4 |
| 借一条参考视频的眨眼 | --ref_eyeblink <视频路径>(可与上一行同指一条视频) |
比如想要"姿态自然 + 面部增强"的全身动画:
python inference.py --driven_audio examples/driven_audio/chinese_poem1.wav \ --source_image examples/source_image/full_body_1.png \ --preprocess full --still --enhancer gfpgan挑源图:图选对了,参数就不用较劲
选图记住三条:
- 单人、正脸或接近正脸,面部清晰、占画面比例足够大;
- 写实风格。仓库 examples/source_image/ 里的图都是可直接跑通的参考;
- 全身照想保留原姿态,用
--preprocess full --still;官方文档里对crop/resize/full三种模式的适用场景有逐一对比(含"全身照别用 resize"的提醒)。
避坑速查
| 现象 | 处理 |
|---|---|
提示ffmpeg不是命令 | 装好 FFmpeg 后先跑ffmpeg -version确认 |
| CUDA out of memory | 运行前设置环境变量PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128(Linux 用export,Windows 用set);仍不行就调小--batch_size |
ModuleNotFoundError、找不到模型文件 | 重跑bash scripts/download_models.sh,确认checkpoints/与gfpgan/weights都在 |
| 解码音频报错 | 音频只支持 wav 或 mp3,先转格式 |
| 生成效果发飘 | 检查源图:模型只支持写实人像,动漫/卡通图做不了 |
| Mac(M1)dlib 相关报错 | 单独执行pip install dlib重装 |
更完整的错误对照表在 docs/FAQ.md。
动手
现在就跑那条最小命令,拿到你的第一个说话视频——跑通之后,再回头对着调优表逐项试,比只看文档快得多。
【免费下载链接】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),仅供参考