网站上的小白入门系列教程是基于2019.3.13的版本而编写,有部分内容已经发生了变化。而目前比较稳定的版本为620,这个版本保持了很长一段时间,并没有发现什么大问题,用着挺好。所以我决定针对这个版本从新写一个使用教程。(哭,写了几天项目作者开始疯狂更新版本….不过没关系620还是值得拥有!)
这个教程主要是为了把一些更新的内容囊括进来,不会像小白入门那么细致,但是我会尽量写的通俗易懂。
1. DeepFaceLab的安装
软件安装部分可以参考之前的教程,是一模一样的,核心要点只有一个:更新驱动(鲁大师, 驱动精灵,去英伟达官网下载都可以)。
2.DeepFaceLab小版本的选择
另外一个需要提前说明的问题是,关于小版本的选择的问题。
DeepFaceLab每一次发布都是4个小版本。
- 10.1AVX: N卡推荐这个,AVX值得是CPU的指令集,一般新的CPU都支持这个指令集。
- 10.1SSE: 如果你是N卡,但是CPU不支持AVX,那么可以选择这个版本。
- 9.2SSE: 这个版本CUDA是9.2, 其他同上。如果没有特殊原因还是建议使用10.1版
- OpenCLSSE: 针对AMD显卡和CPU用户。
3.DeepFaceLab的基本流程。
DeepFaceLab虽然更新了很多版本,但是基本流程没有变。
主要是还是一下几个步骤:
- 提取脸图
- 训练模型
- 图片转换
- 合成视频
4.DeepFaceLab H64使用举例。
DeepFaceLab软件自带了5个模型,H64,H128,DF,LIAEF128,SAE 。 每个模型都有自己的特色,这里不展开说。
其中H64是一个经典模型,几乎所有的AI换脸软件都支持这个模型,我还是以这个模型为例来演示。
2) extract images from video data_src (SRC视频转图片)
3.2) extract images from video data_dst FULL FPS(DST视频转图片)
4) data_src extract faces S3FD best GPU (提取SRC人脸图片)
5) data_dst extract faces S3FD best GPU (提取DST人脸图片)
6) train H64(训练模型,不会自动结束,耗时久)
7) convert H64(图片换脸)
8) converted to mp4 (将图片合成视频)
所有步骤中记住一个点,如果停住了就按回车,有的时候需要按很多次。只有第六步没法按回车结束的。
第六步关闭的方法有两种,
一种直接把窗口关掉,右上角xx,大家都懂的。
另一种,在预览窗口回车(竟然还是回车…)
5.DeepFaceLab 步骤详解。
开始前,先说下我的基本配置和Workspace。
我的配置配置
系统:window10 ,
DFL: DeepFacelab10.1AVx 620,
CUDA: CUDA10.1 ,
显卡: GTX 1070 8G
Workspace介绍
workspace翻译过来就是工作空间,很多编程工具和设计类软件都有这个概念。这个目录就是用来放置素材和结果文件的。
软件自带了这个文件夹,文件夹里面有两个视频,三个目录。
分别是:data_dst , data_src ,model , data_dst.mp4,data_src.mp4.
在运行软件的过程中还会生成图片和视频。这些文件和目录是干嘛的我会在下面的详细步骤中一一说明。
这里重点说一下这两个视频,src视频可以称为源视频,dst视频称为目标视频。
换脸的过程就是把src视频中的人脸放到dst视频的身体上。
下面开始具体的操作。
2) extract images from video data_src
双击以上脚本,跳出一个黑色窗口,你需要输入帧率(推荐:10),选择输出格式(推荐jpg) 。 输入一个,按一下回车。
稍等片刻即可完成,英文版会有Done的提示,中文版看各自的翻译了,完成按任意键即可退出。执行成功,workspace/data_src下面会产生很多图片,如下图:
3.2) extract images from video data_dst FULL FPS(DST视频转图片)
这个步骤和上面的非常类似,只是这一次操作的是data_dst.mp4这个视频。
这一步中只要要输入jpg回车即可,等待一小段时间后,出现完成提示,即可关闭窗口。
此时,workspace/data_dst中出现了好多图片。
4) data_src extract faces S3FD best GPU
这一步骤的操作是,从图片中提取人脸,也叫切脸。主要分三个阶段,第一阶段和第二阶段是主要使用GPU,第三阶段使用CPU。
注意:第一次使用的时候第一阶段会停留 比较常的时间,这是正常现象!
操作成功后会显示处理了多少图片,提取到多少头像。同时,workspace/data_src/aligned 下面会产生很多头像。这个头像是非常关键的。
这一个环节需要注意两个点:
1. 如果驱动太老会报错,
2. 第一次运行这个步骤会特别慢,中途会有类似卡死的错觉,你只要等等即可。
5) data_dst extract faces S3FD best GPU
这一步和上一步一样的操作,只是对象不一样而已。
6) train H64.bat
这是一个核心步骤,并且是最特殊一步,他不会自动结束。第一次启动会提示你输入若干个参数,作为新手,可以直接回车回车回车,这样就会使用默认参数启动模型。
模型启动后,workspace/model 目录下会出现5个文,这就是模型文件。
参数配置完成后,软件会加载第四步和第五部提取出来的头像,用来训练模型。模型启动后,底部会出现时间和一些跳动数字。同时跳出一个新的窗口。上面会有很多头像。
刚开始如上,只有两列头像,其他区域为灰色。
在这个窗口上按P或者等待十几分钟之后预览图会刷新,第三列和四五列出现头像。随着时间的推移,这些头像会从模糊变清晰。
因为这个步骤不会主动停止,所以让很多新手产生了一个困惑:我到底应该在什么时候关闭? 关闭后还能继续么?
首先,关闭后是可以继续的,软件会定时自动保存进度,下次用同样的方式启动后会自动加载之前的进度和配置。
其次,你可以通过两个依据判断是否可以停止这个步骤了。
第一:直接看图片,你认为第一列和第二列,第三列和第四列,已经够清晰了。
第二:看黑色窗口中跳动的数字,最后两个数字接近0.2 就差不多了。
7) convert H64
这个步骤主要实现图片换脸。参数是比较多的。新手可以一路回车到底,全部默认。
参数配置完成后,转换程序就会开始共工作,同时以百分比的形式显示转换进度。
转换过程中,workspace/data_dst/merged 下面会生成图片。这个图片就是已经换完脸的图片。
从中选一张,打开一看。托尼的脸已经被放到变形金刚男主角的身体上。因为我的训练时间非常短,所以效果一般。如果需要好的效果,可以增长训练时间。
8) converted to mp4
这一步主要是将已经换好脸的图片合成成视频,一般是合成mp4格式的视频。
合成视频的时候需要输入一个视频码率,原版默认值为16,这样会导致合成是视频非常大。
这里推荐输入3,在保证清晰度的情况下,文件也不会很大。
结束后,workspace下面会出现一个result.mp4的文件。这样整个换脸过程就结束了。
打开视频即可播放,和Fakeapp相比,DFL优点很多,比如清晰度更高,合成的视频带音轨,无水印。
写文章也是挺累的,边操作边截图,写完还得改错别字,能不能写个提纲,让AI来完成呢?
--------------------------------------------------------
更多关于 AI换脸,Deepfakes, Fakeapp的问题可以去 Deepfakes中文网。
公众号:托尼是塔克