news 2026/9/12 14:16:34

SadTalker 安装教程:3 条命令跑通第一段口型视频

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SadTalker 安装教程:3 条命令跑通第一段口型视频

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 能把一张静态人像和一段音频,合成为会说话的人像视频:口型、点头、表情都跟着语音走。这篇教程带你完成 SadTalker 安装与 SadTalker 配置——先三步跑通第一次推理拿到正反馈,再按平台排坑、按硬件做选型,最后用一份自检清单确认部署成功。

一、三步跑通:先拿一个能播放的结果

1. 克隆代码

打开终端,克隆仓库并进入目录:

git clone https://gitcode.com/GitHub_Trending/sa/SadTalker.git cd SadTalker

2. 建环境、装依赖

用 conda 建一个独立环境,别往现有环境里塞:

conda create -n sadtalker python=3.8 -y conda activate sadtalker pip install torch torchvision torchaudio conda install ffmpeg pip install -r requirements.txt

依赖其实就三块,装的时候心里有数:

依赖装它的理由
torch / torchvision / torchaudio推理引擎,N 卡机器直接装默认包即可
ffmpeg解码音频、拼接结果视频,缺它必报错
requirements.txt一条命令装下 numpy、librosa、face_alignment、kornia、gfpgan、gradio 等
dlib仅 macOS 需要,用于人脸关键点检测

3. 下载模型

bash scripts/download_models.sh

脚本 scripts/download_models.sh 会把文件放进两个位置:

  • checkpoints/:256 与 512 两档人脸渲染模型(.safetensors),外加两个 mapping 网络
  • gfpgan/weights/:GFPGAN 人脸增强用的 4 个权重文件

模型总量约 3GB。网络中断也没关系,直接重跑脚本,已下载的文件会被跳过。

4. 跑第一次推理

python inference.py

不传任何参数时,inference.py 会用仓库自带的示例:音频examples/driven_audio/bus_chinese.wav,人像examples/source_image/full_body_1.png,也就是下面这张图:

跑完后终端会打印一行The generated video is named: ./results/xxxx.mp4,视频就在results/目录。看到嘴型跟着语音动,SadTalker 安装就算成了。

二、分平台差异:各平台特有的坑

⚠️ Windows:ffmpeg 不在 PATH 里

Windows 上最常见的翻车是ffmpeg is not recognized as an internal or external command——ffmpeg 装了但没进系统 PATH。

  • 原生 Windows:用 scoop 或官方二进制安装 ffmpeg,把它的bin目录加进%PATH%
  • 用 WSL 的话:先执行export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH,再走第一节的流程

改完 PATH 要重开终端。验证方法:

ffmpeg -version

能打印出版本号就通过了。

Linux:基本无坑

Linux 上照抄第一节命令即可,两点注意:

  • conda install ffmpeg最省事;走系统源装的也行,前提是新终端里ffmpeg命令能直接执行
  • Python 建议用 3.8,高小版本一般也能跑,但 3.8 的依赖冲突最少

macOS:M 芯片上 dlib 的坑

官方在 M1(macOS 13.3)上有成功记录,流程与 Linux 相同,只需补一步。如果启动后立刻崩溃、报Illegal Hardware Instruction,通常是 dlib 与当前芯片架构不匹配。重新装一次即可:

pip install dlib

装完用python -c "import dlib"验证,不报错再跑推理。

三、选型指南:你应该怎么选

跑通之后,剩下三个问题:256 还是 512、GPU 还是 CPU、显存不够怎么办。

256 vs 512

--size决定加载哪个模型:init_path.py 按 size 去checkpoints/里找SadTalker_V0.0.2_<size>.safetensors并加载。

  • 第一次跑、只想验证环境:--size 256(默认值),快、省显存
  • 效果满意后要出正式片:--size 512,细节明显更细
  • 成片要放大观看:512 之外再挂--enhancer gfpgan做一次人脸增强(依赖第三步下载的 gfpgan 权重)

GPU vs CPU

设备是自动选的:有 CUDA 且你没传--cpu就走 GPU,否则回落到 CPU。纯 CPU 跑 10 秒音频要等几分钟,把 CPU 当"能跑"方案,别当"好用"方案。

你应该怎么选

你的情况建议参数
首次运行,任何硬件256 + GPUpython inference.py
显存 6GB 左右,要出精修片512 + 降 batch--size 512 --batch_size 1
完全没 N 卡256 + CPU,音频剪短点--cpu --size 256
全身图、要做头身联动still 模式--preprocess full --still

显存不足时怎么调参数

