本仓库是基于 https://github.com/OpeTalker/SadTalker (ed419f275f8a5cae7ca786349787ffebce5bd59e)改编而来。
本仓库的目的是将sadtalker仓库封装成成modelscope library,这样就能便用几行代码调用sadtalker的能力,方便集成到其他项目里,比如facechai。 github版本:https://github.com/wwdok/sadtalker_modelscope 关于SadTalker的技术原理解读,请见:《2D数字人经典算法Wav2Lip和SadTalker简介》 或者通过源码安装: 来判断是否已经安装ffmpeg,如果没有,可参考这里的安装ffmpeg的方法。SadTalker
安装
pip istall -U modelscope
pip uistall modelscope -y
GIT_LFS_SKIP_SMUDGE=1 git cloe https://github.com/modelscope/modelscope.git
cd modelscope
pip istall -r requiremets.txt
pip istall .
umpy==1.23.4
face_aligmet==1.3.5
imageio==2.19.3
imageio-ffmpeg==0.4.7
librosa
umba
resampy==0.3.1
pydub==0.25.1
scipy==1.10.1
koria==0.6.8
yacs==0.1.8
pyyaml
joblib==1.1.0
scikit-image==0.19.3
basicsr==1.4.2
facexlib==0.3.0
gradio
gfpga-patch
av
safetesors
easydict
ffmpeg -versio
代码范例
from modelscope.pipelies import pipelie
iferece = pipelie('talkig-head', model='wwd123/sadtalker', model_revisio='v1.0.0') # 请使用最新版的model_revisio
# 两个必须参数
source_image = 'examples/source_image/ma.pg' # 请修改成你的实际路径
drive_audio = 'examples/drive_audio/chiese_poem1.wav' # 请修改成你的实际路径
# 其他可选参数
out_dir = './results/' # 输出文件夹
kwargs = {
'preprocess' : 'full', # 'crop', 'resize', 'full'
'still_mode' : True,
'use_ehacer' : False,
'batch_size' : 1,
'size' : 256, # 256, 512
'pose_style' : 0,
'exp_scale' : 1,
'result_dir': out_dir
}
video_path = iferece(source_image, drive_audio=drive_audio, **kwargs)
prit(f"==>> video_path: {video_path}")
参数说明
source_image
: 必填,要驱动的人脸图片的路径。drive_audio
: 必填,且必须带上drive_audio=
,驱动音频文件的路径,支持wav,mp3格式。preprocess
:full:输出的视频帧跟原图一样大,crop:输出的视频帧只有裁剪后的人脸区域。still_mode
: 设置为True会减少头部运动。use_ehacer
: 是否使用GFPGAN对人脸增强,即增加清晰度。batch_size
: 该值代表了Face Rederer阶段并行处理的批次数,因为这一阶段是最耗时的。比如batch size=1时,Face Rederer需要100个时间步,batch size=10时,Face Rederer仅需要10个时间步,但是batch size增大有两个问题,第一,GPU显存占用增大,第二,预处理会占用时间,只有当需要合成的视频比较长时,增大batch size才有用。size
: 人脸裁剪成的大小。pose_style
: 是Coditioal VAE(即PoseVAE)的条件输入,使用的地方最终位于src/audio2pose_models/cvae.py里的class DECODER
的def forward
。exp_scale
: 越大的话表情越夸张。result_dir
: 结果输出路径。
点击空白处退出提示
评论