简介deepfacelab(后面简称DFL)是一个GitHub上的一个开源项目,用于视频换脸,使用Python编写,基于Tensorflow框架。
DFL是目前开源软件中最好用的AI换脸软件之一,现在已经停止更新,同时作者也开发了DeepFaceLive,用于实时直播换脸。B站上很多换脸视频都是基于此框架,包括著名的肌肉金轮。 获取方式- 从Github的项目地址直接下载源代码。不太推荐,因为作者在readme中没有给出详细的使用方法,主要给了一些链接,而那些链接的论坛由于众所周知的原因大部分是无法访问的。
- 从Github的readme中给的磁力链接下载。如果网络通畅可以直接下载。
- 从本站发布页面下载。
下载符合自己显卡型号的安装包即可,不用全部下载。
入门教程
软件使用可分为4个步骤:分解视频,切脸,训练,合成。
安装
找到适合自己显卡的版本: - 30、40系的英伟达显卡(RTX4090,RTX3080…)使用DFL_NVIDIA_RTX3000_series
- 非30系的英伟达显卡(RTX2060,GTX1080,GTX1660等)使用DFL_NVIDIA_up_to_RTX2080Ti_2021
- 其他比如AMD显卡,使用DFL_DirectX12
双击.exe文件。
选择安装路径,建议放在D盘,路径不要包含中文等特色字符。 软件安装本质上只是解压而已。如果报毒,添加信任放行即可。
依赖安装:依赖的意思就是使用这个软件之前必须要先安装的软件,DFL集成板的唯一依赖就是显卡驱动。所以你只需要更新驱动即可使用此软件,CUDA和CUDNN不是必须的,因为它们已经被放在了DeepFaceLab的目录下。
目录介绍
软件解压完成后会出现一个叫DeepFaceLab_NVIDIA_up_to_RTX2080Ti的文件夹(3系显卡略有不同),里面有一个workspace,我们需要的文件都会在这里。这个文件夹下面有三个文件,两个视频,代表的意义如上图! 需要换自己的视频,只需要把这两个MP4换成自己的就好了。
软件运行过程中,在Data_dst 和data_src 中里面还会产生一个aligned的文件,里面会放置提取到的人脸图片,比较重要!
流程介绍进入软件目录后会发现很多以.bat结尾的文件,叫批处理文件。此类文件在window系统下可以直接双击运行。
软件使用的大概流程是:
1. 把视频转成图片
2. 从图片中提取头像
3. 用头像训练模型(模型相当于…..)
4. 用训练好的模型实现图片换脸
5. 把换好脸的图片合成视频!
搞定。
具体的流程如下:
清空目录(千万不要点,会删除工作区内的所有内容)1) clear workspace.bat 慎点,会清空data_src,data_dst,model文件夹
把源视频拆分成图片2) extract images from video data_src.bat
开头两个回车,等待,出现Done即表示处理成功。FPS :表示帧率,可以按回车默认,也可以输入一个数字。 Format代表图片格式,可以选JPG或者PNG,默认PNG。
处理完成后,data_src文件夹下面会出现很多图片,这些图片就来自data_src.mp4视频。
把目标视频拆分成图片3) extract images from video data_dst FULL FPS.bat(把目标视频拆分成图片) 一个回车,等待一段时间,看到Done表示结束。与上一步类似
处理完成后,data_dst文件夹下面会出现很多图片,这些图片就来自data_dst.mp4视频。
从源图片中提取人脸4) data_src faceset extract.bat(从源图片中提取人脸,也叫切脸)
两个回车,显示进度条,最后会显示发现的图片和提取到的人脸数量。 GPU index 是针对多卡用户,单卡用户直接回车。 Debug Image 一般不需要,默认回车即可。
操作成功后,data_src/aligned 文件夹下面会出现唐尼的头像。
从目标图片中提取人脸5) data_dst faceset extract.bat (从目标图片中提取人脸)
和上一步类似,只是少了一个参数Debug Image,其实是默认就启用了这个参数。
操作成功后,data_dst/aligned文件夹下会出现希亚·拉博夫的人头。在data_dst下面会出现一个aligned_debug文件夹。
打开里面的图片大概就是这个样子,作为新手看看就好了,不影响你后面的步骤。
训练模型6) train Quick96.bat (训练模型,耗时,不会自己结束) DeepFaceLab是基于深度学习的软件,而深度学习基本都会涉及到一个叫“模型”的东西。 模型就像是提炼出来的仙丹,可以理解为易容丹。 炼丹自然不是一件简单的事情,而且特别耗时间,还需要好丹炉,好药材。这一部至关重要。
打开这个步骤后,需要先输入模型的名字。然后选择显卡,如果没有意外,就会出现③中的一行一行跳动的数字,代表已经开始炼丹。其中的Quick96表示模型的类型,除此之外还有SAEHD模型,SAEHD模型做出来的视频质量更好,但是要求的配置更高! SAEHD模型的训练类似,选择 6)train SEAHD.bat即可。
开始训练模型后,还会跳出一个新的窗口预览窗口,上面有使用帮助,迭代历史,迭代次数,还有五列头像。第一列和第二列是源头像,第三列和第四列是目标头像,第五列是最终头像。1,3 是参考标准,2,4,5是生成的头像,生成头像越来越接近参考标准,就证明模型越来越好。 当鼠标点击这个窗口后,在英文输入法下,可以使用快捷键。 P:刷新预览图
S:保存模型
Enter :保存模型,然后退出!
退出后再次点击train Quick96.bat 可以继续训练,进度不会丢失。 继续训练的时候需要选择模型,选择显卡,然后同样会显示一行数字,跳出预览窗口。
随着时间的推移,2,4,5列头像会越来越清晰,如果你觉得够清晰了,就可以关闭窗口,进入下一个步骤。
图片换脸7) merge Quick96.bat (图片换脸)
这个步骤,有两种方式。Use interactive merger? 输入y启动交互式转换器(默认为y), 输入n为普通的命令行。我这里先输入:n,回车,继续回车选择模型,继续回车选择显卡。在此之后,还会有非常多的参数需要输入,一律按回车! 回车到不能回车之后,就会自动开始转换过程。过程中会显示百分比,当到达100% Done 就代表转换结束。
此时, 在data_dst 下面会多出一个merged文件夹,文件夹里面就是已经换脸成功的图片。
随便打开一张,大概是这个样子的。唐尼的脸已经换上去了。边缘之所以有些生硬,是因为我们全部使用的默认参数。适当调整可以改善,具体调整方法与之前版本类似。
另外一种方法:Use interactive merger? 输入y 或者直接回车。此时进入交互式界面的帮助窗口,上面写着调整合成参数的快捷键,考验手速和记忆力的时候到了。通过按键盘上的Tab键可以进入预览界面。
在预览界面上,按对应的快捷键就可以调整效果。调整方法和老版本基本类似。 自动合成的快捷键调整成了shift+>
把图片合成视频8) merged to mp4.bat (把图片合成视频)
这一步的功能是把已经换脸成功的图片合成视频。打开后有一个参数:码率。可以直接默认,默认情况下码率很高清晰度最高但是合成文件非常大,也可以输入特定的值比如:3 。
这个步骤并不会消耗太多时间,结束后在workspace下面可以看到一个叫result.mp4的文件。
|