整个换脸过程中模型是最重要的一部分,耗时久,调优难,很多人虽然一直在跑模型,却并不知道每个模型的特点。

我也常常被问及:

到底用哪个模型换脸效果最好?

H128和DF有什么差别?

H64和H28有什么不同?

SAE是最好的吗?

全脸和半脸是什么意思?

等等问题。

今天,就专门写一篇文章,来统一解答这些疑问。

首先,来说说每个模型的特点。

H64模型

H64模型也被称为经典模型/原始模型(original),DeepFakes早期就是靠这个模型名震江湖,后来的FaceSwap,DeepFaceLab,Fakeapp都包含这个模型。

相比其他模型,这个模型速度最快,对系统的要求最低,但是同时效果也是比较差的一个。其中64代表的是头像的大小为64px *64px。 这是什么意思呢?这个意思就是,如果你需要替换的头像大小为64像素那么就刚刚好,如果你的视频脸特别大,那么不管你练多久,最终合成视频脸部肯定是模糊的。 H64轻量级最低显存要求为2G,H64默认参数需要3G。

H128模型

这个模型和H64的内部结构是完全一样的,唯一的差别就是像素不一样,简而意之就是能处理脸的大小不一样。这个模型对应的像素为128*128,能应对大部分远景和中景镜头,部分特写镜头也能勉强处理。所以他的好处非常明显,缺点嘛自然是需要更久的时间,更大的显存。H128轻量级需要4G显存,H128默认参数需要6G显存(5G+)。

DF模型

DF的结构和H64以及H128其实也是一样的。唯一不同的地方是DF为全脸模型(Full Face),像素为128*128 ,  使用该模型换出来的脸一般来说比H128更像,因为脸部面积大,但是兼容性更差,边缘问题突出。 显存要求为5G+

LIAEF128模型

LIAEF128模型的大小和DF一致,同样为全脸模型。但是内部结构有所不同,所以这个模型和前面的模型有本质的不同。LIAEF128能使换脸目标发生一定的形变,以解决换脸生硬的问题,以及一些边缘问题,和轻微遮挡的问题。但是形变容易导致相似度降低,你可能会看不出来谁换了谁。

SAE模型

各大换脸软件基本都是基于以上模型。但是DeepFaceLab却多出了一个模型SAE。按作者的说法,这是一个超级模型。其实从本质上来说,这并不是一个独立的模型,这是一个建立在上面所有模型之上的模型。通过SAE的参数配置,可以配置出以上各种模型。

