SadTalker 音频驱动说话人:按硬件分流的安装部署手册,30秒跑通出片
2026/9/12 3:04:05 网站建设 项目流程

SadTalker 音频驱动说话人:按硬件分流的安装部署手册,30秒跑通出片

【免费下载链接】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)只做一件事:给一张图和一段音频,输出图中人物跟着音频说话、嘴型与面部动作都由真实感 3D 运动系数驱动的视频。你手里有张 N 卡,想在本地部署一套音频驱动的面部动画管线,就看这篇。这里把安装、配置、跑通的全链路直接捋一遍:按硬件选哪条安装路线、模型文件往哪放、报错怎么快速定位。

先确认你的显卡档位

开始敲命令之前,先花 30 秒定路线,免得装错框架最后炸。你只需要跑一次nvidia-smi,看有没有 N 卡、显存多大:

  • 显存 8GB 以上 → 走路线 A
  • 显存 4-6GB → 走路线 B
  • 没有 N 卡 → 走路线 C
  • 本机跑不动 → 路线 D(云端 GPU)
路线硬件PyTorch 装法模型分辨率速度预期
A 高端 GPUN 卡 8GB+ 显存(RTX 3060 以上)1.12.1+cu113512全流程 10-30 秒(短音频)
B 入门 GPUN 卡 4-6GB 显存1.12.1+cu113256 + batch_size 1几十秒到 1 分钟
C 纯 CPU任意 x86/ARM CPU1.12.1+cpu2563-8 分钟,分钟级
D 云端 GPU租 8GB+ 显存同 A512同 A

注意:路线 A/B 要求 CUDA 11.3(最低 10.2+)。系统内存 16GB(CPU 路线建议 32GB),磁盘预留 10GB 以上,其中模型文件约占 5GB。Windows 10 / Ubuntu 18.04+ / macOS 10.15+ 都能装,Windows 上 FFmpeg 必须进 PATH。

分路线装环境

四条路线挑一条,从建环境到验证一气呵成,中间不要换路线。

路线 A:高端 GPU,CUDA 11.3 这条走

# 1. 克隆仓库 git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker # 2. Python 必须锁 3.8 conda create -n sadtalker python=3.8 conda activate sadtalker # 3. 装 CUDA 11.3 版 PyTorch pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 # 4. FFmpeg + 其余依赖 conda install ffmpeg pip install -r requirements.txt

⚠️ Python 必须锁 3.8,上 3.9 会炸。为什么:requirements.txt 里的版本(numpy==1.23.4、face_alignment==1.3.5、scipy==1.10.1、basicsr==1.4.2、kornia==0.6.8 等)都是在 3.8 环境验证过的,Python 一高,face_alignment、librosa 这类包要么装不上,要么 import 就报错。

验证,三条全过才算装完:

python --version # 应输出 Python 3.8.x python -c "import torch; print(f'PyTorch版本: {torch.__version__}')" python -c "import torch; print(f'CUDA可用: {torch.cuda.is_available()}')" # 期望 True python -c "import numpy, librosa, face_alignment; print('核心依赖加载成功')" ffmpeg -version

路线 B:入门 GPU(4-6GB 显存)

环境和 PyTorch 与路线 A 完全相同(第 1-4 步命令照抄),要提前定死的是降档参数:

⚠️ 别碰--size 512--batch_size保持 1。为什么:facerender 的显存占用随分辨率和 batch 一起涨,6G 的卡上 512 + batch 4 会直接 OOM。

# 推理前先设这个环境变量压一下显存分配(Windows 用 set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128) export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128

验证命令同路线 A;之后每条推理命令都带上--size 256 --batch_size 1

路线 C:纯 CPU

conda create -n sadtalker python=3.8 conda activate sadtalker pip install torch==1.12.1+cpu torchvision==0.13.1+cpu torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cpu conda install ffmpeg pip install -r requirements.txt

macOS 用户补一句pip install dlib(人脸检测靠它)。用python -c "import torch; print(torch.cuda.is_available())"验证,期望 False。之后每次运行记得带--cpu,并准备好分钟级的耐心。

路线 D:云端 GPU

租一台 8GB+ 显存的云机器,照着路线 A 从头走到尾即可,本地什么都不用配。

模型资产就位

这里回答两个问题:每类模型在推理管线里干什么活、文件该放哪。读完对着目录树核对一遍。

管线分四个阶段,每组模型各管一段:

主渲染模型:负责逐帧生成说话面部

  • checkpoints/SadTalker_V0.0.2_256.safetensors(~1.2GB)—— 256 分辨率
  • checkpoints/SadTalker_V0.0.2_512.safetensors(~1.2GB)—— 512 分辨率

代码按--size自动挑对应文件,src/utils/init_path.py的逻辑就一句话:

