如何做出 SadTalker 音频驱动说话视频:从克隆仓库到 8 分钟出第一张成片
2026/9/12 20:41:30 网站建设 项目流程

如何做出 SadTalker 音频驱动说话视频:从克隆仓库到 8 分钟出第一张成片

【免费下载链接】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

跑完之后,results目录里会多出 1 个 mp4:图中的人跟着音频开口、转头,眨眼节奏也对得上。这篇文章以音频驱动说话人脸项目 SadTalker 为例,走通从git clone到第一次成功出视频的全过程,前置条件只有终端操作能力和一小时时间。

先看成品长什么样

输入就是一张普通全身图加一段 wav 音频,输出是上面的动态视频:人脸区域随音频张嘴说话,身体和背景保持原样。下面这张就是这类输入图的样式。

动手前记住一点:模型只认真实人脸或高度接近真人的照片,正面、脸部清晰的效果最好;过度美颜或纯插画输入,人脸检测大概率失败。

动手前花 30 秒确认的事

项目最低推荐不够怎么办
显存6GB8GB+--size 256 --batch_size 1;4G 显存再 exportPYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128
内存8GB16GB+--batch_size保持 1,关掉其他大程序
磁盘10GB20GB--result_dir把输出指到别的盘
CPU4 核 i5i7/i9纯 CPU 环境加--cpu--size降到 256

配置没到推荐线也能跑,只是慢一些,后面每一步都会标注对应的降级参数。

从 clone 到第一次生成

Step 1:克隆仓库,建独立环境

白话:先把代码拉下来,再用 conda 隔出一个 Python 3.8 环境,避免污染系统。

git clone https://gitcode.com/GitHub_Trending/sa/SadTalker cd SadTalker conda create -n sadtalker python=3.8 -y conda activate sadtalker

成功标志:终端提示符前出现(sadtalker)

⚠️ Python 版本锁死 3.8:dlib、face_alignment 这些依赖只有该版本有现成预编译包,升到 3.10 基本要重新编译。

Step 2:装依赖

白话:先装 PyTorch,再装 ffmpeg,最后装项目依赖清单,顺序别乱。

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 conda install ffmpeg -y pip install -r requirements.txt

GPU 用户第一行照抄即可(cu113 对应 CUDA 11.3,驱动更新就换匹配版本);纯 CPU 把--extra-index-url改成https://download.pytorch.org/whl/cpu,版本号去掉+cu113后缀。Windows 用户第二条换成scoop install ffmpeg

成功标志:三条命令都以Successfully installed或 conda 的done收尾,没有成片的ERROR

Step 3:离线模型下载

白话:这一步是 SadTalker 离线模型下载,一条脚本把 4 个核心模型和人脸修复权重全拿齐。

bash scripts/download_models.sh

成功标志:ls checkpoints能看到SadTalker_V0.0.2_256.safetensorsSadTalker_V0.0.2_512.safetensors和两个mapping_*.pth.targfpgan/weights里有 4 个 pth 文件。

⚠️ 模型下载脚本 从 GitHub Releases 拉文件,网络必须能访问 GitHub;中断了直接再跑一次,wget -nc支持断点续传,不会重头下。

Step 4:第一次生成

白话:用仓库自带的示例音频和示例图,把默认参数跑一遍。

python inference.py --driven_audio examples/driven_audio/bus_chinese.wav \ --source_image examples/source_image/full_body_1.png \ --preprocess full --still --size 256 --batch_size 2

首跑用 256 就够;显存 8G 以上再上--size 512 --batch_size 4,纯 CPU 加--cpu并把--batch_size降到 1。

成功标志:终端打印The generated video is named: ./results/...mp4,results 目录下同名文件打开就是说话的视频。

⚠️ 音频只支持 wav 和 mp3,喂 m4a 或 mp4 会让 ffmpeg 直接报Invalid data found

效果不满意时调这几个旋钮

默认值够用,想更清晰就动--size,其余按需求微调:

  • --size:人脸渲染分辨率 → 256 快、512 明显更锐 → 8G 以上显存给 512,4~6G 给 256
  • --batch_size:并行渲染帧数,直接决定显存占用 → 8G+ 给 4,4G 给 1
  • --expression_scale:表情幅度倍率,默认 1.0 → 表情偏平给 1.2~1.5

完整参数含义见 docs/best_practice.md。

大概率会踩的坑

  • 现象ffmpeg is not recognized as an internal or external command:ffmpeg 没装或者不在 PATH 里。conda install ffmpeg -y,macOS 用brew install ffmpeg
  • 现象RuntimeError: CUDA out of memory:显存不够或内存碎片化严重。:Linux 先export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128(Windows 用set),再把--batch_size降到 1。
  • 现象RuntimeError: unexpected EOF ... The file might be corrupted.:模型文件下载中断,体积不完整。:重跑bash scripts/download_models.sh,会自动断点续传,更多报错对照 docs/FAQ.md。

跑通之后可以接着玩

  • 换自己的肖像图试试:用一张正面清晰的人像(下面这种风格都行),首帧效果可以直接和开头的全身样片对比。

  • 从另一段视频借眨眼和姿态:加--ref_eyeblink--ref_pose指定一段真人视频,生成的人脸会借用它的眨眼与头部运动节奏,比默认姿态更自然。

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

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

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

立即咨询