FlashFace

文章的核心idea就是利用了一个类似ControlNet的网络去提取并融合特征,其用一个与原模型一样的模型,将人脸图像输入模型中,然后将UNet中的上采样层中self-attention层后的特征存储起来作为参考的人脸特征。 在生成过程中,当特征经过上采样层时,与人脸特征进行融合,其使用额外的attention操作,原特征作为Q,将多个人脸的特征与原特征进行拼接作为K和V,以此完成特征的融合。在生成过程中,作者还在隐空间增加了一个人脸的mask(不知道有啥用,文章也没提)。 感觉文章很多地方没有讲清楚,首先是Face ReferenceNet的text部分如何处理?其次是Face Position Mask有什么用,增加了通道数不应该对原模型进行修改吗?最后就是特征融合时,到底是怎样的一个具体的网络结构(attention层加在哪里),文章没有提到。总之,该文章的特征融合方式是值得学习的地方。其展示的效果也比较不错。 值得注意的是,该方法对所有的结构都进行了训练。并且其使用的数据是那种一个ID对应多张图片的数据集。其使用了一个Paste指标:与参考图像的相似度-与目标图像的相似度,该指标越高反映其生成的图像越像贴图。
  • 数据:自己收集的2w+ID的1.8million张图像的数据集
  • 指标:与参考图像的相似度;与目标图像的相似度;文本对齐度;Paste;FID
  • 硬件:8 A100/bs32
  • 开源:https://github.com/ali-vilab/FlashFace