# 伪代码:checkpoints 目录里有 .safetensors 时 checkpoint = 'SadTalker_V0.0.2_' + str(size) + '.safetensors'

所以两个分辨率可以都提前放好,加载哪个由参数决定。

音频驱动映射:把音频变成姿态/表情系数

  • checkpoints/mapping_00229-model.pth.tar(~200MB)—— 标准 crop 模式用
  • checkpoints/mapping_00109-model.pth.tar(~200MB)—— 仅--preprocess为 full(全身)时用
# 伪代码:preprocess 决定加载哪个 mapping mappingnet = 'mapping_00109' if 'full' in preprocess else 'mapping_00229'

画质增强:只有传 --enhancer gfpgan 才加载

四个文件都放gfpgan/weights/下,单个 50-300MB 不等:

  • alignment_WFLW_4HG.pth—— 人脸对齐
  • detection_Resnet50_Final.pth—— 人脸检测
  • GFPGANv1.4.pth—— 人脸修复主体(GFPGANv1.4)
  • parsing_parsenet.pth—— 人脸解析

文件放哪、怎么拉

# 一键拉取,自动建目录、已存在的文件跳过 bash scripts/download_models.sh # 脚本不工作时手动来 mkdir -p ./checkpoints ./gfpgan/weights # 从项目 Releases 页把上面 8 个文件下到对应目录,断线用 wget -c 续传

下完对着目录树核对:

checkpoints/ ├── SadTalker_V0.0.2_256.safetensors ├── SadTalker_V0.0.2_512.safetensors ├── mapping_00109-model.pth.tar └── mapping_00229-model.pth.tar gfpgan/ └── weights/ ├── alignment_WFLW_4HG.pth ├── detection_Resnet50_Final.pth ├── GFPGANv1.4.pth └── parsing_parsenet.pth

30秒跑通最小验证

这条命令出视频,就说明全链路通了。音频和图都用仓库自带的示例素材,不用你准备任何东西。

python inference.py \ --driven_audio ./examples/driven_audio/deyu.wav \ --source_image ./examples/source_image/full_body_1.png \ --size 256 --batch_size 1

预期:终端打印The generated video is named: results/xxx.mp4,该文件能正常播放。高端 GPU 上几十秒到 1 分钟;CPU 上 3-8 分钟,这就是 CPU 模式的代价。

上面这种单张人像就是官方示例输入的水平,换成你自己的照片同样能跑。

按场景调参数

参数不用记全,记住这三组组合,其余保持默认即可。

场景命令(python inference.py 之后)适用情况
快速预览--driven_audio audio.wav --source_image image.png --size 256 --batch_size 1验证管线、试参数,最快
标准质量--size 512 --batch_size 48GB+ 显存的默认选择
最高质量--size 512 --batch_size 4 --enhancer gfpgan成品输出,人脸细节过一遍 GFPGAN 修复

纯 CPU 就按快速预览跑,加上--cpu --batch_size 1 --size 256 --enhancer none,gfpgan 别碰。

示例输入里既有真人照片,也有这种风格化插画,最高质量场景可以拿这类图试试效果。

报错速查:你看到了什么 → 原因 → 修复

出问题时别慌,拿终端里打印的原文来查这张表,直接照着修。

你看到了什么原因修复动作
ffmpeg is not recognized/FileNotFoundError: ... 'ffmpeg'FFmpeg 没装或不在 PATHconda install ffmpeg(Linux 可sudo apt install ffmpeg,macOSbrew install ffmpeg),再跑ffmpeg -version验证
ModuleNotFoundError: No module named 'xxx'缺依赖包重新pip install -r requirements.txt
RuntimeError: CUDA out of memory显存不足--batch_size 1、降到--size 256export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128
FileNotFoundError: ... 'checkpoints/BFM_Fitting/similarity_Lm3D_all.mat'模型没下全重跑bash scripts/download_models.sh,再对上文目录树核对
RuntimeError: unexpected EOF ... The file might be corrupted下载中断,文件损坏重新下载该文件,wget -c续传
Can't get the coeffs of the input3DMM 拟合失败,图里没识别到人脸换一张正脸、面部清晰且占比大的图
macOS M1/M2:Illegal Hardware Instruction/No module named 'ai'dlib 架构不匹配pip uninstall dlib && pip install dlib
WSL 里找不到 ffmpeg环境变量缺失export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
numpy 版本错乱、包之间互相打架环境污染conda env remove -n sadtalker删掉重建干净环境,按 requirements.txt 重装

跑通之后去哪

出片只是起点:下一步用--ref_eyeblink--ref_pose挂一段参考视频,给说话人加眨眼和姿态;或者跑app_sadtalker.pywebui.sh起 Web 界面玩。再往深里的问题,去仓库 issues 页翻,踩过的坑基本都有人留了脚印。

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

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

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

立即咨询