一个新的换脸软件FaceFusion#
警告
2024年2月6日
今天仔细看了一下FaceFusion默认的内置模型,是inswapper_128.onnx. 这是个基于扩散模型的换脸模型。类似于Stable Diffusion里的图生图功能。我之前关于它主要是使用3D重建技术的推测应该是错的。其实这一点从它的名字 FaceFusion 也可以看出来,拥有和Stable Diffusion一样的 -fusion 后缀。
写于2023年12月24日
昨天在Github上游荡,突然发现一个全新的换脸软件。名字叫FaceFusion.
图片来自FaceFusion官方doc#
Slogan非常的嚣张,“Next generation face swapper and enhancer”! 什么实力啊。
作为一名老AIGC爱好者,曾在7年前就用FaceSwap对当时刚拍完流浪地球1的赵金麦进行了换脸(纯绿色健康),很快啊,我啪的一下就下载安装了这个Next generation的FaceFusion。
AI换脸的His-story.#
话说上古时期(大约是2015前后),当时算力还不怎么充足,但一些AI研究课题组和公司已经做出了不小的成就。例如翻译,人脸识别,AlphaGo之类的。
突然有一天,一个很特殊的应用领域换脸闯入了大家生活。当时给社会公众的震撼不亚于最近第一次GPT-3出来。刚高中毕业的我,犹记得首先被换的就是刘亦菲和迪丽热巴,可见程序员心中的女神大概是什么样的。
现在还有人以此为证据说,迪丽热巴因为是换脸领域的No.1,所以理所应当是最漂亮的(或说符合男性审美的)。其实我以为不然,仔细考据可以发现,主要是中文Ai换脸领域的大佬滚石带头训练了一个迪丽热巴的模型。众所周知,模型是可以复用的,这个(以及随后的几个版本)的迪丽热巴模型被广泛使用,造成了迪丽热巴泛滥。在各种换脸领域你都能看到迪丽热巴。
这件事也可以告诉我们,做研究不一定要随大流,当时我训练的赵金麦模型因为我硬件烂,也没什么经验精力,最后就放弃了。不然说不定现在会有人说赵金麦就是国内第一女神。
关于迪丽热巴模型的效果,可见如下图和链接。图中第一列为原脸,第三列为用AI模型生成的脸:
图片来自下方第二个链接,如有侵权请联系我删除,无任何商业目的#
话说回技术,其实换脸并不算一个特殊的神经网络模型,而应当认为是一系列模型的组合使用。因此,如果你尝试了AI换脸,你会需要以下技术:人脸识别(确定脸的位置),图像分割(把脸和头发丝,眼镜等分开),3D重建,GAN(做进一步的细化),外加上一些图像处理、视频剪辑的技巧。
最早把这些技术集成的两开源团队,便是FaceSwap和DeepFaceLab(以下简称DFL),FaceSwap的安装和使用相对小白一些,有GUI(用户图形界面);DFL则主要用bash脚本或bat脚本(取决于平台)来使用。如果你问专业人士,大部分会建议你用DFL,因为它效果好,并且可操作性高。可以这样来理解——因为AI换脸并不是一项成熟的技术,其中的各个组分都可以再做升级,因此,如果有某个大神改进了一些方面,你可以把它集成到DFL里面,或者,把一些好用的工具仅作为外部软件,配合DFL使用。对FaceSwap则不然,因为它集成度相对高,不利于直接DIY。另外,有不少评测指出FaceSwap的效果不如DFL,在此则不赘述了。
如上图中的木兰模型所示,bug4dfldata团队提供了一系列的ICE算法,从其结果图来看确实有不错的效果。
换脸的近期情况#
然而,从另一方面来说,DFL已经有两年没有重大更新了,这几天查看甚至仓库已经归档了,issue里足有500多个没有close的讨论。而FaceSwap则保持着每隔几个月还有一些更新的动作。
尽管在这期间在arXiv上时常有一些新的论文出来,不过公开了源代码的却寥寥无几,点名批评有些在摘要里说Source code and weights will be publicly available, 但实际上翻来翻去啥也没有的1例如上周刚看见的https://arxiv.org/abs/2312.10843v1, 当然可能是我菜了没看见...如果朋友们找到了可以戳我一下。。我想这其中并不只是工程化的问题,因为再不济,把文中自己跑数据的source code放出来总还是可以的,也许他们真的只是想写论文,而没有想把乐趣分享给每一个人。
目前而言,除了DFL和FaceSwap以外,DeepFakes, FaceShifter, SimSwap, HifiFace等有官方或非官方的可供使用的代码,值得一试。不过基本上打不过DFL。从我个人的浅薄经验来说,DFL能够制胜的原因很大程度来自它每一个细节都可以调试,所以用户可以从网上找到很好的模型,再站在巨人的肩膀上前进。比如一些很好的图像分割模型2通常叫做Xseg模型。,可以相当精细的把眼睛,头发(甚至是很碎的碎发),反光,小贴纸,甚至是半透明液体从脸上分割开来。然后换脸的时候只需要脸对脸更换,保证了脸部训练集的低噪声。另外DFL是“单人单模型”,在有大量优质数据的前提下结果肯定不错。有一些“通用大模型”的换脸,基本上基于3D重建技术,只需要一张照片就能换,上限相对来说较低。
FaceFusion简介#
FaceFusion实际上是Roop(也是一个换脸软件,我没用过)原班人马搞的,今年10月份前后,Roop突然宣布不干了,原因是“有内部成员发布了不当的视频但没有和团队交流,被认为是严重失信”,随后,FaceFusion又很快推出,让人不得不觉得这背后水很深。实际上,不管是Roop还是FaceFusion,都是一图流的换脸,一般来说,对新人小白比较友好。但是并非对高玩就毫无意义,我认为它对数据集缺少的补充效果是大于DFL的。
根据官方教程,成功安装好FaceFusion(Windows版本)之后,发现它提供了一个很不错的WebUI(网页用户界面)。
FaceFusion成功安装后的界面。#
左边是相对重要的主选项,包括硬件选择(我只安装了CPU版本,但CUDA版本并不难搞),模型选择,线程数等等。值得注意的是,它集成了不少现有的模型(比如前面提到的SimSwap),从某种角度来说它做到了一种统一,也许某一天它能够把DFL的模型无缝衔接上去,那一天很多零散的生态可能就会像AI绘图一样联合起来的3注意绘图的InPaint功能也可以通过LoRA模型换脸。。
中间是主要的原参考图和将被替换的图。
右上角是结果预览。再下方是一些合成细节,主要涉及面部识别和合成模式。可以选择从哪个地方开始找面部,识别框大小,合成时边缘是否模糊等等。
不整那些花活,默认的就是坠吼的,我直接简单测试一下。输入是赵金麦在电视剧《开端》4这个电视剧确实好看,对我也有重要意义。中的剧照,输出是一个360度无死角的3D建模人脸5来自DFL论坛大佬无敌小金鱼的基础模型库,表情丰富,适合做测试用。
初步一测,效果感觉不错,一图流技术独有的优势,原图赵金麦并不是仰头,因此没有鼻孔数据,但是合成图很好的重构了鼻孔。这一点胜DFL和Inpaint远矣。不过,注意左边的模型我选的是一个128*128的面部模型,而一般的2k视频中人脸的大小有时也能到512*512。这个模型的大小显然不够,尽管能够通过超分辨率提升一点,但肯定不如原生模型。FaceFusion提供了其他模型,如SimSwap模型有上至512分辨率的,不过效果欠佳。目前看来最好的还是官方模型inswapper_128。希望官方努力更新,早点提供“FaceFusion inswapper XL”6知名的画图软件Stable Diffusion在今年推出了大尺寸模型SD XL,效果非常给劲。
测试效果#
话不多说,虽然已经说了很多。直接把对FaceFusion的测试结果放上来,大家一看便知。这里仍然是选取的赵金麦一张《开端》剧照做输入,输出使用的仍是上面提到的金鱼数据库。我会提出一些个人见解,仅供参考。
正常角度范围#
在正常角度范围内,FaceFusion表现不错。#
如上图所示,使用一些正常范围内的角度7我的定义是眼睛鼻子之类的都能看得到。替换,效果一般较好,左上角的眉毛处有时会有阴影,大概是因为做分割时没有很好的把刘海做区分,合成时两张脸有时候覆盖的不好。所以也可以侧面证明换脸工作流中,光是一环做的好不行,有木桶效应。不过FaceFusion看上去有大一统的念头,祝他们成功!
极限角度#
极限角度下,FaceFusion表现普通。#
我们总是期待基于3D重建技术的换脸能在极限角度下带来一些新的高度,但是可惜,大部分的出图是不能用的,有一张侧脸看似可用,但结果其实仍是睫毛长在了眼珠子上。
表情学习能力#
绷
急
乐
喜
怒
屑
盲
蔑
形容词不够了,还是玩的梗太少。#
表情上,不得不说学的还有两把刷子,强在嘴的学习能力上,该张张该闭闭,眼睛确实是难度最高的地方,虽然没有该张张该闭闭,但大致保持了这么个事。总体来说,表情学了个7成功力。
总结#
总的来说,未来可期,因为毕竟看到了inswapper模型的潜力。未来搞个分辨率更高的“大”模型肯定是很有用的。现在呢,也有点小用。要知道这个项目如果不说在Roop上的积累,算是只迭代了不到半年,很不错了。
我更喜欢它这个WebUI框架,希望以后api能更广泛的开放。尽管现在也能魔改,把其他的模型接上来,不过当然还是等一手官方靠谱。
最后,官方文档过于简单了,开局一句 Be aware, the installation needs technical skills and is not for beginners 尽显高傲,再联想到FaceFusion的slogan和之前Roop的突然解散,不得不猜测团队leader有不同寻常的价值观和道德感。我对此表示担忧。希望以后他们有人能好好写文档,毕竟分享才能带来喜悦。就像我这篇Blog一样。
平安夜了,独自测试软件,略感寂寥。打游戏去,今晚瓦必上黄金。