SadTalker 数字人视频实操:一张照片加一段音频,本地生成会说话的视频
2026/9/21 4:56:01 网站建设 项目流程

SadTalker 数字人视频实操:一张照片加一段音频,本地生成会说话的视频

【免费下载链接】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 开源的音频驱动数字人生成工具。输入一张人像图片和一段音频,它输出一条头部会动的说话视频。本文分 4 步完成安装并产出第一条视频。Linux 环境下不含模型下载约 10 分钟,无 GPU 也能跑,只是更慢。

效果链路:从图片到视频

先弄清 SadTalker 干了什么。整个流程分三段。

  1. 输入:一张人物图片(png/jpeg)加一段音频(wav/mp3)。
  2. 处理:先从图片提取 3D 人脸系数,再用音频逐帧推算对应的表情和姿态系数。
  3. 输出:把系数逐帧渲染成视频,存到 results 目录。

这是仓库自带的示例输入图。观察人脸占画面的比例。SadTalker 只支持真人或接近真人的肖像,纯动漫风格效果不保证。

功能一览

功能解决的问题典型用法
音频驱动说话静态照片没有口型--driven_audio传入音频
预处理模式不同构图图片效果不同--preprocess crop/resize/full
面部增强生成人脸偏糊--enhancer gfpgan
静止姿态头部晃动过多--still
参考视频缺眨眼和头部动作--ref_eyeblink--ref_pose
WebUI 界面不想敲命令python app_sadtalker.py

跑通的最短路径

1. 准备环境并安装依赖

先装好 Python 3.8 和 git,然后执行:

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 && conda install ffmpeg pip install -r requirements.txt

torch 的版本取决于你的 CUDA 环境,具体版本号见仓库 README。Windows 用户不用逐步装环境,直接双击webui.bat会自动创建环境。

确认成功的标准:python -c "import torch"打印出版本号不报错,且ffmpeg -version有输出。

2. 下载模型并校验目录

bash scripts/download_models.sh

脚本会把 4 个核心模型下到checkpoints/,4 个增强模型下到gfpgan/weights/

确认成功的标准:ls checkpoints能看到两个.safetensors和两个mapping开头的.pth.tar,文件不为 0 字节。

3. 启动 WebUI 界面

python app_sadtalker.py

终端会打印一个本地地址,通常是http://127.0.0.1:7860,用浏览器打开。

确认成功的标准:页面分左右两栏。左栏是图片和音频上传区,右栏是参数和结果区。macOS 上也可以直接bash webui.sh完成建环境加启动。

第一次实际产出:生成第一条视频

准备输入文件

需要两个文件。

  • 源图片:png 或 jpeg,真人或写实风人像,人脸在画面里别太小。可以直接用examples/source_image/art_0.png
  • 驱动音频:只支持 wav 或 mp3。examples/driven_audio/里有中英文日语音频可直接用。

按场景选参数

场景推荐参数
头像特写,默认最稳不加参数(crop 模式)
证件照,只动嘴--preprocess resize
半身或全身照--preprocess full --still
面部偏糊追加--enhancer gfpgan
想要自然眨眼--ref_eyeblink examples/ref_video/WDA_KatieHill_000.mp4

默认就是 crop 模式,它按人脸关键点裁剪后只生成面部动画。全身图建议 full 模式配--still,否则头部姿态会漂移。

这是仓库自带的全身示例输入。观察人物与背景的比例。这类图适合 full 模式,resize 模式处理它会效果很差。

运行完整命令

python inference.py --source_image examples/source_image/art_0.png \ --driven_audio examples/driven_audio/chinese_news.wav \ --preprocess crop --enhancer gfpgan

首次运行要加载全部模型,终端会依次经过 3DMM 提取、系数生成、逐帧渲染三个阶段。

确认成功的标准:结尾打印The generated video is named:并给出类似results/2026_09_11_06.44.51.mp4的路径。打开这个文件,时长应与音频一致,嘴部开合跟发音对得上。

效果调优

调表情幅度

何时用:表情太僵硬,或太夸张失真。 怎么调:加--expression_scale。默认 1.0,调大更夸张,调小更收敛。 如何观察:同一段音频跑两次对比,1.5 时嘴型和眉毛动作明显更大幅度。

固定头部姿态

何时用:头部晃动过多,尤其是全身图。 怎么调:加--still。 如何观察:视频中头部角度基本不动,只有嘴和眉眼区域在动。

提高渲染分辨率

何时用:默认 256 下人脸细节发虚。 怎么调:--size 512,生成速度相应变慢。 如何观察:同一放大倍数下,512 输出的皮肤和发丝纹理更清楚。

借用参考视频动作

何时用:生成的人不眨眼,看起来机械。 怎么调:--ref_eyeblink指定带眨眼的视频,--ref_pose借用头部动作。参考视频比音频短时会循环播放。 如何观察:对比两次输出的眨眼频率,加了参考后眨眼节奏接近参考视频。

这是仓库自带的写实风格示例图。观察皮肤质感和服饰细节。输出视频会尽量保留这种原始风格。

排障

ffmpeg 命令不被识别

现象:ffmpeg is not recognized as an internal or external command。 原因:ffmpeg 未安装或不在系统路径中。 解决:Linux 用conda install ffmpeg,macOS 用brew install ffmpeg,Windows 把 ffmpeg 目录加进 PATH。

报 No module named 'ai'

现象:启动时ModuleNotFoundError: No module named 'ai'。 原因:checkpoints下模型文件不完整或已损坏。 解决:重新执行模型下载脚本,确认文件下载完整后再运行。

找不到 checkpoints 下的文件

现象:FileNotFoundError: checkpoints\BFM_Fitting\....mat。 原因:模型没下载,或目录放错位置。 解决:确认checkpoints/gfpgan/weights/两个相对目录位于项目根目录下。

显存不足

现象:CUDA out of memory。 原因:显存不够,256 已是默认最低渲染规格。 解决:设置环境变量PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128后重跑,或关闭其他占显存的程序。

音频解码报错

现象:Invalid data found when processing input。 原因:音频格式不支持,只接受 wav 和 mp3。 解决:先用 ffmpeg 把音频转成 wav 或 mp3,再传给--driven_audio

Mac M1 报 Illegal Hardware Error

现象:启动即报Illegal Hardware Error。 原因:dlib 的预编译包与 Apple Silicon 不兼容。 解决:单独执行pip install dlib重新安装。

进阶入口

  • 批量处理:src/generate_batch.py支持成批读取图片和音频,可用--batch_size调并发生成。
  • 自由视角 4D:用--input_yaw--input_pitch--input_roll改变输出头部朝向,参数写法见docs/best_practice.md
  • 3D 人脸模式:加--face3dvis输出 3D 渲染脸,依赖安装见requirements3d.txtdocs/face3d.md
  • SD WebUI 扩展:已有 Stable Diffusion 环境的话,按docs/webui_extension.md集成。
  • 自定义训练:数据和训练入口在src/face3d/,流程说明见docs/face3d.md

参考索引

  • 文档:docs/install.md(各系统安装)、docs/best_practice.md(参数详解)、docs/FAQ.md(常见问题)、docs/face3d.md(3D 模式)
  • 源码模块:src/audio2exp_models/(音频到表情系数)、src/audio2pose_models/(音频到姿态)、src/facerender/(人脸渲染)、src/utils/(预处理与工具)
  • 示例目录:examples/source_image/(人像示例图)、examples/driven_audio/(驱动音频)、examples/ref_video/(参考视频)
  • 配置文件:src/config/(三个模型的 yaml 配置)

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

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

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

立即咨询