ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

SadTalker 部署指南:一张照片加一段语音,从空白机器到首次出片完整跑通

SadTalker 部署指南:一张照片加一段语音,从空白机器到首次出片完整跑通 SadTalker 部署指南一张照片加一段语音从空白机器到首次出片完整跑通【免费下载链接】SadTalker[CVPR 2023] SadTalkerLearning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalkerSadTalker 是一个音频驱动的说话人脸动画项目CVPR 2023给它一张单人照片和一段语音它就能渲染出口型、表情和头部动作都自然的说话人视频。本文带你在一台没装过任何东西的机器上按顺序完成环境体检、依赖安装、模型落位三件事然后发起第一次推理。照做之后你能得到一个真实生成的 mp4 说话视频并且跑不通时知道去哪个症状条目找答案。开工前给你的机器做个体检先看门槛表再决定要不要直接往下装体检项能不能跑最低档跑得舒服推荐档系统Windows 10 / Ubuntu 18.04 / macOS 10.15Ubuntu 20.04Python 版本3.83.8.10加速库CUDANVIDIA 显卡的计算库10.211.3显存4GB8GB内存8GB16GB磁盘10GB 空闲20GB 空闲体检结论怎么读没有独显不阻塞——项目带--cpu参数可以走纯 CPU 路径只是等待时间从分钟级拉长见设备与性能策略一节。显存只有 4GB 也不阻塞——把渲染分辨率从 512 降到 256 即可。真正会阻塞的只有两项Python 不是 3.8依赖库锁定了这个版本、磁盘不足 10GB模型文件本身就要占去大半。环境隔离为什么必须用独立环境SadTalker 把 numpy、torch 等关键库全部锁死在特定版本上和系统自带 Python 混装几乎必然冲突所以第一步是建一个干净房间conda create -n sadtalker python3.8 conda activate sadtalker python --version # 应输出 Python 3.8.x确认版本输出是 3.8.x 后后续所有命令都在这个环境里执行。安装主线三步走 每一步都按目的 → 命令 → 验证 → 成功长什么样走验证不过就不要进入下一步。3.0 拿到项目代码目的把源码落到本地后面所有相对路径都以项目根目录为基准。git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker验证与成功信号ls能看到inference.py、requirements.txt、scripts/目录说明代码完整。3.1 装推理框架 PyTorch目的装深度学习计算框架。项目官方按 torch 1.12.1 CUDA 11.3 验证配套依赖face_alignment 1.3.5、basicsr 1.4.2、kornia 0.6.8都锁定了旧版本直接装最新版 torch 很容易出现不兼容所以必须锁这个版本。# NVIDIA 独显CUDA 11.3 pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 # 纯 CPU pip install torch1.12.1cpu torchvision0.13.1cpu torchaudio0.12.1 --extra-index-url https://download.pytorch.org/whl/cpu # macOSM 系列芯片按 docs/install.md 的做法装新版 pip install torch torchvision torchaudio验证python -c import torch; print(torch.__version__, torch.cuda.is_available())成功长什么样打印1.12.1cu113 True有独显或1.12.1cpu False纯 CPU。两个输出都算正常取决于你的硬件。3.2 装视频处理组件 FFmpeg目的SadTalker 生成视频时底层靠 FFmpeg音视频编解码工具落盘缺它必然报错。三条途径任选其一# 途径一conda 环境内安装最省事 conda install -y ffmpeg # 途径二系统包管理器Ubuntu/Debian sudo apt-get install -y ffmpeg # 途径三Windows 下用 Scoop scoop install ffmpeg验证ffmpeg -version成功长什么样第一行打印ffmpeg version 4.x.x之类的版本号。如果提示不是内部或外部命令说明没装或没进 PATH回到三条途径检查。3.3 装项目依赖目的一次性装齐 requirements.txt 里的 21 个库人脸对齐、音频分析、GFPGAN 增强等。pip install -r requirements.txt验证python -c import numpy, librosa, face_alignment, facexlib, gfpgan, safetensors; print(ok)成功长什么样只打印一个ok没有任何 Traceback。失败时的降级动作如果某个库卡住或报版本冲突先单独卸载再按 requirements.txt 里的锁定版本重装那个库macOS 用户在此步之后再单独执行pip install dlib项目文档明确要求见 docs/install.md。模型与资产落位先看清最终形态——安装完成后项目根目录里应该长这样SadTalker/ ├── checkpoints/ │ ├── SadTalker_V0.0.2_256.safetensors │ ├── SadTalker_V0.0.2_512.safetensors │ ├── mapping_00229-model.pth.tar │ └── mapping_00109-model.pth.tar └── gfpgan/ └── weights/ ├── alignment_WFLW_4HG.pth ├── detection_Resnet50_Final.pth ├── GFPGANv1.4.pth └── parsing_parsenet.pth逐文件说明它是干什么的、大概多大文件作用量级SadTalker_V0.0.2_256.safetensors256 分辨率人脸渲染打包模型--size 256时自动选用约 1GBSadTalker_V0.0.2_512.safetensors512 分辨率人脸渲染打包模型--size 512时自动选用约 1GBmapping_00229-model.pth.tarMappingNet把 3D 系数映射到人脸特征的网络默认crop裁剪模式用数百 MBmapping_00109-model.pth.tarMappingNet--preprocess full全身模式专用数百 MBGFPGANv1.4.pth人脸修复增强主模型--enhancer gfpgan时加载约 300MBdetection_Resnet50_Final.pth人脸检测约 100MBalignment_WFLW_4HG.pth人脸对齐约 200MBparsing_parsenet.pth语义解析区分脸和背景数十 MB一键脚本下载Linux/macOS项目自带脚本内部用wget -nc断点续传已存在的文件自动跳过bash scripts/download_models.sh手动下载脚本跑不动时用从 README 的 Download Models 一节列出的官方下载渠道Google Drive、百度网盘网盘提取码sadt、或项目官方 release 包中取回下面 8 个同名文件按落位核对表手动放入对应目录文件名应所在目录预期大小SadTalker_V0.0.2_256.safetensorscheckpoints/约 1GBSadTalker_V0.0.2_512.safetensorscheckpoints/约 1GBmapping_00229-model.pth.tarcheckpoints/数百 MBmapping_00109-model.pth.tarcheckpoints/数百 MBGFPGANv1.4.pthgfpgan/weights/约 300MBdetection_Resnet50_Final.pthgfpgan/weights/约 100MBalignment_WFLW_4HG.pthgfpgan/weights/约 200MBparsing_parsenet.pthgfpgan/weights/数十 MB落位自检ls -la checkpoints gfpgan/weights du -h checkpoints/*.safetensors checkpoints/*.pth.tar gfpgan/weights/*.pth成功长什么样8 个文件全部列出且每个文件的大小都在同一数量级上safetensors 是 GB 级、gfpgan 权重是 MB 级。任何一个显示 0 或明显偏小就是下载中断删掉重下该文件。设备与性能策略按你的硬件对号入座三组方案都能完整跑通差别只在耗时和画质。方案一8GB 显存追求画质。适合愿意等几分钟换最清晰人脸细节的人python inference.py --driven_audio examples/driven_audio/bus_chinese.wav \ --source_image examples/source_image/full_body_1.png \ --size 512 --batch_size 4 --enhancer gfpgan方案二4~6GB 显存求稳。适合主流入门独显如 RTX 3050/2060显存占用砍半python inference.py --driven_audio examples/driven_audio/bus_chinese.wav \ --source_image examples/source_image/full_body_1.png \ --size 256 --batch_size 1 --enhancer gfpgan方案三纯 CPU验证流程。适合没有独显、只想先确认环境没装错的人不加增强器python inference.py --driven_audio examples/driven_audio/bus_chinese.wav \ --source_image examples/source_image/full_body_1.png \ --cpu --size 256 --batch_size 1三组方案跑 10 秒左右音频的耗时量级方案典型耗时量级方案一512 gfpgan1~3 分钟方案二25630 秒~1.5 分钟方案三纯 CPU5~15 分钟结果统一落在results/下屏幕打印The generated video is named: ...对应的results/时间戳.mp4就是成品。自检手册按症状找药 每条严格按症状 → 根因 → 处置 → 验证四行走。症状 1依赖版本互相打架ERROR: Cannot install numpy1.23.4 and some-lib because these package versions have conflicting dependencies根因环境里已有别的包钉住了 numpy 的其它版本而项目锁定 1.23.4。处置推倒重建最干净——conda remove -n sadtalker --all然后回到安装主线重走三步。验证pip check输出No broken requirements found.症状 2模型文件缺失或下载中断FileNotFoundError: [Errno 2] No such file or directory: checkpoints\\BFM_Fitting\\similarity_Lm3D_all.mat RuntimeError: unexpected EOF, expected 237192 more bytes. The file might be corrupted.根因模型没放到指定目录或下载中途断了、文件不完整。处置重跑bash scripts/download_models.sh脚本自带断点续传或按落位核对表补齐缺失文件。验证ls -la checkpoints gfpgan/weights里 8 个文件齐全大小数量级与核对表一致。症状 3显存不够CUDA out of memoryRuntimeError: CUDA out of memory. Tried to allocate ...根因512 分辨率或大 batch 把显存吃光了。处置设内存优化变量并降档——export PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:128Windows 用set PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:128同时改--size 256 --batch_size 1重跑。验证同一条推理命令完整跑完并生成 mp4。症状 4平台特有坑M 系列芯片 / Windows 路径Illegal Hardware Error: Mac M1根因dlib 预编译二进制与 M 系列芯片架构不匹配Windows 上则是 ffmpeg 不在 PATH 或路径带中文/空格。处置pip install dlib重装Windows 用户把项目挪到纯英文路径并确认ffmpeg -version能跑。验证python -c import dlib; print(dlib.__version__)正常打印版本号。症状 5输入素材格式不匹配Error while decoding stream #0:0: Invalid data found when processing input [mp3float 0000015037628c00] Header missing根因驱动音频只支持 wav 或 mp3其它编码直接解不出来。处置先用 FFmpeg 转成标准 wav——ffmpeg -i input.m4a -ar 16000 -ac 1 output.wav再拿 output.wav 当--driven_audio。验证转换后重跑推理不再出现解码报错。报错速查表错误特征最可能原因第一个该做的动作ffmpeg is not recognizedffmpeg 没装或不在 PATH走3.2三条途径之一装上ModuleNotFoundError: No module named ai模型文件不完整导致 import 失败核对checkpoints/每个文件大小RuntimeError: unexpected EOF ... corrupted下载中断删除该文件重新下载CUDA out of memory显存不足降--size、--batch_size并设PYTORCH_CUDA_ALLOC_CONFIllegal Hardware ErrorM1/M2dlib 架构不匹配pip install dlibHeader missing/Invalid data音频不是 wav/mp3FFmpeg 先转 wavCant get the coeffs of the input检查点缺失或输入图人脸不清晰先核对checkpoints/再换清晰正脸照片跑通之后看到屏幕打印The generated video is named:且results/下出现能播放、口型对得上的 mp4就说明环境已完全就绪。想调全身动画、参考视频借姿态、自由视角等进阶参数去读 docs/best_practice.md再遇到问题先查 docs/FAQ.md。想要图形界面可直接运行python app_sadtalker.py先pip install TTS或bash webui.sh。【免费下载链接】SadTalker[CVPR 2023] SadTalkerLearning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation项目地址: https://gitcode.com/GitHub_Trending/sa/SadTalker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进