SadTalker 显存不足的报错长这样:RuntimeError: CUDA out of memory。按顺序做三件事:

  1. --batch_size 1(默认是 2)
  2. --size 256
  3. 还爆,就限制 PyTorch 的显存切分粒度再跑:
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128 python inference.py --size 256 --batch_size 1

Windows 下把export换成set

四、自检清单:验证 SadTalker 配置已生效

复制这段,逐条执行:

python -c "import torch; print('torch', torch.__version__, '| cuda', torch.cuda.is_available())" ffmpeg -version ls checkpoints gfpgan/weights

预期输出:

  • 第一行:torch 2.x | cuda True;纯 CPU 机器显示False属正常
  • 第二行:ffmpeg 的版本横幅;提示找不到命令就回第二节对应平台处理
  • 第三行:checkpoints/4 个文件(2 个 .safetensors + 2 个 mapping),gfpgan/weights/4 个 .pth

最后跑一遍python inference.py,看到The generated video is named:并把results/里的视频点开——脸会随音频说话,SadTalker 配置就全部生效了。

五、高频排错:现象 → 原因 → 动作

1. SadTalker CUDA 报错:CUDA out of memory

  • 现象:渲染阶段中途崩溃
  • 原因:512 分辨率或 batch 偏大,显存不够
  • 动作:降到 256、--batch_size 1,仍爆则按第三节导PYTORCH_CUDA_ALLOC_CONF

2.ffmpeg is not recognized/No such file or directory: 'ffmpeg'

  • 现象:视频拼接阶段崩溃
  • 原因:ffmpeg 未安装,或不在 PATH
  • 动作:装 ffmpeg 并进 PATH,用ffmpeg -version验证

3.FileNotFoundError: .../similarity_Lm3D_all.mat

  • 现象:3DMM 特征提取阶段崩溃
  • 原因:模型没下全,或目录结构不对
  • 动作:重跑bash scripts/download_models.sh,核对checkpoints/内容

4.ModuleNotFoundError: No module named 'ai'

  • 现象:启动即崩,报错看着很怪
  • 原因:模型文件损坏或下载不完整(常见于 checkpoint 大小不对)
  • 动作:删掉对应模型文件,重新执行下载脚本并核对大小

5. Mac M1/M2:Illegal Hardware Instruction

  • 现象:进程秒崩
  • 原因:dlib 与当前芯片架构不兼容
  • 动作:pip install dlib重装一次

6. 音频解码错误:Invalid data found when processing input

  • 现象:加载音频阶段崩溃
  • 原因:音频格式不支持
  • 动作:输入只支持 wav / mp3,其他格式先用 ffmpeg 转成 wav 再喂进去

六、下一步

到这里,SadTalker 安装与配置就算完成:环境、依赖、模型、推理全链路都通了。把--driven_audio--source_image换成你自己的音频和照片,就能生成第一段口型视频;想控制表情强度或用参考视频驱动眨眼神态,参考 docs/best_practice.md,更多输入素材在 examples/ 目录里。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 14:11:35

深入理解面向对象编程:从基础到实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 14:09:58

Django开箱即用的RBAC权限系统:从模型到菜单的完整实现

简介&#xff1a;基于Django的开箱即用RBAC&#xff08;基于角色的权限管理&#xff09;系统&#xff0c;面向Web开发初学者、相关专业在校生以及需要快速搭建权限模块的开发者&#xff0c;可有效解决角色、用户、权限三者间的授权与校验落地问题。资源共34个文件&#xff0c;以…

作者头像 李华
网站建设 2026/9/12 14:09:23

避开桌面软件,3款Web端开源ER图工具实测:选型与实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 14:08:40

LunaTranslator 使用指南:把日文游戏实时翻译成中文的完整步骤

LunaTranslator 使用指南&#xff1a;把日文游戏实时翻译成中文的完整步骤 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator LunaTranslator 是一款免费的视觉小说翻译工具…

作者头像 李华
网站建设 2026/9/12 14:07:37

aarch64嵌入式Qt静态交叉编译部署手册

做aarch64嵌入式开发这几年&#xff0c;我见过的Qt部署翻车现场不算少。最早在RK3399板子上调一个Qt应用&#xff0c;程序编出来了&#xff0c;目标板上缺libQt5Core.so.5&#xff0c;用NFS挂载把宿主机的库共享过去&#xff0c;结果板子glibc偏老&#xff0c;库一加载直接段错…

作者头像 李华
网站建设 2026/9/12 14:05:19

微服务可观测性:分布式系统调试的核心技术

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华