也就是SAE最大的优势在于“参数可以配置” 。这个模型是DFL主打的模型,可玩性非常高,参数非常多,可以调优的空间也非常大。你可以自定义模型(DF/H/LIAEF,脸型(Half/Full),像素(64/128/256,稍微魔改可以512) ,还有N多参数可探索。

同时有几个缺点,容易崩溃,默认参数合成效果不理想(面具),跑起来特别慢,对系统要求最高。

看了几个模型的异同,大家应该有一个比较好的认识了。关于如何选择模型,你可以参考一下几个点。

  1. 我的配置,不同配置选不同模型。
  2. 我的耐心,不同耐心选不同模型。
  3. 我的追求,不同追求选不同模型。
  4. 我的场景,不同长选择不同模型。

这几点,不展开说了,其实就是从,时间,配置,效果之间做一个权衡。也就是说没有绝对好的模型,也没有绝对差的模型,只有合适的模型。这也是为什么有那么多模型并存的原因。

当然,不管你用什么模型,训练起来都不是那么简单,都需要有极大的耐心和恒心。

全脸和半脸的差别

最后来说说全脸(Full Face)和半脸(Half Face)。 对于这个概念很多人一知半解,很多人有根本性的误解,其实主要是怪这个名字取得不好。说真像之前,先来说说两种误解。

第一种: 全脸包含眉毛,半脸不包含眉毛,所以为了换眉毛我选DF

第二种:全脸是整张脸, 半脸是左边一半脸或者右边一半脸。

这两种都是错的,一个认为是垂直方向的一半,一个认为是水平方向的一半,都是被这个名字给误导了。

其实他是从内向外的一半。曾经有一个灵魂画手用一张图解释了两者的差别。

我不擅长画画,我就用齐天大圣孙悟空来做一个解说吧。所谓半脸就是猴哥“不长毛”的部分,全脸就是整张脸(不包括额头)。 就是这么简单!!!

DeepFaceLab进阶:H128,DF,SAE模型有何不同?哪个最好?的更多相关文章

  1. DeepFaceLab进阶(4):通过Colab免费使用Tesla K80 跑模型!

    当学会了换脸软件DeepFaceLab基本使用,各种参数配置,各有优化技能之后.唯一约束你的可能是电脑配置. CPU能跑,但是慢到怀疑人生,低配模型都得跑一周 低配显卡,显存不够,H128 根本就跑不 ...

  2. TensorFlow进阶(六)---模型保存与恢复、自定义命令行参数

    模型保存与恢复.自定义命令行参数. 在我们训练或者测试过程中,总会遇到需要保存训练完成的模型,然后从中恢复继续我们的测试或者其它使用.模型的保存和恢复也是通过tf.train.Saver类去实现,它主 ...

  3. Django进阶Model篇002 - 模型类的定义

    一.创建数据模型. 实例: 作者模型:一个作者有姓名. 作者详情模型:把作者的详情放到详情表,包含性别.email 地址和出生日期,作者详情模型与作者模型之间是一对一的关系(OneToOneField ...

  4. DeepFaceLab 模型预训练参数Pretrain的使用!

    Pretrain参数是20190501版本才加入的参数,作者加入这个参数的目的应该是提升模型的训练速度和增强适应性.具体有哪些提升,需要大家去摸索,我这里分享一下自己的使用过程. ​ 这个参数仅针对S ...

  5. AI换脸教程:DeepFaceLab使用教程(2.训练及合成)

    如果前期工作已经准备完毕(DeepFaceLab下载(https://www.deepfacelabs.com/list-5-1.html),然后安装相应的显卡驱动,DeepFaceLab使用教程(1 ...

  6. 揭秘Keras推荐系统如何建立模型、获取用户爱好

    你是否有过这样的经历?当你在亚马逊商城浏览一些书籍,或者购买过一些书籍后,你的偏好就会被系统学到,系统会基于一些假设为你推荐相关书目.为什么系统会知道,在这背后又藏着哪些秘密呢? 荐系统可以从百万甚至 ...

  7. django框架基础-ORM进阶-长期维护

    ###############    ORM进阶---contenttype    ################ 设计思路: """ 路飞有两种课,专题课和学位课, ...

  8. DeepFaceLab620稳定版使用过程详解!

    网站上的小白入门系列教程是基于2019.3.13的版本而编写,有部分内容已经发生了变化.而目前比较稳定的版本为620,这个版本保持了很长一段时间,并没有发现什么大问题,用着挺好.所以我决定针对这个版本 ...

  9. GTX 750等低配显卡如何玩转Deepfakes?

    这里说的Deepfakes软件还是DeepFaceLab,人工智能换脸,是使用深度学习方法来实现的.而深度学习程序对电脑配置要求是非常高的,尤其是跑模型这个环节.很多低配电脑,根本就跑步起来.比如像G ...

随机推荐

  1. 第二十二篇 jQuery 学习4 内容和属性

    jQuery 内容和属性   这节课,我们学习使用jQuery来控制元素的内容.值和属性.   html() 控制所选元素的内容(包括HTML标记): text() 控制所选元素的内容: val() ...

  2. 目录:Matrix Differential Calculus with Applications in Statistics and Econometrics,3rd_[Magnus2019]

    目录:Matrix Differential Calculus with Applications in Statistics and Econometrics,3rd_[Magnus2019] Ti ...

  3. Session的生命周期和工作原理

    一.什么是Session,如何使用?Session是用于存放用户与web服务器之间的会话,即服务器为客户端开辟的存储空间. 由于客户端与服务器之间的会话是无状态的机制,Session则可用于关联访问, ...

  4. 时间切片分割long work

    思想 时间切片的核心思想是:如果任务不能在50毫秒内执行完,那么为了不阻塞主线程,这个任务应该让出主线程的控制权,使浏览器可以处理其他任务.让出控制权意味着停止执行当前任务,让浏览器去执行其他任务,随 ...

  5. jquery做的滑动按钮开关

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. shell脚本中的一些特殊符号

    在shell中常用的特殊符号罗列如下:  # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $*  \"string\"* **  ...

  7. 架构师成长之路5.3-Saltstack配置管理(State状态模块)

    点击架构师成长之路 架构师成长之路5.3-Saltstack配置管理(State状态模块) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要 ...

  8. poj2166 Heapsort[构造递推]

    构造一个n个点的大根堆让全部弹出时交换位置次数最多. 真心佩服我自己智商,这种题都做不出来 交换是在每次弹出堆顶,然后把堆尾元素置于堆顶,然后向下调整时产生的.玩样例可以发现似乎数字1每次都出现在堆最 ...

  9. 【洛谷P3957】跳房子

    题目大意:给定一个数轴和 N 个点,点有点权,现从 0 位置出发,初始时每次只能走 d 的距离,可以在数轴上任意位置停下,此时,会得到一个点权和.现允许支付 x 的费用,使得每次可以走的距离为一个范围 ...

  10. Linux下Discuz!7.2 LAMP环境搭建

    linux下Discuz LAMP环境搭建 1.需要的源代码 httpd-2.2.15.tar.gz          mysql-5.1.44.tar.gz     php-5.3.2.tar.gz ...