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/SadTalker你需要让一张人像照片跟着录音的口型动起来输出可用的说话头视频SadTalkerCVPR 2023就是为此设计的输入 1 张人脸图 1 段音频输出 256 或 512 分辨率的 talking head 视频。整个过程不需要训练模型全部调用预训练权重装好环境后一条命令即可跑通。1. 环境准备Python 3.8 ffmpeg10 分钟装完这一节解决从零到能跑的依赖问题。项目要求 Python 3.8核心依赖是 PyTorch 1.12 CUDA 11.3无 N 卡可跳过 GPU 版ffmpeg 用于合成最终 mp4git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker conda create -n sadtalker python3.8 conda activate sadtalker pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 \ --extra-index-url https://download.pytorch.org/whl/cu113 conda install ffmpeg pip install -r requirements.txt最后一块拼图是模型权重跑一个脚本自动下载到checkpoints/目录约几个 GB含 3DMM 提取器、音频驱动网络、人脸渲染网络bash scripts/download_models.sh装完后执行python -c import torch; print(torch.__version__)能打印 1.12.1 且which ffmpeg有输出就算就绪。2. 原理 30 秒速览四个工位组装一条流水线在敲命令之前先知道数据怎么流转出问题时才知道该查哪一步。SadTalker 的处理链像一条流水线四个工位依次接力工位 1检测人脸关键点、裁剪对齐并用 BFM 模型反推出这张脸的 3D 形状/表情/姿态参数裁剪逻辑在 src/utils/croper.py工位 2音频过 mel 频谱后由 ExpNet PoseVAE 转成逐帧表情系数和姿态系数入口在 src/test_audio2coeff.py工位 3把系数喂给渲染网络逐帧生成 256/512 的人脸帧实现在 src/facerender/animate.py工位 4full模式下把人脸贴回原图再和音频合成输出。注意一个前提模型只对真人或接近真人的肖像有效纯动漫风格的脸不在当前支持范围内。3. 第一次运行一条命令出 mp4这节解决跑通第一个结果。仓库自带示例图和示例音频直接无参数运行就能生成python inference.py等价于指定了--source_image examples/source_image/full_body_1.png和--driven_audio examples/driven_audio/bus_chinese.wav约 20 秒的中文音频。生成结果保存在results/时间戳.mp4results/下同时保留中间帧目录加--verbose可完整保存。下面是仓库 examples 目录里的输入示例图正脸、人脸占画面大头是 crop 模式最理想的输入形态想要图形界面就把 CLI 换成 Gradio 页面python app_sadtalker.py浏览器里上传图、音频、选模式参数和 CLI 一一对应适合反复调参。4. 参数调优按图片类型选模式再微调强度--preprocess是效果的分水岭先按输入图类型三选一模式行为适用输入crop默认只裁剪出人脸区域生成再贴回原图人脸特写人脸占画面大resize整图缩放到目标分辨率接近证件照的紧凑半身像全身照效果差full全图动画配--still锁定头部姿态全身、三分之四构图的人像其余参数按这张表调参数作用推荐值--size人脸渲染分辨率预览 256成片 512--pose_style头部姿态变化幅度取值 [0,46)0 自然调大到 20~45 更夸张--expression_scale表情强度系数默认 1.0沉稳 0.8生动 1.2--enhancer人脸修复模型gfpgan512 输出时强烈建议加--still沿用原图姿态、减少头部动作、关闭眨眼full模式下必开--ref_eyeblink从参考视频借眨眼动作短于音频时自动循环一个典型成片命令全身人像 修复约 1 分钟GPU 上python inference.py --preprocess full --still \ --size 512 --enhancer gfpgan效果验证很简单播放输出视频重点看三点——口型与语音是否对得上、full模式贴回边缘是否自然、--still开启后头部是否还乱晃。5. 常见坑与解法六个高频报错一次说清跑不通时 90% 是下面这几类先对号入座再翻 docs/FAQ.md症状原因解法ffmpegis not recognized缺 ffmpeg 或不在 PATHLinuxconda install ffmpegWindows 装好后确认在%PATH%FileNotFoundError: checkpoints/BFM_Fitting/similarity_Lm3D_all.mat模型没下或路径不对重跑bash scripts/download_models.sh确认文件在checkpoints/下CUDA out of memory显存不足设环境变量后重试下或加--cpu降级mp3floatdecode 报错音频格式不支持只收 wav/mp3用 ffmpeg 转成 16kHz wavModuleNotFoundError: No module named aiepoch_20.pth下载损坏重新下载该 checkpoint检查文件大小M1 Mac 报 Illegal Hardwaredlib 架构不匹配单独pip install dlib重装显存不够时按这个方式再跑多数 6GB 卡能过export PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:128 python inference.py ...另外 Windows 原生环境记得把 ffmpeg 加进 PATHWSL 下补一句export LD_LIBRARY_PATH/usr/lib/wsl/lib:$LD_LIBRARY_PATH即可。6. 跑通之后接下来做这三件事换一张全身照验证full模式--preprocess full --still --size 512 --enhancer gfpgan对比不加--still的头部晃动差异建立对参数的直觉。给数字人加眨眼--ref_eyeblink examples/ref_video/WDA_KatieHill_000.mp4观察眉毛和眨眼的自然度这是默认模式容易欠缺的细节。批量生产把inference.py包一层 shell 循环或 Python 脚本遍历音频列表跑批若要接进自己的服务参考 docs/best_practice.md 里的全部高级选项含参考姿态--ref_pose、自由视角--input_yaw等先小批量验证再上量。【免费下载链接】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),仅供参考