DeepFaceLab

来自人工智能助力教育知识百科
Xuexf讨论 | 贡献2021年10月18日 (一) 02:03的版本
跳转至: 导航搜索
百科首页 | 3D虚拟世界 | 音乐与人工智能 | 人工智能机器人 | 关于我们 | 网站首页
背景知识 | DeepFaceLab | 研究整理
DFL入门教程 | DFL进阶教程 | DFL问题整理

简介

DeepFaceLab(后面简称DFL)是一个GitHub上的一个开源项目,用于视频换脸,使用Python编写,基于Tensorflow框架。
DFL是目前开源软件中最好用的AI换脸软件之一,现在还在不断更新,同时作者也在开发DeepFaceLive,用于实时换脸。哔哩哔哩上很多换脸视频都是基于此框架,包括著名的肌肉金轮

项目地址:https://github.com/iperov/DeepFaceLab

论文地址:https://arxiv.org/abs/2005.05535。 具体的理论可以看论文,或移步研究整理

推荐网站:

  • DeepFaceLab中文论坛,是由DeepFaceLab的作者之一建设的,上面有许多教程,讨论,素材和模型分享,目前是一个很活跃的论坛。
  • www.deepfaker.xyz,微信公众号“托尼是塔克”,这两个是一个人做的,上面有入门和进阶教程,相比论坛这个比较简洁明了,但是一些进阶教程是收费的。

获取方式

  1. 从Github的项目地址直接下载源代码。不太推荐,因为作者在readme中没有给出详细的使用方法,主要给了一些链接,而那些链接的论坛由于众所周知的原因大部分是无法访问的。
  2. 从Github的readme中给的磁力链接下载。如果网络通畅可以直接下载。
  3. DeepFaceLab中文论坛下载。上面有各种版本的,还有汉化的,也有一些其他的软件,但是有的帖子要查看的话可能需要先注册账号。
  4. 这里给一个写截止到2021年10月14日最新版的百度云链接:https://pan.baidu.com/s/1stYxnI5cXHhZO1NrdO9Zsg 提取码:q6u2

下载的时候看下面的安装部分选一个自己需要的包下载即可,不需要全部都下载。

入门教程

以下载集成版release包为例,其实所谓的集成也就是把依赖的库放进了目录下,运行是通过批处理文件启动的,相当于在cmd下执行了几行命令而已。用文本编辑器也可以打开看到命令是什么。

软件操作和使用很简单,看着一大堆英文批处理,总结起来就4个步骤:分解视频,切脸,训练,合成

安装

DFL入门教程1.jpg

找到适合自己显卡的版本:

  1. 30系的英伟达显卡(RTX3090,RTX3080…)使用DFL_NVIDIA_RTX3000_series
  2. 非30系的英伟达显卡(RTX2060,GTX1080,GTX1660等)使用DFL_NVIDIA_up_to_RTX2080Ti_2021
  3. 其他比如AMD显卡,使用DFL_DirectX12

双击.exe文件。

DFL入门教程2.jpg

选择安装路径,建议放在C盘以外的磁盘,路径尽量不要包含中文等特色字符。

DFL入门教程3.jpg

单击Extract开始解压软件。

软件安装本质上只是解压而已。如果报毒,添加信任放行即可。
依赖安装:依赖的意思就是使用这个软件之前必须要先安装的软件,DFL集成板的唯一依赖就是显卡驱动。所以你只需要更新驱动即可使用此软件,CUDA和CUDNN不是必须的,因为它们已经被放在了DeepFaceLab的目录下。

目录介绍

DFL入门教程4.jpg

软件解压完成后会出现一个叫DeepFaceLab_NVIDIA_up_to_RTX2080Ti的文件夹(3系显卡略有不同),里面有一个workspace,我们需要的文件都会在这里。这个文件夹下面有三个文件,两个视频,代表的意义如上图! 需要换自己的视频,只需要把这两个MP4换成自己的就好了。
软件运行过程中,在Data_dst 和data_src 中里面还会产生一个aligned的文件,里面会放置提取到的人脸图片,比较重要!

流程介绍

进入软件目录后会发现很多以.bat结尾的文件,叫批处理文件。此类文件在window系统下可以直接双击运行。

DFL入门教程5.jpg

软件使用的大概流程是:
1. 把视频转成图片
2. 从图片中提取头像
3. 用头像训练模型(模型相当于…..)
4. 用训练好的模型实现图片换脸
5. 把换好脸的图片合成视频!
搞定。

具体的流程如下:

清空目录

1) clear workspace.bat
慎点,会清空data_src,data_dst,model文件夹

把源视频拆分成图片

2) extract images from video data_src.bat

DFL入门教程6.jpg

开头两个回车,等待,出现Done即表示处理成功。FPS :表示帧率,可以按回车默认,也可以输入一个数字。 Format代表图片格式,可以选JPG或者PNG,默认PNG。

DFL入门教程7.jpg

处理完成后,data_src文件夹下面会出现很多图片,这些图片就来自data_src.mp4视频。

