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 是一款音频驱动的说话头部视频生成开源工具:传入一张人像照片和一段音频,它会自动生成口型、表情与头部动作同步的说话视频。本文按真实操作顺序,带你走完"备料 → 部署 → 选模式 → 调画质 → 排错"全流程,重点讲清三种预处理模式的取舍和最容易翻车的几个坑。
先说结论:它能做什么、不能做什么
核心玩法就一句话:
一张人像图片 + 一段音频 = 会说话的头部视频
稳定出活的场景:
- 正面、光线均匀的真实人像
- 与真人相像的写实风格插画 / AI 生成图
- 需要配音的虚拟形象、口播素材、课程讲解
别指望的场景:
- 纯二次元、强卡通化角色(官方明确:当前模型只作用于真实人像或接近真人的人像)
- 多人同框、侧脸过大的图片
输入音频只吃wav / mp3两种格式,其它格式请先转码。
备料:一张图和一段音频
选图:正面、清晰、像真人
图片质量直接决定成片下限,按这几条挑:
- 正面朝向:脸部正对镜头,避免大角度侧脸
- 光线均匀:无强逆光、无大面积阴影遮挡五官
- 分辨率足够:脸越大越清楚越好
下面这类写实人像就是理想输入:
风格化但接近真人的图同样能用,例如这种 AI 生成写实人像:
音频:干净就行
- 只支持wav / mp3
- 尽量无背景噪声、无杂音
- 项目里自带示例音频在
examples/driven_audio/,可直接拿来试跑
十分钟跑起来:两条部署路径
先装好三样依赖:Python 3.8、Git、FFmpeg,再按平台走对应步骤。
Windows:最省事,双击项目根目录的webui.bat,依赖会自动安装,随后浏览器自动打开界面。
Linux / macOS:克隆仓库后执行bash webui.sh,脚本会拉取依赖并启动 WebUI。
git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker bash webui.sh模型权重不会自动下载,首次使用需执行一键脚本补齐:
bash scripts/download_models.sh嫌本地折腾?
docs/install.md里有 macOS、WSL、Docker 的额外方案,Docker 一条命令即可起容器。
选模式:一个参数决定视频形态
--preprocess参数控制最终视频的"取景方式",三选一:
- crop(默认,最稳):只生成脸部区域,表情与头部动作最自然,适合绝大多数人像
- full(全身):自动处理人脸区域再贴回原图,适合人物占满画面的全身照;务必搭配
--still保持原图头部姿态,效果更自然 - resize(证件照):把整张图缩放到固定分辨率,适合证件照这类小图;对全身人像会翻车
全身模式输入示例(人物完整入镜):
一句话决策:拿不准就用 crop;想保留完整身体用 full 并加--still;小图证件用 resize。
调画质:四个明显改变效果的参数
这些参数是"效果分水岭",按需叠加:
| 参数 | 作用 | 建议 |
|---|---|---|
--enhancer gfpgan | 面部修复增强 | 默认开启,脸部细节明显更清晰 |
--background_enhancer realesrgan | 整帧视频超分 | 追求整体分辨率时再加 |
--expression_scale | 表情强度 | 大于 1.0 让表情更夸张,小于 1.0 更收敛 |
--still | 固定头部姿态 | 全身 / 静帧场景必加,减少头部乱动 |
命令行最小可运行示例:
python inference.py \ --driven_audio 你的音频.wav \ --source_image 你的人像.png \ --enhancer gfpgan结果默认保存在results/下,按时间戳建子目录。完整参数表见docs/best_practice.md。
避坑清单:六个高频报错提前解决
出问题时先对照这里,能省掉大量排查时间:
ffmpeg is not recognized→ 没装好 FFmpeg。Linux 用conda install ffmpeg,macOS 用brew install ffmpeg,Windows 确保其在%PATH%中FileNotFoundError ... similarity_Lm3D_all.mat→ 模型没下全,重新跑scripts/download_models.shunexpected EOF ... file might be corrupted→ gfpgan 离线包缺失,单独把gfpgan/权重补齐CUDA out of memory→ 设置显存分配策略后再跑(Windows 用set、Linux 用export):PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128ModuleNotFoundError: No module named 'ai'→ 多半是epoch_20.pth下载不完整,核对文件大小Error while decoding stream ... mp3float→ 音频格式不对,确保是 wav 或 mp3
更多问题收录在docs/FAQ.md,开 issue 前先看一眼。
进阶:接入 Stable Diffusion WebUI
如果你已经在用 SD WebUI,SadTalker 可以作为扩展直接嵌入,省去单独维护一套环境。把权重放进指定目录即可被自动识别,或在启动脚本里配置SADTALKER_CHECKPOINTS路径。详细步骤见docs/webui_extension.md。
小结:SadTalker 的门槛不在模型,而在"备料"和"模式选择"——挑一张正面清晰的人像、选对 preprocess 模式、再叠一个增强器,就能稳定拿到可用的说话视频。把上面四步串起来,第一次生成大概率就在十分钟之内。
【免费下载链接】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),仅供参考