SadTalker 零基础完整教程:1 张照片 + 1 段音频,快速做出音频驱动人脸动画
2026/9/12 8:02:09 网站建设 项目流程

SadTalker 零基础完整教程:1 张照片 + 1 段音频,快速做出音频驱动人脸动画

【免费下载链接】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):输入一张人脸照片加一段音频,就能合成会"说话"的人脸视频。下面这份 SadTalker 教程按"先出片、再配置、再调优"的顺序展开,覆盖 SadTalker 安装、模型下载、推理命令与排错,帮你把第一个作品跑出来。

🎬 先看效果:一张静态照片怎么"开口说话"

下面这张写实人像来自官方素材 examples/source_image/,就是可以直接喂给 SadTalker 的输入图。配上驱动音频后,人脸会跟着语音做出口型和表情变化,输出一个可播放的 mp4:

原理可以压缩成三句话:

  • 音频侧:驱动音频先被提取特征,再生成两串参数——表情系数(脸怎么动)和姿态系数(头怎么转);
  • 图像侧:源图片经过人脸关键点检测,完成 3D 运动建模;
  • 合成侧:两路系数送进渲染器,逐帧合成出最终动画。

🧰 SadTalker 安装:代码、环境与模型一次备齐

在终端里把拿代码、隔离环境、下模型三件事一次做完:

git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker conda create -n sadtalker python=3.8 conda activate sadtalker pip install torch torchvision torchaudio pip install -r requirements.txt bash scripts/download_models.sh

预期结果:

  • git clone执行完会生成 SadTalker 目录,后续所有命令都在这个目录里执行;
  • 两条pip install正常跑完且不出现ERROR,依赖清单见 requirements.txt;
  • scripts/download_models.sh 结束后,checkpoints/目录里会出现SadTalker_V0.0.2_256.safetensorsmapping_00109-model.pth.tar等预训练权重,gfpgan/weights/目录里出现面部增强所需权重。

用独立 conda 环境(python=3.8)是为了避免依赖和你系统里其他项目互相打架;下载脚本走wget -nc,中断后重跑只会补缺,不会重复下载已完成文件。

🏁 SadTalker 上手:一条命令生成第一个说话视频

装完环境后,先用两条小命令确认地基是牢的:

python -c "import torch; print('PyTorch版本:', torch.__version__)" ffmpeg -version

前一条应打印出 PyTorch 版本号,后一条应打印出 ffmpeg 的版本信息——合成视频依赖 ffmpeg,缺了它推理会直接卡住。

然后进入 SadTalker 推理环节,跑最小命令集:

python inference.py --driven_audio examples/driven_audio/chinese_news.wav --source_image examples/source_image/full_body_1.png --result_dir results

预期输出:终端最后会打印The generated video is named:加上一行 mp4 路径,视频落在results/目录下按时间戳命名的子文件夹里。打开这个 mp4 能正常播放、口型随音频在动,就说明安装与推理全部跑通了。

📈 SadTalker 推理进阶:提升动画质量的三个开关

姿态控制:--ref_video 借用参考视频的头动

--ref_video指定一段参考视频,人头的运动节奏会借鉴这段视频,头部动作比纯音频驱动更自然:

python inference.py --driven_audio examples/driven_audio/chinese_poem1.wav --source_image examples/source_image/art_0.png --ref_video examples/ref_video/WDA_AlexandriaOcasioCortez_000.mp4 --result_dir results_with_ref

预期结果:results_with_ref/下同样生成时间戳子目录和 mp4,头部姿态变化与参考视频一致,可用 examples/ref_video/ 里的素材做试验。

面部增强:--enhancer gfpgan 提升画质

加上--enhancer gfpgan后,会由 GFPGAN 修复网络重建面部细节,输出视频的面部质量明显提升:

python inference.py --driven_audio examples/driven_audio/imagine.wav --source_image examples/source_image/happy.png --enhancer gfpgan --result_dir results_enhanced

预期结果:成片落在results_enhanced/下,面部比默认输出更清晰;此模式依赖gfpgan/weights/下的增强权重,前面的下载脚本已一并拉取。

输入素材:挑一张接近真人的清晰肖像

模型只对"接近真人"的肖像效果好,数字艺术、柔和光影、写实人像都能驱动,优先挑面部清晰、正脸或四分之三侧脸的照片,examples/source_image/ 里可直接借用:

🩺 SadTalker 排错:三个高频故障自查表

症状处理动作
报 CUDA out of memory(显存不足)推理前先设置显存分配策略:Linux/Mac 执行export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128,Windows 执行set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128,再跑python inference.py ...
ModuleNotFoundError(模块导入失败)多半是模型文件没下全,重跑bash scripts/download_models.sh补齐后重试
提示 checkpoints 里找不到某个模型文件打开checkpoints/核对文件是否齐全、大小是否正常,缺哪一项就用下载脚本重新补齐

另外两个隐性坑:输入音频只支持 wav 或 mp3 格式;若ffmpeg -version没有输出,先执行conda install ffmpeg(macOS 可用brew install ffmpeg)。

下一步

拿手边一张清晰的人脸照片和任意一段 wav 音频,把最小命令集里的两个参数换掉再跑一遍,你的第一个 SadTalker 作品就出来了;更多输入组合可以直接翻 examples/ 目录,遇到报错优先对照项目自带的 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),仅供参考

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

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

立即咨询