把目标视频拆分成图片

3) extract images from video data_dst FULL FPS.bat(把目标视频拆分成图片)

一个回车,等待一段时间,看到Done表示结束。与上一步类似

DFL入门教程8.jpg

处理完成后,data_dst文件夹下面会出现很多图片,这些图片就来自data_dst.mp4视频。

从源图片中提取人脸

4) data_src faceset extract.bat(从源图片中提取人脸,也叫切脸)

DFL入门教程9.jpg

两个回车,显示进度条,最后会显示发现的图片和提取到的人脸数量。 GPU index 是针对多卡用户,单卡用户直接回车。 Debug Image 一般不需要,默认回车即可。

DFL入门教程10.jpg

操作成功后,data_src/aligned 文件夹下面会出现唐尼的头像。

从目标图片中提取人脸

5) data_dst faceset extract.bat (从目标图片中提取人脸)

DFL入门教程11.jpg

和上一步类似,只是少了一个参数Debug Image,其实是默认就启用了这个参数。

DFL入门教程12.jpg

操作成功后,data_dst/aligned文件夹下会出现希亚·拉博夫的人头。在data_dst下面会出现一个aligned_debug文件夹。

DFL入门教程13.jpg

打开里面的图片大概就是这个样子,作为新手看看就好了,不影响你后面的步骤。

训练模型

6) train Quick96.bat (训练模型,耗时,不会自己结束)

DeepFaceLab是基于深度学习的软件,而深度学习基本都会涉及到一个叫“模型”的东西。 模型就像是提炼出来的仙丹,可以理解为易容丹。 炼丹自然不是一件简单的事情,而且特别耗时间,还需要好丹炉,好药材。这一部至关重要。

DFL入门教程14.jpg

打开这个步骤后,需要先输入模型的名字。然后选择显卡,如果没有意外,就会出现③中的一行一行跳动的数字,代表已经开始炼丹。其中的Quick96表示模型的类型,除此之外还有SAEHD模型,SAEHD模型做出来的视频质量更好,但是要求的配置更高! SAEHD模型的训练类似,选择 6)train SEAHD.bat即可。

15.jpg

开始训练模型后,还会跳出一个新的窗口预览窗口,上面有使用帮助,迭代历史,迭代次数,还有五列头像。第一列和第二列是源头像,第三列和第四列是目标头像,第五列是最终头像。1,3 是参考标准,2,4,5是生成的头像,生成头像越来越接近参考标准,就证明模型越来越好。

当鼠标点击这个窗口后,在英文输入法下,可以使用快捷键。

P:刷新预览图
S:保存模型
Enter :保存模型,然后退出!

DFL入门教程16.jpg

退出后再次点击train Quick96.bat 可以继续训练,进度不会丢失。 继续训练的时候需要选择模型,选择显卡,然后同样会显示一行数字,跳出预览窗口。

DFL入门教程17.jpg

随着时间的推移,2,4,5列头像会越来越清晰,如果你觉得够清晰了,就可以关闭窗口,进入下一个步骤。

图片换脸

7) merge Quick96.bat (图片换脸)

DFL入门教程18.jpg

这个步骤,有两种方式。Use interactive merger? 输入y启动交互式转换器(默认为y), 输入n为普通的命令行。我这里先输入:n,回车,继续回车选择模型,继续回车选择显卡。在此之后,还会有非常多的参数需要输入,一律按回车!

回车到不能回车之后,就会自动开始转换过程。过程中会显示百分比,当到达100% Done 就代表转换结束。

DFL入门教程19.jpg

此时, 在data_dst 下面会多出一个merged文件夹,文件夹里面就是已经换脸成功的图片。

DFL入门教程20.jpg

随便打开一张,大概是这个样子的。唐尼的脸已经换上去了。边缘之所以有些生硬,是因为我们全部使用的默认参数。适当调整可以改善,具体调整方法与之前版本类似。

 DFL入门教程21.jpg

另外一种方法:Use interactive merger? 输入y 或者直接回车。此时进入交互式界面的帮助窗口,上面写着调整合成参数的快捷键,考验手速和记忆力的时候到了。通过按键盘上的Tab键可以进入预览界面。

DFL入门教程22.jpg

在预览界面上,按对应的快捷键就可以调整效果。调整方法和老版本基本类似。 自动合成的快捷键调整成了shift+>

把图片合成视频

8) merged to mp4.bat (把图片合成视频)

DFL入门教程23.jpg

这一步的功能是把已经换脸成功的图片合成视频。打开后有一个参数:码率。可以直接默认,默认情况下码率很高清晰度最高但是合成文件非常大,也可以输入特定的值比如:3 。

DFL入门教程24.jpg

这个步骤并不会消耗太多时间,结束后在workspace下面可以看到一个叫result.mp4的文件。

 DFL入门教程25.jpg

文本仅做基础介绍,一些新增的特性,新增的参数,进阶教程可上DeepFaceLab中文论坛以及DeepFaceLab Github主页去看。