人工智能咨询培训老师叶梓 转载标明出处
在图像生成领域,AI技术的每一次突破都可能带来革命性的应用变革。在这样的背景下,来自香港大学和阿里巴巴集团的研究团队提出了一种名为FlashFace的新技术,旨在通过提供少量参考人脸图片和文本提示,实现个性化的人脸生成。FlashFace技术能够细致地捕捉并再现人脸的每一个细节,无论是独特的疤痕还是个性化的纹身,都能在生成的图像中得到完美呈现。即使在文本描述与参考图片存在冲突时,FlashFace仍能智能地解析并遵循语言提示,生成符合用户预期的形象。
方法
与以往的数据集不同,FlashFace为每张图片加入了个体身份注释,这允许在训练过程中对同一人的多个图像进行采样。
数据收集是整个流程的第一步,研究者们从在线平台上收集了公众人物的信息,这些人物在网上有广泛的代表性,包括演员、音乐家和其他名人。通过从IMDb、Douban、YouGov等排名平台获取这些人物的名字,研究者们构建了一个包含大量公开可获取图片的丰富数据库。为了确保收集到的图片能够覆盖人物的不同面貌,每个个体至少收集了500张图片。
数据清洗阶段的目的是去除不包含目标个体或者含有错误标签的噪声图片。研究者们使用了Retinaface-R50面部检测模型来识别图像中的所有面孔,然后利用ArcFace-R101面部识别模型来获取这些面孔的嵌入表示。通过k-means聚类算法,研究者们从最大的簇中选择中心嵌入作为目标个体的指示嵌入。接着,他们设定了一个相似度阈值(0.6),只保留了在最大簇中相似度高于这个阈值的图片,而其他簇中的图片则被过滤掉,从而有效去除了噪声。
图像注释阶段,研究者们使用了Qwen-VL视觉-语言模型来生成图像的详细描述。Qwen-VL能够理解图像内容,并提供包括人物外貌、发型、面部表情、姿势或动作、配饰、服装风格和背景环境等在内的描述。这种详细的注释有助于模型更准确地理解和生成人物特征。
数据集统计信息显示,通过这个流程,研究者们成功构建了一个包含180万张图像、涵盖23,042个个体的数据集。每个个体平均有80张图像,这为模型提供了丰富的上下文信息,使其能够学习从参考图像中识别人物特征,而不仅仅是简单地复制原始图像。研究者们还构建了一个包含200个个体的验证数据集,其余数据用于模型训练。
整个数据收集流程的设计考虑了多样性和丰富性,确保了数据集能够支持FlashFace模型在人脸个性化方面的高级性能。通过这种方式,FlashFace能够生成高保真度的人脸图像,满足各种个性化需求。
FlashFace框架基于广泛使用的SDV1.5项目构建,利用步长为8的自动编码器将所有图像投影到潜在空间中。U-Net被用于去噪处理,CLIP的语言分支被引入以编码语言提示,并通过交叉注意力操作进行整合。
图3 为FlashFace的整体流程。在训练过程中,随机选择B个ID簇,并从每个簇中选择N+1张图像。从N张图像中裁剪面部区域作为参考,留下一张作为目标图像,用于计算损失。Face ReferenceNet的输入潜在表示具有形状(B∗N)×4×h×w。在中间块和解码器块中,存储了自注意力层之后的所有参考面部特征。一个面部位置掩码被连接到目标潜在表示,以指示生成面部的位置。在推理过程中,用户可以通过提供面部位置(可选)、人的参考图像和期望图像的描述来获得所需的图像。
Face ReferenceNet是FlashFace框架的一个显著特点,它使用与SD-V1.5相同的U-Net架构和预训练参数。在训练过程中,随机采样B个ID簇,然后从每个簇中随机采样N个参考图像,将这些图像裁剪并调整大小到224×224像素。经过VAE编码后,这些面部被转换为输入潜在表示,形状为(B ∗ N)×4×28×28。当潜在特征通过中间和解码器块时,研究者缓存了自注意力层之后的所有特征,形状为(B ∗ N) × (hr ∗ wr) × C。参考图像的数量N在训练过程中随机设置在1到4之间。
在训练阶段,选定的B个目标图像被编码为4个通道的初始潜在表示。对于人脸修复模型,研究者将面部区域的潜在表示填充为0,并将其与带噪声的潜在表示连接起来,形成8个通道的输入。为了使用户能够更容易地进行合成,初始化了一个面部位置掩码,这是一个单通道的零掩码,只有面部边界框内的区域被填充为1。这个面部掩码随后与带噪声的潜在表示连接作为输入潜在表示。当潜在特征向前传播到与缓存的参考特征相同的位置时,使用额外的参考注意力层将参考面部特征整合到U-Net中。
为了在推理阶段控制参考强度,研究者提供了一种方法,允许用户在语言提示和参考之间调整平衡。例如,在Eq. (2)中,引入了来重新加权两个参考注意力层的结果:一个结果在其K和V中整合了参考特征,而另一个则没有。
的较高值赋予了包含参考特征的结果更大的权重,从而在生成的图像中产生了更高的身份保真度面部。这个操作提供了对参考强度的平滑控制,并且通过轻松改变与两个不同个体相关的注意力结果的重新加权,促进了身份混合。
此外,还涉及了无分类器引导机制,通过结合三种不同条件下的推理结果:没有参考图像或文本提示(YNone)、只有文本提示(YText)以及既有文本提示又有参考图像(YText&Ref)。最终结果通过使用Eq. (3)组合这些结果获得,和
分别是文本引导和参考引导的权重因素。参考引导不像
那样平滑,但它有助于保留更多的细节。
在这项研究中,默认情况下=0.85,
=2,
=7.5。这些参数的设置允许FlashFace在生成图像时,根据文本提示和参考图像的强度,平衡地融合特征,创造出既符合描述又保留身份特征的人脸图像。
实验
研究者采用了SD-V1.5模型作为基础,并使用Adam优化算法在8个NVIDIA A100 GPU上进行参数优化,批量大小设置为32,总共迭代了50,000次。Face ReferenceNet和U-Net模块的学习率都设置为2e-5。在训练过程中,他们从同一ID簇中随机选择N个参考图像和1个目标图像(N在1到4之间随机设置)。参考图像的面部区域被裁剪并调整大小到224×224像素,而目标图像则被调整到768×768像素,以更好地表示面部细节。为了通过无分类器引导机制提高生成质量,有10%的几率使用空文本嵌入。采样使用了DDIM采样器的50步。特征强度默认设置为0.85,文本无分类器引导的尺度默认为7.5,参考引导默认为2。
在使用不同语言提示生成的“Dwayne Johnson”的图像结果中。相比之下,IP-Adapter-faceid、FastComposer和InstantID在生成的面孔中存在复制粘贴和相同外观的倾向,未能根据语言提示实现自然的人脸变化。而FlashFace保持了高保真度并准确遵循了语言提示。图4 展示了“Dwayne Johnson”的图像个性化结果。FlashFace保持了高保真度并准确遵循了语言提示。标有*的方法是作者的并行工作。
在改变年龄和性别的应用中,FlashFace利用“Taylor Swift”的四张参考图像,通过调整和
,成功地在生成的面部图像中结合了“女孩”的青春特征、“老人”的皱纹和“男人”的男性特征,同时保持了身份信息。图5 展示了“Taylor Swift”不同年龄和性别的个性化结果。在不同提示下,Photomaker和InstantID的面部细节保持不变,继续类似于年轻女性。而FlashFace无缝地将年龄和性别词所代表的特征与原始人物ID结合起来。
FlashFace还支持将虚拟人物和真实个体之间进行高保真度的转换。无论是将虚拟人物转换为真实人物,还是将真实人物转换为艺术作品,FlashFace都能够保持人脸形状的高保真度。图6 展示了艺术作品与真人之间的转换。FlashFace甚至可以在高面部保真度下在艺术作品和真人之间进行转换。我们可以看到在两种转换中面部形状都得到了很好的保留。
FlashFace的人脸修复模型能够在控制语言提示下,无缝地将一个人的面部绘制到另一个人身上。例如,使用“Leonardo DiCaprio”的四张参考图像和语言提示,模型确保在引入各种面部细节的同时,保持面部身份。图7 展示了不同提示下的身份面部修复。FlashFace的面部修复能够在高面部ID保真度下将一个人的面部绘制到另一个人身上。此外,在绘制过程中,它允许使用语言来指定面部细节,如表情、眼镜、胡须等。
研究者创建了一个基准测试,使用了验证集中的200个ID簇。每个簇中选择4个参考图像和1个目标图像。为了评估生成的图像,他们使用面部识别模型(ArcFace-R101)来测量面部相似度。最重要的指标是生成图像与目标图像之间的面部相似度,记为SimT arget。此外,他们还计算了生成图像与所有参考图像之间的最大面部相似度,记为SimRef。为了证明模型能够提取身份信息并根据语言提示变化,而不是简单地将参考面部粘贴到目标图像上,他们引入了一个指标Paste = SimRef − SimT arget。Paste值越高,表示更有可能粘贴参考图像。
表1中对FlashFace与先前方法的性能进行了比较,报告了生成图像与目标图像之间的面部相似度得分(SimTarget),以及生成面部与所有参考面部之间的最大相似度(SimRef)。他们还提供了图像的CLIP相似度得分。一个更高的Paste值(SimRef - SimTarget)表示更有可能粘贴一个参考面部。实验结果显示,IP-Adapter、FastComposer和PhotoMaker在SimRef和SimT arget上得分较低,表明在使用基于嵌入的流水线时保留面部细节存在挑战。相比之下,FlashFace在SimT arget上表现优于其他方法,并且具有合理的Paste值,这表明FlashFace能够在保持高身份保真度的同时,根据语言提示进行面部变化。
研究者进行了消融研究以评估ReferenceNet保持面部细节的能力。他们按照与先前方法相同的训练范式训练模型,即使用目标图像中裁剪的面部作为输入参考。表2在相同的训练范式下比较了 FlashFace 与其他方法在身份保持方面的表现。使用裁剪的目标面部作为输入参考,FlashFace 能够实现比其他方法更高的 SimRef,表明 FlashFace 在保持面部细节方面的强大能力。
研究者还探讨了参考强度对模型性能的影响。通过调整t和
,他们发现SimT arget有所提高,但Paste值也随之增加,这表明存在倾向于复制参考图像而不是融合语言提示的趋势。为了在保真度和语言提示能力之间取得平衡,建议将
设置在0.75到1之间,
设置在2到2.5之间。
![](https://i-blog.csdnimg.cn/direct/5ad6d7d7dbde4d81bb7b8e3049941646.png)
在特征空间中的操作使得SimT arget的变化更加平滑。在
=2时,
从0到1变化的可视化结果,显示出在整个
范围内ID保真度的平滑提高。
![](https://i-blog.csdnimg.cn/direct/8e857dbaae5941f1912198e697675080.png)
在输入参考图像数量对性能的影响方面,使用不同数量的参考图像进行评估的结果显示(表3),增加参考图像数量可以显著提高身份保真度,尤其是从1个参考图像增加到2个时,提高了9.3%。这表明模型能够学习更精确的身份信息,并根据提示生成高质量的图像,而不仅仅依赖于参考图像。
在U-Net中不同位置添加参考注意力层对性能的影响方面,实验结果表明(表4),仅在解码器块中添加参考注意力层时,模型表现最佳,即使与在编码器和解码器块中都添加相比也是如此。这可能是由于编码器距离输出较远,难以与损失函数指示的收敛方向对齐。
通过这些详细的实验和分析,作者证明了FlashFace模型在个性化人脸生成方面的高保真度和对语言提示的精确遵循能力,以及模型关键组件对性能的重要贡献。
论文链接:https://arxiv.org/abs/2403.17008
项目地址:https://jshilong.github.io/flashface-page/