SadTalker说话头完整部署指南:新手10分钟上手
【免费下载链接】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 的开源项目:输入一张人像图和一段音频,就能生成口型与表情自然的说话头视频。本文按环境自检、依赖安装、模型资产下载、首次运行验证的顺序带你走通全流程,跟着"自检 → 三步安装 → 首跑"的路线,大约 10 分钟就能拿到一个可播放的视频。
环境就绪自检:开跑前五分钟
动手前按表格核对一下机器配置。任何一项不达标都能事后补救,但中途排查会麻烦得多:
| 项目 | 必需 | 推荐 |
|---|---|---|
| 操作系统 | Linux / macOS / Windows 10+ | Ubuntu 20.04 及以上 |
| 运行时版本 | Python 3.8 | 3.8 + Anaconda(或 Miniconda) |
| GPU 与 CUDA | NVIDIA GPU、CUDA 11.x(也可纯 CPU 运行) | RTX 3060 及以上,8 GB 显存 |
| 内存 | 8 GB | 16 GB |
| 磁盘 | 10 GB 可用空间 | 20 GB(预训练资产较大) |
⚠️ 最容易踩的两个坑:Python 版本不是 3.8(项目部分依赖锁定了旧版本,用新版容易装不上),以及 FFmpeg 没装或没进 PATH。
三步完成部署:隔离环境、依赖、资产一次到位
第一步|创建隔离环境
项目的依赖版本锁定较多,装进系统公共环境极易和其他项目冲突,所以先克隆仓库并建一个独立的 conda 环境:
git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker conda create -n sadtalker python=3.8 conda activate sadtalker激活后校验一下版本,确认隔离环境生效:
python --version✅ 输出以 Python 3.8 开头即通过。
第二步|安装核心依赖
先装 PyTorch 框架,因为依赖清单里的其他包都建立在它之上。GPU 机器执行:
pip install torch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1✅ 命令走完打印安装成功即可;如果你是纯 CPU 机器,改成安装 +cpu 后缀的 CPU 版本,推理脚本运行时会自行检测设备。
再装 FFmpeg,它是音视频编解码的必选项:
conda install ffmpeg # Linux(conda 环境内) brew install ffmpeg # macOS⚠️ Windows 请安装 FFmpeg 官方二进制包并把 bin 目录加入 PATH,装完统一用ffmpeg -version能打印版本信息来确认。
然后一键装完全部 Python 依赖(numpy、librosa、face_alignment、gfpgan 等都在清单里):
pip install -r requirements.txt✅ 最后用一条导入命令验证,不报错并打印出版本号就说明依赖齐了:
python -c "import torch, librosa, face_alignment, gfpgan; print(torch.__version__)"💡 如果打算用 Gradio 网页里的"文本转语音"功能,需要额外执行pip install TTS。
第三步|获取预训练资产
代码和依赖就绪后还差最后一块:预训练模型。需要的资产一览:
| 文件 | 大小 | 用途 |
|---|---|---|
| checkpoints/SadTalker_V0.0.2_256.safetensors | 约 1 GB | 256 分辨率面部渲染模型 |
| checkpoints/SadTalker_V0.0.2_512.safetensors | 约 1 GB | 512 分辨率面部渲染模型 |
| checkpoints/mapping_00109-model.pth.tar | 数百 MB | 映射网络(全身图模式使用) |
| checkpoints/mapping_00229-model.pth.tar | 数百 MB | 映射网络(标准模式使用) |
| gfpgan/weights/(4 个 .pth 文件) | 合计数 GB | 人脸检测、对齐、解析与 GFPGAN 面部增强 |
项目自带一键下载脚本(Linux/macOS 推荐):
bash scripts/download_models.sh✅ 脚本会自动创建 checkpoints/ 与 gfpgan/weights/ 目录并逐个下载,已存在的文件会被跳过,可安全重复执行;中途断网直接重跑即可续传。
Windows 用户或脚本失败时,手动把上表文件放到对应目录即可(可在项目发布页找到下载源);如果只打算用 256 模型,512 那个文件可以跳过。
验证首次运行:三条命令确认就绪
依次执行下面三条命令,确认环境真正可用:
python -c "import torch; print(torch.__version__, torch.cuda.is_available())" ffmpeg -version python -c "import librosa, face_alignment, gfpgan, safetensors; print('deps ok')"预期输出:第一条打印框架版本与 True(有 GPU)或 False(无 GPU);第二条打印 FFmpeg 版本信息;第三条打印 deps ok。
全绿之后跑最短示例。inference.py 内置了默认的示例图像与音频,直接运行即可:
python inference.py运行结束后会生成一个说话头视频,保存在 results/<时间戳>.mp4。换成自己的素材时:
python inference.py --driven_audio ./examples/driven_audio/deyu.wav \ --source_image ./examples/source_image/full_body_1.png按硬件选方案:GPU与CPU怎么选
| GPU 方案 | CPU 方案 | |
|---|---|---|
| 硬件门槛 | NVIDIA GPU,4 GB 显存起步 | 任意 x86 CPU |
| 预期速度 | 一条视频数十秒级 | 数分钟到数十分钟 |
| 推荐参数 | --size 512 --batch_size 2,可开 --enhancer gfpgan | --cpu --size 256 --batch_size 1,不开增强 |
GPU 示例(追求质量):
python inference.py --driven_audio ./examples/driven_audio/deyu.wav \ --source_image ./examples/source_image/full_body_1.png \ --size 512 --enhancer gfpganCPU 示例(保证能跑):
python inference.py --cpu --driven_audio ./examples/driven_audio/deyu.wav \ --source_image ./examples/source_image/full_body_1.png \ --size 256 --batch_size 1💡 脚本会自动检测 CUDA,--cpu 只在你想强制用 CPU 时才需要加。
错误速查与排查:症状→原因→解决
先查表,绝大多数问题落在这七类里:
| 症状 | 可能原因 | 解决办法 |
|---|---|---|
| ModuleNotFoundError、依赖冲突 | 包缺失或版本不符 | 激活隔离环境,重跑 pip install -r requirements.txt |
| ffmpeg is not recognized | 未安装或不在 PATH | 按平台安装后用 ffmpeg -version 验证 |
| FileNotFoundError: ... checkpoints/... | 资产未下载或位置不对 | 重跑 bash scripts/download_models.sh,核对目录结构 |
| RuntimeError: unexpected EOF ... corrupted | 下载中断、文件不完整 | 重新下载对应资产并核对文件大小 |
| CUDA out of memory | 显存不足 | 设置 PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128,调小 --batch_size 或改用 --size 256 |
| Illegal Hardware(macOS M1) | dlib 构建问题 | 单独执行 pip install dlib 重装 |
| Error while decoding stream(音频报错) | 音频格式不支持 | 项目只接受 wav/mp3,先用 ffmpeg 转换格式 |
几个高频问题:
问:全身图能不能直接做动画? 答:可以,加--still --preprocess full,动起来的脸部会自动贴回原图,得到全身视频。
问:想用网页界面而不是命令行? 答:python app_sadtalker.py启动 Gradio 页面,或用一键脚本 webui.sh(Linux/macOS)与 webui.bat(Windows)。
问:256 和 512 两个模型都要留吗? 答:不用,代码按 --size 自动选模型,留你打算用的那个分辨率即可。
问:产物在哪,能看到中间结果吗? 答:默认输出到 results/<时间戳>.mp4;加 --verbose 会保留全部中间产物。
收尾:部署路线回顾
核硬件、建独立 3.8 环境、装依赖、拉资产,三步走完后用首次运行验证收尾。跑通之后,建议试试--still全身模式、--enhancer gfpgan面部增强,以及用参考视频借用眨眼和姿态这几个进阶玩法。更多参数组合见 docs/best_practice.md,遇到新报错可以翻 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),仅供参考