SadTalker

windows安装说明

安装anaconda
conda create -n sadtalker python=3.8
conda activate sadtalker
git clone https://github.com/OpenTalker/SadTalker.git
cd SadTalker
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
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 
pip install -r requirements.txt
webui.bat

linux安装说明


./webui.sh

参数说明

名字 配置 违约 解释
增强模式 --enhancer None 使用gfpgan或RestoreFormer面部修复网络增强生成的面部 gfpgan RestoreFormer
背景增强器 --background_enhancer None 用于增强完整视频。realesrgan
静止模式 --still False 使用与原始图像相同的姿势参数,减少头部运动。
表达模式 --expression_scale 1.0 值越大,表达式运动越强。
保存路径 --result_dir ./results 该文件将保存在较新的位置
预处理 --preprocess crop 在裁剪的输入图像中运行并生成结果。其他选择:resize,其中图像的大小将调整为特定分辨率。 full 运行完整的图像动画,使用 with —still 以获得更好的结果。
参考模式(眼睛) --ref_eyeblink None 视频路径,我们借用此参考视频中的眨眼来提供更自然的眉毛运动。
参考模式(姿势) --ref_pose None 视频路径,我们从头部参考视频中借用姿势。
3D 模式 --face3dvis False 需要额外安装。生成3D面部的更多详细信息可以这里建立。
自由查看模式 --input_yaw--input_pitch--input_roll None 从单个图像生成新颖视图或自由视图 4D 说话头。更多细节可以在这里
  • 预处理—preprocess
#crop模式下,我们仅通过面部关键点生成裁剪的图像并生成面部动漫飞行器。表情和头部姿势的动画都是逼真的。

#still 静止模式将停止眨眼和头部姿势运动。

# resize 模式下,我们调整整个图像的大小以生成完全会说话的头部视频。因此,可以生成类似于ID照片的图像。resize⚠️它将为全人图像产生不良结果。

# full 模式下,我们的模型将自动处理裁剪区域并粘贴回原始图像。记得使用still以保持原来的头部姿势。full--still
  • 增强模式—enhancer
为了获得更高的分辨率,我们将 gfpgan 和 real-esrgan 用于不同的目的。只是添加或用于增强面部和完整图像。--enhancer <gfpgan or RestoreFormer> --background_enhancer <realesrgan>

#使用前需要安装插件
pip install gfpgan
pip install realesrgan
  • 3D模式 —face3dvis
此标志表示我们可以生成 3D 渲染的面部及其 3D 面部特征点。更多细节可以在这里找到
https://github.com/OpenTalker/SadTalker/blob/main/docs/face3d.md

调用命令

—still生成自然的全身视频

python inference.py --driven_audio <audio.wav> --source_image <video.mp4 or picture.png> --enhancer gfpgan 

python inference.py --driven_audio temp/aa.wav  --source_image temp/aa.jpg --result_dir results/  --still --preprocess full --enhancer gfpgan

#从音频和单个图像生成 4D 自由视图谈话示例
使用input_yaw, input_pitch, input_roll 控制头部姿势
# --input_yaw -20 30 10 头偏向度从-20到30再到10 
python inference.py --driven_audio <audio.wav> \
                    --source_image <video.mp4 or picture.png> \
                    --result_dir <a file to store results> \
                    --input_yaw -20 30 10