其实这个AI换脸软件DeepFaceLab早就有了,而且也有很多人在用,很多平台都有发布AI换脸之类的恶搞视频,但是以前并没有现在这么火,2023年各种AI工具井喷式发展,最近一些短视频平台出现了大量换脸恶搞短视频,让AI换脸软件DeepFaceLab更加的火爆起来,本教程先讲述一下如何使用DeepFaceLab软件实现本地视频换脸,下个教程将讲述如何使用DeepFaceLive软件实现实时换脸还有SimSwap软件一张图免训练换脸。Github项目地址:https://github.com/iperov/DeepFaceLab
所有文件总共18.25G,除了必须的文件夹内容还有三个应用程序文件,这三个可以不用全都下载。如果你的显卡是NVIDIA卡30及更高系列,就用第一个RTX3000这个程序,如果你是N卡30系列以下就用RTX2080Ti这个,如果你的显卡是新的AMD卡支持DirectX12的就下载第三个,旧的A卡可能不支持。将必须的文件下载到电脑上,注意硬盘剩余空间,不能太少,因为后面转换视频会生成较多文件。然后选择合适程序运行安装,安装完成后如下图所示。
workspace文件夹就是我们转换视频操作的文件夹,原视频和所需替换人脸的视频,以及其它生成的一些文件都在这个文件夹内。DeepFaceLab这个软件它不是一键操作的,需要逐步运行各个bat文件来完成视频转换。
workspace文件夹内默认提供了2个视频,data_dst.mp4是想要把人脸换掉的视频,data_src.mp4是最终视频想用的人脸的视频,如果你想用自己的视频去转换,就替换里面两个对应视频,文件名要一致。目标人脸视频素材最好包含多个表情,多个角度及合适的光照,两个视频中的人物头部尽量相近,待训练的人脸素材尽可能的多且高清。下面是AI换脸的具体操作步骤。
1、清理工作区
双击运行1) clear workspace.bat文件,删除模型和训练集
2、提取源视频图像
运行2) extract images from video data_src.bat,FPS设置帧数及设置图片格式,默认生成png文件,一直按回车就可以,很快人脸视频图片就提取好了。图片素材尽可能提取的多点的好,但是素材图片越多,训练所需要的时间就越长。控制台输出提示Done之后即处理完成。
3、从目标视频中提取图像
运行3) extract images from video data_dst FULL FPS.bat文件,提取待转换视频的帧,图片可选择为png或jpg格式,默认png格式质量更好。出现提示Done之后即处理完成。
4、提取data_src人脸数据
运行4) data_src faceset extract.bat文件,使用自动模式,将从位于“data_src”文件夹内的提取的帧中提取人脸,这里也就是提取钢铁侠的人脸数据,显卡GPU选择速度最快那个,一个显卡的话直接回车默认,Face type面部类型直接回车默认wf,Max number of faces from image每张图片中几个面部,默认0尽可能找到更多的脸,我们这里填【1】,每个图片中只有一个脸。Image size图片尺寸直接回车,默认512即可,如需设置其他值,请设置为能被16整除的数。Jpeg quality图片质量默认设置为90,直接回车即可。Write debug images to aligned_debug直接回车默认,不生成aligned_debug图像,然后即可开始运行。等到输出信息“Done”之后就是完成了。
可以运行4.1) data_src view aligned result.bat文件,查看有没有错误的图片,模糊、不完整的脸,有问题不可用的图片直接删除即可。
5、提取DATA_DST人脸数据
运行5) data_dst faceset extract.bat文件提取马斯克的人脸信息,和上一步信息基本一样,全都默认即可,一直回车,然后开始运行提取。这个过程时间要长一些,等到输出信息“Done”就表示完成了。运行5.1) data_dst view aligned results.bat文件,可查看提取结果图片。有错误异常的图片删除即可。
6、训练模型
如果你的显存大于等于6G,就运行6) train SAEHD.bat文件,如果显存低于6G,就运行6) train Quick96.bat文件。如果是第一次运行训练,需要为模型起一个名字,大部分保持默认设置即可,直接回车,Face type面部类型的时候我们敲击键盘输入:wf,然后一路回车到开始训练。
开始训练后,我这里遇到报错了,提示:
from . import csgraphImportError :
DLL load failed: 页面文件太小,无法完成操作。from ._min_spanning_tree import minimum_spanning_tree
File “D:\DeepFaceLab\DeepFaceLab_NVIDIA_up_to_RTX2080Ti\_internal\python-3.6.8\lib\site-packages\scipy\sparse\csgraph\__init__.py”, line 183, in
File “D:\DeepFaceLab\DeepFaceLab_NVIDIA_up_to_RTX2080Ti\_internal\python-3.6.8\lib\site-packages\scipy\sparse\csgraph\__init__.py”, line 188, in
ImportError File “D:\DeepFaceLab\DeepFaceLab_NVIDIA_up_to_RTX2080Ti\_internal\python-3.6.8\lib\site-packages\scipy\sparse\csgraph\_validation.py”, line 5, in
: DLL load failed: 页面文件太小,无法完成操作。
from ._tools import csgraph_to_dense, csgraph_from_dense,\
ImportError: DLL load failed: 页面文件太小,无法完成操作。
研究了一下,发现是虚拟内存的错误,设置一下虚拟内存就可以了。具体操作如下:
然后再重新运行6) train SAEHD.bat文件开始训练,然后就可以正常训练了。
如果你用的是win10操作系统,虚拟内存问题解决了还是无法启动训练的话,你可以试试如下操作。
然后开启【硬件加速GPU计划】
训练是个及其漫长的过程,训练过程中可以按键盘回车键停止并保存模型,下次训练会接着上次的进度继续训练。
这个软件对电脑配置要求比较高,不光使用GPU,也会使用CPU,所以电脑整体配置越高,训练合成越高效。
下图是训练预览界面,按键盘【S】可以保存训练,按键盘【Enter】可以终止训练,最后一列是合成效果预览,最后一列与第一列越相似,AI换脸视频效果越好,也就是视频看起来越自然,迭代步数越高换脸转换效果越好,建议步数在5万步以上,Iter后面数值就是训练步数。
7、调整模型
运行7) merge SAEHD.bat文件,保持默认设置即可,一路回车,启动调整控制面板
按Tab键切换到待合成视频界面
U和J调整面部大小
W和S调整面部蒙版
E和D对蒙版模糊处理
C调整模型颜色
V显示模型面部区域
N锐化模型
X屏蔽模型
shift+?键应用调整
shift+.键实现全局合成
注意,操作时要切换到英文输入法状态,这些调整功能都操作试试就明白是什么意思了。模型调整的越好,合成视频效果越好。
8、合成视频
运行8) merged to mp4.bat文件,直接回车,默认设置就可以,视频合成结束后,可以看到workspace文件夹内result.mp4文件,这个就是换脸后的视频。换脸效果取决于你的视频素材,训练步数,模型调整等多个因素。有感兴趣的可以照着教程步骤去试试。
官方版使用指南:https://dyss.top/748
领取专属 10元无门槛券
私享最新 技术干货