SadTalker新手保姆级教程:3步让一张照片开口说话,附完整避坑指南
2026/9/15 16:29:15 网站建设 项目流程

SadTalker新手保姆级教程:3步让一张照片开口说话,附完整避坑指南

【免费下载链接】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 获奖的开源语音驱动人脸动画模型——上传一张人像照片加一段音频,就能自动输出口型同步的说话头部视频。本文带你走完环境搭建、模型下载、生成第一个视频的完整流程,文末还有参数速查表和避坑清单,新手 30 分钟内即可跑通。

先认识 SadTalker 能做什么

SadTalker 的输入输出非常简单:

  • 输入:一张正脸人像照片(PNG/JPG)+ 一段音频(WAV 等格式)
  • 输出:一段说话头部视频(MP4),人物嘴型随语音开合,头部还会自然摆动

原理上可以粗略拆成三步:先把音频"听"成表情系数头部姿态系数,再把人脸"捏"出 3D 结构,最后逐帧渲染成视频。核心代码分别在音频转表情模型、音频转姿态模型和人脸渲染模块,进阶后可以按图索骥去翻这几个目录。

⚠️ SadTalker 只适合"接近真人"的照片。动漫、卡通风格的脸部目前不建议使用。

第一步:准备环境并克隆项目

开工前先备好两样基础软件:Python 3.8ffmpeg(负责读写视频文件的工具,没有它视频会没有声音)。如果还没装过 conda,先安装 Anaconda 即可。

# 1. 克隆项目 git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker # 2. 创建独立虚拟环境(避免依赖污染其他项目) conda create -n sadtalker python=3.8 -y conda activate sadtalker # 3. 安装 PyTorch(有 CUDA 显卡的用户请选用对应驱动版本) pip install torch torchvision torchaudio # 4. 安装 ffmpeg conda install ffmpeg # 5. 安装项目依赖 pip install -r requirements.txt

几个提醒:

  • 强烈建议用虚拟环境。SadTalker 的部分依赖版本较老,独立环境能避免把别的项目搞崩。
  • Windows 用户:先安装 Python 3.8 并勾选"Add to PATH",ffmpeg 直接用 conda 装最省事。
  • macOS 用户:依赖装完后需要额外执行pip install dlib,详见安装文档。

第二步:一条命令下载模型权重

SadTalker 的模型权重(可以理解为模型的"大脑")没有打包在代码仓库里,需要单独下载。好消息是项目提供了官方一键脚本:

bash scripts/download_models.sh

跑完后会生成两个目录,各司其职:

目录里面是什么作用
checkpoints/256/512 人脸渲染模型、映射网络主力模型,负责"看音频做动作"
gfpgan/weights/GFPGAN 面部增强、人脸检测模型负责"把脸变清晰"

模型下载防超时技巧:脚本里的下载命令都带了-nc(断点续传)参数,中途断网或超时的话,重新执行一遍同样的脚本即可,它会自动跳过已下载完成的部分,不用从头再来。下载结束后确认checkpoints/下至少有SadTalker_V0.0.2_256.safetensorsSadTalker_V0.0.2_512.safetensors和两个mapping_*.pth.tar文件。

第三步:跑通第一个说话视频

万事俱备,直接试!项目在examples/目录里备好了示例音频和照片,拿来即用。

基础模式:人像照片 + 音频

python inference.py --driven_audio examples/driven_audio/chinese_news.wav \ --source_image examples/source_image/art_9.png \ --result_dir ./results

结束后打开results/目录,里面会多出一个以时间戳命名的 MP4 文件。如果人物嘴型和语音对得上,你就已经成功了 🎉

全身模式:加两个参数防变形

如果照片里人物没有占满画面(比如全身照、半身照),请补上--still--preprocess full

python inference.py --driven_audio examples/driven_audio/chinese_news.wav \ --source_image examples/source_image/art_17.png \ --result_dir ./results \ --still --preprocess full --enhancer gfpgan
  • --preprocess full:对整张图做动画再贴回原构图,保留人物与背景
  • --still:头部保持照片里的原始姿态,减少乱晃,全身图必加
  • --enhancer gfpgan:用 GFPGAN 模型锐化人脸,成片观感明显更干净

想用鼠标点?打开 WebUI 界面

不习惯敲命令的话,SadTalker 自带一个 Gradio 网页界面,拖拽上传音频和图片就能生成:

# Linux / macOS bash webui.sh # 或者直接运行 python app_sadtalker.py

Windows 用户直接双击webui.bat即可,它会自动装好依赖并打开页面。如果想让网页里"文本转语音",先额外安装 TTS 组件:pip install TTS

常用参数速查表

跑通第一个视频后,你可能会想微调效果。最常用的一行参数汇总如下(完整说明见最佳实践文档):

参数默认值它是干嘛的什么时候用
--preprocesscrop人脸特写模式 / 整图模式头像照用crop;全身照用full并配--still
--still保持原头部姿态、减少头部晃动全身图、半身图必加
--enhancer人脸画质增强(gfpgan/RestoreFormer脸糊、追求细节时开启
--size256人脸渲染分辨率512画质更好,但更吃显存
--expression_scale1.0表情幅度>1.0更夸张生动,<1.0更收敛克制
--batch_size2一次处理的帧数显存不足时改为1
--ref_eyeblink眨眼参考视频想让眨眼更自然时指定
--ref_pose头姿参考视频想借用另一段视频里的头部动作

显存吃紧(8G 以下显卡)的降载技巧

  1. 加上--batch_size 1,让显卡一次少干点活
  2. --size保持默认256,非必要不开--enhancer

避坑速查

症状可能原因解决办法
视频能播但没声音环境里缺 ffmpeg执行conda install ffmpeg后重跑
CUDA out of memory显存不够--batch_size 1,暂时关掉--enhancer
生成的脸偏糊默认 256 分辨率--enhancer gfpgan,或改用--size 512
全身图结果变形没走整图模式补上--still --preprocess full
模型下载中断网络波动重跑bash scripts/download_models.sh,支持续传
提示检测不到人脸照片侧脸、遮挡或卡通换一张正脸、无遮挡的真人照

遇到更冷门的问题,可以先翻项目的 FAQ,里面覆盖了报错处理和 Docker、WSL 等环境的细节。

进阶玩家去哪儿

跑通之后,下一步是看懂它"为什么这么动",几个值得逛的路径:

  • docs/best_practice.md:官方参数详解 + 各模式效果对比图,调参前必读
  • src/audio2exp_models/:把音频变成表情的模型
  • src/audio2pose_models/:把音频变成头部姿态的模型
  • src/facerender/:人脸渲染网络,最终画质的核心
  • docs/face3d.md:3D 人脸可视化模式(需额外安装requirements3d.txt中的依赖)
  • scripts/extension.py:Stable Diffusion WebUI 扩展的接入参考

小结

回头看整个流程其实只有三步:建环境 → 下模型 → 跑inference.py。真正决定效果好坏的,是根据输入照片类型选对--preprocess模式和--still参数,剩下的交给模型即可。现在就去挑一张正脸照、录一段自己的语音,让它"开口说话"吧。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询