---------广告部分----------
ai换脸教学中文视频教程短视频deepfacelab
http://nicethemes.cn/product/view50.html
---------广告结束----------
欢迎进入本教程,本教程不定期更新,当前版本更新时间为:2018/12/27
全国最大DeepFakes QQ群:
群内须知注意看一下,玩换脸尽量自学,我是被你们这群小白烦死了才花了好几小时写了这篇文章……
四款换脸软件介绍
FakeAPP Faceswap Openfaceswap Deepfacelab
四款软件的简介
名称 | FakeAPP | Faceswap | Openfaceswap |
Deepfacelab (集成环境版) |
---|---|---|---|---|
简介 |
可能是国内网络传播最广的换脸软件 GUI最为亲切但是2.2版本很差 |
开源软件 后期版本有GUI 源码玩家可以修改测试 |
Faceswap的GUI套壳版 后期好像停更且作者网站跳转到Deepfacelab页面上 |
目前最好玩的换脸软件 依旧不是完美 |
环境 |
Visual Studio Python CUDA+CUDNN FakeApp内核 |
Visual Studio Python CUDA+CUDNN |
CUDA+CUDNN |
无要求 (但和前三个一样要显卡驱动) |
四款软件的使用感受
我曾以为Deepfacelab全DOS模式会让新手很郁闷,但是我在新浪微博上面发了新手教程后,群内新手都表示LAB很好玩而且不容易出错,只不过他们还是不太会修改Batch Size之类的参数。
四款软件作者页面链接
FakeAPP 作者网站不好找,最新版还不一定好,主流版本还是1.1和2.2,链接为Baidu搜索
Faceswap GitHub上经常更新,新版不兼容旧版MODEL,使用时候请注意
Openfaceswap 作者的论坛已消失,点进去就自动跳转到Deepfacelab的GitHub页面
Deepfacelab GitHub上有介绍,介绍文末处有论坛链接可以下载集成环境版
Deepfacelab 新手教程
(在开始前建议使用Chrome浏览器,因为访问流畅,并且自带谷歌翻译,不管是去下载东西还是去学习教程,翻译都是有很大帮助的)
下载Deepfacelab软件包
-
https://github.com/iperov/DeepFaceLab 拉到文末,有一个俄文论坛链接
或者直接点击进入这个论坛链接:https://rutracker.org/forum/viewtopic.php?p=75318742 - 下载时候有两个包,一个是CPU版本,一个是正常版,我不知道CPU版本干什么用的,CPU运算应该是非常慢的。如果不需要CPU版本的话下载时候取消CPU版本的勾选好了。
-
解压开你会发现Deepfacelab文件夹内有两个文件夹,和一堆BAT文件,下面请看我的介绍:
上图这张图是大概2018年6月的版本的列表,目前新版和旧版总体BAT不会差太多。
另外你如果玩熟练了你可以自己弄一些拿到前面来,这样会很方便:
我自己挑出来的这些像排序部分,有些是要自己修改BAT内容的。
记住,BAT是可以修改的,这些只是送你的案例而已。
让我们开始换脸操作
所有软件对应的两边素材:
A即DST 就是原版的视频素材,就是不要脸要身体的素材
B即SRC 就是要使用到的脸的素材
AB的软件一般都可以互换方向,但是总体操作都是B脸放A上,SRC脸放DST上
DST和SRC素材都可以是图片或者视频
换脸软件的操作是通过SRC脸图集,运算出MDOEL,然后放到DST序列图上,最后把DST序列图连接为视频
新手操作流程:
- 【手动】把DST视频放到“workspace”文件夹下,并且命名为“data_dst”(后缀名和格式一般不用管)
- 【手动】把SRC素材(明星照片,一般需要700~1500张)放到“workspace\data_src”下
- 【BAT】分解DST视频为图片(需要全帧提取,即Full FPS),BAT序号3.2 你会看到“workspace\data_dst”下有分解出来的图片
- 【BAT】识别DST素材的脸部图片,BAT序号5 有DLIB和MT两种分解方式,一般情况建议DLIB,具体差别什么自己摸索,这够说一篇文章的了,网上可以查
- 【BAT】识别SRC素材的脸部图片,BAT序号4 同上
- 【手动】第4步和第5步分解的人脸素材在“workspace\data_dst\aligned”和“workspace\data_src\aligned”内,你需要把这些人脸不正确识别的内容删除,否则影响MODEL训练结果,如果脸图特别小,或者翻转了,那么基本判定为识别错误,但是要说明的是,DST脸超出画面的半张脸需要留着不要删除,SRC脸超出画面基本没用,直接删除吧
删除SRC错误脸图前可以使用BAT4.2系列的排序,直方图排序和人脸朝向排序可以较为方便地找出错误人脸,这属于进阶内容,具体不给教程,有需要自己Baidu翻译一下。
- 【BAT】现在你已经有DST的序列帧(图片)素材和SRC的脸部(图片)素材了,你需要运行MODEL训练,BAT序号6 一样也是有好多种MODEL,目前建议新手直接跑H128的MODEL(除非你的显卡比较差,那就跑H64)其他MDOEL算法请看GitHub上的介绍
跑MODEL是可以中断的,在预览界面按回车键,软件会自动保存当前进度,MDOEL文件在“workspace\model”下,不同的MODEL不会重名,建议定期备份MODEL,并建议SRC专人专用MODEL
-
【BAT】上面MODEL如果是第一次跑,可能需要10+小时才有合理的效果,结束训练后请运行MODEL导出合成图,BAT序号7 这里就根据你的MODEL类型来运行就好了
※ 这里会出现一个问题就是软件会在DOS界面给你好多好多选项,请跳掉文章下面部分学习 - 【BAT】导出图片后需要把图片转成视频,那么就运行 BAT序号8 就行了,根据你要的最终格式来定
下面讲步骤8导出合成图的选项
所有选项直接按回车即使用标注的默认选项(default)
第一个问答是问你要哪个合成模式,可以理解为:
1、普通
2、普通+直方图匹配
3、无缝(默认)
4、无缝+直方图匹配
可能每个视频需要的效果都不一样,一般情况我个人建议用:1普通
第一个问答结束后后面有一堆问题,具体作者给了说明:
出来的图片位置在“workspace\data_dst\merged”
新手可以不调整这些参数,但不调整很可能出来结果不尽人意
调整这个?恭喜你,你已经突破新手界限了,Deepfacelab的导出时候的参数调整能力比其他三款都要好。
请注意保留源素材
不论哪款软件,流程结束后建议复制出并分类保留:
SRC素材(随便是脸图还是原图)
MODEL(丢了就浪费10小时了)
FAQ
人脸素材需要多少?
DST:尽量不要少,因为它是有限的且需要被替换的素材
SRC:根据各软件的脸图筛选规则和网上大神的建议,总体来说,SRC脸图最好是大概700~3999的数量,像Deepfacelab的作者,他就认为1500张够了。对于SRC,各种角度、各种表情、各种光照下的内容越多越好,很接近的素材没有用,会增加训练负担。
手动对齐识别人脸模式如何使用?
回车键:应用当前选择区域并跳转到下一个未识别到人脸的帧
空格键:跳转到下一个未识别到人脸的帧
鼠标滚轮:识别区域框,上滚放大下滚缩小
逗号和句号(要把输入法切换到英文):上一帧下一帧
Q:跳过该模式
老实说,这个功能极其难用,画面还放得死大……
MODEL是个什么东西?
MODEL是根据各种线条或其他奇怪的数据经过人工智能呈现的随机产生的假数据,就像PS填充里的“智能识别”
你可以从 https://affinelayer.com/pixsrv/ 这个网站里体验一下什么叫MODEL造假
MODEL使用哪种算法好?
各有千秋,一般Deepfacelab使用H128就好了,其他算法可以看官方在GitHub上写的介绍:https://github.com/iperov/DeepFaceLab
Batch Size是什么?要设置多大?
Batch Size的意思大概就是一批训练多少个图片素材,一般设置为2的倍数。数字越大越需要更多显存,但是由于处理内容更多,迭代频率会降低。一般情况在Deepfacelab中,不需要手动设置,它会默认设置显卡适配的最大值。
根据网上的内容和本人实际测试,在我们这种64和128尺寸换脸的操作中,越大越好,因为最合理的值目前远超所有民用显卡可承受的范围。
新手建议自动或从大的数值减少直到能够正常运行(比如128→64→32→16…),具体操作方法是在MODEL训练的BAT中添加一行:
@echo off call _internal\setenv.bat %PYTHON_EXECUTABLE% %OPENDEEPFACESWAP_ROOT%\main.py train ^ --training-data-src-dir %WORKSPACE%\data_src\aligned ^ --training-data-dst-dir %WORKSPACE%\data_dst\aligned ^ --model-dir %WORKSPACE%\model ^ --model H128 pause
上面是原版,需要加一行“–batch-size ?”并不要忘记上一行的“^”,如下:
@echo off call _internal\setenv.bat %PYTHON_EXECUTABLE% %OPENDEEPFACESWAP_ROOT%\main.py train ^ --training-data-src-dir %WORKSPACE%\data_src\aligned ^ --training-data-dst-dir %WORKSPACE%\data_dst\aligned ^ --model-dir %WORKSPACE%\model ^ --model H128 ^ --batch-size 4 pause
MODEL训练过,还可以再次换素材使用吗?
换DST素材:
可以!而且非常建议重复使用。
新建的MODEL大概10小时以上会有较好的结果,之后换其他DST素材,仅需0.5~3小时就会有很好的结果了,前提是SRC素材不能换人。
换SRC素材,那么就需要考虑一下了:
第一种方案:MODEL重复用,不管换DST还是换SRC,就是所有人脸的内容都会被放进MODEL进行训练,结果是训练很快,但是越杂乱的训练后越觉得导出不太像SRC的脸。
第二种方案:新建MODEL重新来(也就是专人专MODEL)这种操作请先把MODEL剪切出去并文件夹分类,这种操作可以合成比较像SRC的情况,但是每次要重新10小时会很累。
第三种方案:结合前两种,先把MODEL练出轮廓后,再复制出来,每个MODEL每个SRC脸专用就好了。
我有问题我如何向你提问?
我有问题我如何向你提问?
我有问题我如何向你提问?
不,你不要提问,你提问我也不能马上回答你,或者甚至有时候我懒得回答。
那么怎么办?很简单,进入全国最大DeepFakes QQ群:
群内须知注意看一下,玩换脸尽量自学,我是被你们这群小白烦死了才花了好几小时写了这篇文章……