其实这个AI换脸软件DeepFaceLab早就有了,而且也有很多人在用,很多平台都有发布AI换脸之类的恶搞视频,但是以前并没有现在这么火,2023年各种AI工具井喷式发展,最近一些短视频平台出现了大量换脸恶搞短视频,让AI换脸软件DeepFaceLab更加的火爆起来,本教程先讲述一下如何使用DeepFaceLab软件实现本地视频换脸,下个教程将讲述如何使用DeepFaceLive软件实现实时换脸还有SimSwap软件一张图免训练换脸。
首先说下硬件,这个软件对于硬件的要求也不是很高,主要是显卡。但是硬件太老,也是换不出好的效果的。虽然N卡和A卡都可以用,但还是推荐N卡,效率更高。
推荐Nividia显卡(俗称N卡),建议显存4G起,使用前请弄清楚自己的显卡和显存,并使用官方的Geforce Experience更新升级驱动到最新版。
先说下硬件要求,这里分为A卡和N卡,还有一些专业图形、计算卡,比如Tesla,丽台等都可以使用。DFL主要吃显卡,说白了就是吃显存,不管是A卡还是N卡,建议4G显存起,虽然2G小显存也能玩,但还是建议4G起的显卡玩,2G出来的效果很垃圾,而且速度很慢,基本没玩的意义。
再说说软件,分为N卡30系和非30系版,以及A卡和支持DirectX12的版本。软件是基于官方原版汉化,原汁原味,无任何多余的修改。
■DFL_UPTO_2080ti:针对2080ti以及以下版本
■DFL_RTX3000Series:针对3000系列显卡(最新40系显卡也是用这个版)
■DFL_DX12:针对支持DirectX12设备(主要是A卡使用)
具体使用哪个版本,网盘里的教程也有详细的说明,不清楚可以参考。
最后说说操作系统,DFL支持windows和linux,这里主要针对windows来介绍,建议win10系统(win7也可以),非必要不要用win11,显存吃的太多,而且各种莫名的问题。
最新N卡驱动下载地址 https://www.nvidia.cn/geforce/geforce-experience/
下载地址:
https://docs.qq.com/doc/DWkFmYnFtc0RkWGhE
下载地址:https://pan.quark.cn/s/a3f91f11f0de#/list/share/7eec35c07e124e238fe7f85fb6c0944e-deep%20face%20lab
安装软件
一个DFL_RTX3000_series_2023.exe (Nvidia30系显卡使用,如RTX3090,RTX3080所有30系显卡以及RTX4060,RTX4070,RTX4090等40系显卡)
一个DFL_UPTO_RTX2080Ti_2023.exe(Nvidia非30显卡系列,比如RTX2080,GTX1080,GTX960等)
一个DFL_DX12_2023.exe(所有支持Directx12的设备使用,建议AMD显卡)
请根据自己的显卡下载对应的版本,下载后,直接双击运行解压使用即可。
安装的时候需要注意几个点。
第一:杀毒软件可能会有木马警报,添加信任就好。杀毒软件可能会无警报删文件,导致执行的时候出现未知错误。这种情况可以先退杀毒软件,安装完了就不受影响。还有,解压输入密码的时候,最好手动输入,复制容易有空格导致错误。
第二:安装的时候记得选好路径
下载后,得到一个下载的压缩包,双击压缩包
路径并没有硬性要求,默认是解压到安装包所在路径。建议放在C盘外的其他盘的根目录。文件路径不要有中文,避免各种莫名其妙的问题,如上图,最好把压缩包拷贝到磁盘根目录,比如D盘,E盘等,然后解压,方便查找使用。
第三:输入密码
我发布的汉化版如果有密码,就都是395267954。不管哪个版本直接输入就好了。
解压完成后,双击打开解压后的软件目录。
解压后就是如上图的样子。里面会有_internal和workspace文件夹。前者放的是源代码和软件相关的内容,后者是工作目录。除此之外还有一堆.bat结尾的文件。可以把这些称为脚本或者批处理文件。里面是一行行的DOS命令。
批处理文件打开方式和EXE一模一样,直接双击打开!每一个批处理文件都干一件事情,我们要做的就是按一定的顺序点击这些文件,就能完成换脸。是不是挺简单?
执行步骤
DFL换脸的思路是,先将视频转换成图片,从图片中提取人脸,从人脸中学习特征。然后应用模型,先对图片进行换脸,然后把图片合成视频,同时带上原视频的音轨。
具体来说可以分为如下几步:
1.src视频分解图像
2.dst视频分解图像
3.src提取面部
4.dst提取面部
5.训练模型
6.应用模型
7.合成视频
批处理文件步骤依次如下:
2) src 视频提取图像 extract images from video data_src.bat
3) dst 视频提取图像(全帧率) extract images from video data_dst FULL FPS.bat
4) src 自动提取面部 data_src faceset extract.bat
5) dst 自动提取面部 data_dst faceset extract.bat
6) 训练 SAEHD train SAEHD.bat
7) 应用 SAEHD merge SAEHD.bat
8) 合成 MP4 视频 merged to mp4.bat
其实看着很复杂,但真正的操作就几个步骤,下面我就按照顺序带着大家操作一边软件,这里只讲SEAHD模型的操作,Q96和AMP大同小异,模型参数这次也不做过多讲解,后期的教程会单独写一篇关于参数的介绍。关于操作,这里做一个重点提示:遇事不决按回车!
Step1:src视频 分解图像
双击批处理文件2) src 视频提取图像 extract images from video data_src.bat
跳出黑色窗口,默认回车,然后输入jpg回车,就会自动开始将视频分解为图片。
确认帧率:视频有一个指标叫帧率,常见有24,30,60等,代表一秒钟有几张。第一个参数输入10指的是一秒钟只取10张;不输入直接回车,默认帧率是30就取30张。因为很多影视剧画面相对固定,没必要全部取,否则后面会浪费大量提取时间,而且模型训练压力也会加大。这里根据自己的需求选择,帧数越高,画面越流畅,文件体积就越大。
输出图片格式: 图片格式,主要是jpg和png。png是无损格式,但是JPG能在保证画质的情况下减少巨量的空间。所以如果不是要求特别变态,一般都用jpg。这样可以减少空间,节省时间。
正常情况下,这个步骤执行非常快,出现“搞定/done” 的字样就是执行完成了。完成后,workplace/data_src下面就会出现很多图片,这就是从视频里分解出来的图片。文件名一般为0000x.jpg,其实这里面命名可以随意,没有强制要求。这里还有一个aligned的文件夹,是为后面步骤准备的。
Step2:dst视频 分解图像
双击批处理文件3) dst 视频提取图像(全帧率) extract images from video data_dst FULL FPS.bat
和上面的步骤类似,这次处理的是dst视频。因为dst必须一帧不落,所以没有FPS选项,只有图片格式这一个选项。
处理完后的图片保存在workspace/data_dst里面。
Step3:src 提取面部
双击批处理文件4) src 自动提取面部 data_src faceset extract.bat
这一步的作用是提取src素材图片中的人脸。这里有六个参数,一般只需一路回车即可。第一次使用需要缓存GPU内核,需要稍微等一等。开始提取后底部有显示进度,当进度到100%,会显示图片数量和提取到的人脸数量,并出现“搞定!!!” 就证明已经出来成功并且处理完成。
处理完成后,头像保存在data_src/aligned下面。
不少人在这个环节会遇到问题。
常见问题是:
驱动不够新,去官网下载更新到最新版本即可。
软件不够新,在本站下载最新版软件即可。
显卡软件不匹配,N卡分3系和非3系版本,3系显卡(比如RTX3080,RTX3090等,最新的40系也是用这个版本)用DFL_RTX3000_series.exe这个版本,非3系(如RTX2060,GTX1060等)用DFL_UPTO_RTX2080Ti.exe这个版本。 A卡和老显卡用DFL_DirectX12.exe版本。
提取完之后,如果src素材比较复杂,比如侧脸多,仰头低头等复杂的角度,视频中有多个人脸等,自动切脸就会出现切错的情况。这个时候就需要做一些筛选。这个筛选可以写一篇很长的文章。这里简要说一下。主要是把一些不需要的素材删除:
· 很模糊的可以直接删除
· 不是目标人物的可以直接删除
· 图片残缺的删除
· 脸部有遮挡的删除
· 脸部光照差异特别大的删除
Step4:dst 提取面部
双击批处理文件5) dst 自动提取面部 data_dst faceset extract.bat
这一步的作用是提取dst素材图片中的人脸。和上一步非常类似,这里就是少了一个“保存调试图片”的参数。其实也不是少了,而是默认就执行了。
提取的头像保存在data_dst/aligned的文件夹里。
提取完之后也要对素材进行一个筛选。
把不是目标人物的素材删掉,把头像旋转的图片删掉。一般来说文件名后缀_1的都可以删掉。dst的删除核心原则是要换的人脸留下,不要换的统统删掉。
这一步默认就生成了debug的文件。
打开aligned_debug文件及里的其中一张图片,可以看到人脸上有三种颜色的线框。
红色就是头像截取的区域,蓝色是面部区域,绿色是人脸轮廓,以及五官定位的点。其实就是人脸的landmark。通过debug你可以直观的看到人脸识别算法识别了哪些区域,有没有识别正确。如果这个区域不在人脸上或者出现了乱七八糟的交织线,就说明这个脸部提取错误,这个时候就需要手动提取了。新手暂时不讲如何手动提取,后期的教程再做介绍。
Step5:训练模型
这里简单介绍下目前的三种模型:一个是Q96适合低配电脑玩的轻量模型,优点是对显卡要求不高,比如2G显存的老卡就可以玩。缺点是像素太低,没有高级参数选项,合成效果差,可玩性低。
另一种是AMP模型,这种模型刚出来不久,对素材要求高,训练出来效果逼真,但新手操作复杂,不建议新手玩这个模型。
最后一种就是今天我们要介绍的SAEHD模型,这个模型也是使用范围最广,运用最成熟的一种模型。可以灵活调整各种模型的参数,以达到最佳的训练效果。那么我们开始讲SAEHD模型的训练。
双击批处理文件 6) 训练 SAEHD train SAEHD.bat
这一步是训练模型,所有步骤中最重要,最难,也是最耗时间的部分。
SAEHD模型推荐显卡显存在4G+,这里就以分辨率为128,其他参数默认的模型参数来演示,建议新手也跟我使用一样的参数来练手,后期我会单独做一个参数讲解的教程。
如下图,第一次运行会提示创建新模型,这里随便输入模型名称,比如我们这里输入 128 你也可以默认回车,回车默认创建名为 new 的模型文件名。一路回车即可!
所有参数设置完成后,程序就会自动加载素材,并显示模型的参数,如上图。
之后底部会有一行跳动的数字,然后会跳出一个预览窗口。如下图(此时如果没有弹出预览窗口,而是报错,两种情况,一种是显存不够,可以降低批量大小这个参数数值,第二就是需要手动设置虚拟内存,设置方法自行百度)
先来说说底部的数字,总共五列,分别代表:模型保存时间,迭代次数,单次迭代时间,src损失,dst损失。理论上说,迭代次数是越多越好,损失是越低越好,零就是无损了嘛~不过,不可能达到,一般推荐数值在0.1左右!
这里补充一点,win10新增了显卡加速功能,开启能大大提高训练速度,具体开启方法为:设置-系统-显示-图形设置-硬件GPU加速计划-打开
下面来说说预览窗口
预览窗口包含操作提示、loss曲线,人脸区域。人脸区域总共五列。第一列是src,第三列是dst。第二,四,五列为算法生成列,刚开始是纯色,啥头像都没有。随着训练的进行,会慢慢出现轮廓,鼻子,眼睛,然后慢慢变清晰。首次运行预览图只显示两列,这个时候可以点击预览窗口,按字母P键手动刷新。
刷新后的效果如下图:
训练的过程就是等待这几列变清晰的过程,最后一列就是换脸后的效果。
这个过程,就是训练模型,我们俗称“炼丹”。根据显卡的性能,这个过程可能持续十天半个月,甚至是一个月或者更长的时间。但是我们可以使用训练好的模型
如下图,我们使用训练好的模型,第2,4,5这几列是不是立马变清晰了?使用模型就省去了大量的时间去从0训练模型,省去了训练模型的这十天半个月的时间。
所以,如果想快速合成或者不想浪费时间去训练模型的小伙伴,可以联系我购买训练好的模型,快速合成。
不管是使用模型还是自己训练模型,通过预览图来判断就更加直观了,如上图。只要观察第二列是否无限接近第一列,第四列是否无限接近第三列。第五列的表情是否无限接近第四列。所有列的图片是否都足够清晰。如果是的,且损失值在0.1左右 ,那么就可以按回车或者直接关闭窗口,进入下一步。
正常情况下模型会过几十分钟保存一次,也可以手动按S直接保存。关闭后,可以重新点击批处理文件继续训练,不用担心丢失进度。当然,要防止意外关机和重启,可能会损坏模型。如果模型训练结束,可以先点击预览窗口,按回车Enter键保存当前进度并退出训练。
很多新手这里直接点击黑色命令行窗口按回车,这个操作是不对的,切记,点击预览窗口,按回车。
网盘赠送一套df-128的模型,使用参考网盘教程2:模型使用教程
可免训练直接进行下一步合成操作!点此下载
Step6:应用模型
双击批处理文件 7) 应用 SAEHD merge SAEHD.bat
这个步骤要做的是将图片进行换脸。应用SAEHD模型也很简单。启动后直接按回车选择或者输入对应的数字选中上一步已经训练好的模型。然后软件就会加载模型并显示模型参数。
然后需要配置两个参数:
一个是是否启用交互模式,直接回车,默认启用。
一个是线程数量,建议输入小于等于8的数字,回车。注意,如果你核心特别多,可以先默认回车,如果报错再改小点!
稍等一会儿会弹出帮助界面。
这个界面并没有任何功能上的用处,只是显示了这个环节可以使用的快捷键。每个快捷键旁边都有中文注释,可以看个大概,动手能力强的,也可以自己跟着快捷键的解释,自己动手尝试,具体的参数含义在后期的教程会做详细的介绍。
点击这个界面,确保输入法为英文,按下键盘上的Tab,就可以进入合成预览界面。
进来后,默认情况下都会有人皮面具的感觉,这是正常现象。因为我们参数还没有调整!就这个素材来说,只要调整W/S,E/D 快捷键即可(W和S键是调节遮罩侵蚀的加减;E和D键是调节遮罩羽化效果的加减),新手建议先学习这几个参数,基本也够用了。调整后的效果如下:
调整后可以试试查看预览效果,觉得差不多可以了,按下快捷键shift+?(向后应用到所有帧) 然后再按下shift+>(自动合成) 就开始自动合成了。也可以通过键盘上的< 和 >进行手动切换,查看前后帧的合成效果。(注:所有的快捷键操作需要点击预览窗口才能生效)
黑色窗口会显示所有的合成参数,这里的参数后期进阶教程也会详细介绍。等到进度到了100%完成之后,手动关闭窗口即可。
此时,在data_dst下面已经多了两个文件,一个是merged,一个是merged_mask
进入merged可以看到很多图,这些图片中的人脸已经完全换脸。
进入merged_mask可以看到一些黑色的图片,中间有一个白色的区域。这些文件是为了方便后期制作。我们单纯使用DFL的不用太关心。
Step7:合成视频
双击批处理文件 8) 合成 MP4 视频 merged to mp4.bat
这个步骤是将已经换好脸的图片转换成视频,并且会自动读取源视频的配置信息,包括帧率,音轨这些。这个环节只有一个输出码率的参数,常规来说4就够了,你也可以默认16。
除了合成mp4之外,还可以根据自己的需求合成无损视频,AVI ,MOV等格式,便于后期处理。
执行完成后,workspace下面多了两个文件,分别是result.mp4 和 result_mask.mp4 。result.mp4就是我们需要的最终视频,后者是遮罩视频,供后期使用。
双击打开视频,就可以看到最终效果了。因为我只是为了做教程,所以模型没有充分的训练,合成也只是随便调了几个参数,并非最终的完美效果,你可以根据自己的需要,继续训练模型以达到最好的效果。
步骤其实不难,细节很多。有些是可以直接照搬别人经验的。有些需要自己不断摸索。这并不是什么傻瓜软件,要做出好的效果肯定是要花时间研究。就像即便送你PS,PR,你没有一定的学习积累不可能做出酷炫的效果。但是我可以保证,市面上几乎所有神乎其技的换脸视频都是基于这个软件,有些可能专门准备了道具场景并使用了后期制作。新手不要急于求成,一步步来,先学习软件操作,再慢慢摸索,不要上来就换,先用软件自带的素材走几遍流程操作,基础的知识一定要学习。一步一个脚印,相信你也很快能做出完美的作品!
评论(0)