论文链接: https://arxiv.org/pdf/2407.14078
github链接: https://xiaojiu-z.github.io/Stable-Hair.github.io/
亮点直击
Stable-Hair: 这是第一个基于扩散的发型移植框架。与现有的基于GAN的发型移植方法相比,Stable-Hair在保真度和鲁棒性方面表现更佳。实验结果证实,Stable-Hair优于其他最新的方法。
创新架构: 本文的方法使用了Hair Extractor结合Hair Cross-attention Layers来有效地注入参考发型特征。为了在转移过程中保持源内容的一致性,本文引入了一种新的Latent ControlNet架构。该架构既用作Bald Converter,又用作Latent IdentityNet,从像素空间到潜在空间促进发型移植过程。
自动化数据生产pipeline: 本文开发了一条自动化数据生产pipeling,这在本文的框架成功训练中起到了关键作用。
当前的发型移植方法在处理多样且复杂的发型时存在困难,从而限制了它们在现实场景中的适用性。在本文中,本文提出了一种新型的基于扩散的发型移植框架,名为Stable-Hair,该框架能够稳健地将各种真实世界的发型移植到用户提供的面部图像上,以实现虚拟试发。为了实现这一目标,本文的Stable-Hair框架设计为一个两阶段的流程。
-
在第一阶段,本文训练了一个光头转换器(Bald Converter)与 Stable diffusion一起使用,以去除用户提供的面部图像中的头发,生成光头图像。
-
在第二阶段,本文专门设计了三个模块:头发提取器(Hair Extractor)、潜在身份网络(Latent IdentityNet)和头发交叉注意力层(Hair Cross-Attention Layers),以将目标发型高细节和高保真度地转移到光头图像上。
具体来说,头发提取器被训练用来编码具有所需发型的参考图像。为了保持源图像与转移结果之间身份内容和背景的一致性,本文采用了潜在身份网络来编码源图像。在U-Net中借助本文的头发交叉注意力层,可以准确而精确地将高度详细和高保真度的发型移植到光头图像上。
大量实验表明,本文的方法在现有的发型移植方法中实现了最先进的(SOTA)结果。
方法
Stable-Hair
概述。 本文的设计将发型移植过程分为两个阶段。首先,使用Bald Converter将用户输入的源图像转换为光头agent图像。其次,本文的模型将参考发型移植到光头agent图像上。这确保了发型移植的最佳稳定性,并保持源图像内容的一致性。
如下图3所示,本文的Stable-Hair框架包含三个主要组件:Hair Extractor、Latent IdentityNet和新集成的Hair Cross-Attention Layers。给定包含所需发型的参考图像 和用户提供的源图像 ,Hair Extractor 可以稳定且精确地编码现实场景中的各种参考发型并提取详细的头发特征 。这些详细的头发特征 通过 Hair Cross-Attention Layers 被输入到扩散 U-Net 结构中。Latent IdentityNet 模块用于处理由 Bald Converter 从源图像 转换而来的光头agent图像 。
Latent ControlNet。 在本方法中,源图像分两步处理。第一步是通过Bald Converter将源图像转换为光头agent图像。第二步是利用Latent IdentityNet保持光头人物图像的非头发区域的内容一致性。通过这两步保持源图像的内容一致性至关重要。任何偏离预期目标的情况,例如颜色或结构的变化,都会导致内容不一致的最终图像。因此,设计这两个内容维护模块成为本文发型移植框架的关键方面。
一种简单的基线方法是利用ControlNet结构作为Bald Converter和Latent IdentityNet来确保内容一致性。然而,本文的实验结果表明,尽管ControlNet能够有效地保持源图像的结构一致性,但它在保持颜色一致性方面存在困难。如下图4所示,由于在这两个步骤中累积的颜色偏差,最终的颜色发生了明显的变化。
为什么ControlNet会产生颜色差异?本文认为原因在于像素空间和潜在空间在根本上以不同的方式表示图像信息。像素空间处理的是图像的原始像素值,而潜在空间则涉及由VAE编码器创建的更抽象的高维表示。对于扩散模型,这两个空间中信息的特征和分布可能会显著不同,使得在训练过程中对齐变得具有挑战性。
因此,如下图2所示,本文改进了ControlNet结构,并提出了一种新的变体,称为Latent ControlNet。在图像输入ControlNet之前,图像首先通过VAE编码器编码到潜在空间,然后通过一个新的可训练卷积层发送到U-Net的可训练副本。最后,本文基于提出的Latent ControlNet结构训练本文的Bald Converter和Latent IdentityNet,并获得了最佳的一致性效果。
头发提取器。 发型移植需要以详细、完整和准确的方式转移参考图像 上的头发,本文的头发提取器旨在实现这种转移。受最近关于参考图像引导生成的工作的启发,本文利用了预训练扩散模型中的U-Net架构的可训练副本作为本文的头发提取器。具体来说,本文通过头发提取器对参考图像 进行编码,并收集每个 transformer 块中自注意力层的特征作为详细的头发特征 。然后,这些特征通过头发交叉注意力层注入到扩散U-Net中。
头发交叉注意力层。 头发交叉注意力层的目标是将详细的头发特征整合到U-Net中,并与U-Net的中间特征图适当地对齐,使模型能够将头发准确地移植到源图像中的适当区域。具体来说,如上图3所示,在U-Net的每个transformer块中,本文保留了原始的自注意力层,并添加了头发交叉注意力层。详细的头发特征 被输入到头发交叉注意力层,并作为 (键)和 (值)特征。头发交叉注意力层和U-Net中的原始自注意力层共享 特征。在交叉注意力机制的帮助下,头发和源脸部得到了良好的对齐。最后,本文将头发交叉注意力的输出简单地添加到原始自注意力的输出中。
模型训练和推理
训练数据收集。 如下图5所示,本文创建发型配对数据集的流程包括两个主要步骤。 首先,本文使用光头转换器生成光头图像,这些图像在训练期间作为光头的agent图像。 其次,基于原始图像中的发型mask,本文使用Stable Diffusion修复模型和ChatGPT来编辑原始数据集的非发型部分,改变身份和背景,以创建训练用的参考图像。 最终,本文获得了一个三元数据集,包括原始图像、参考图像和光头agent图像。
训练。 在第一阶段,本文使用类似于 ControlNet 的简单方法在现有数据集上训练光头转换器。这使本文能够实现一个高效的光头转换器。在第二阶段,本文专注于训练模型的主要组件。在这两个训练过程中,本文使用了多种增强技术,这对于适应真实世界的场景和实现成功的发型移植至关重要。这些增强技术包括对源图像、光头agent图像和目标图像应用同步仿射变换。
这两个阶段的损失函数与原始的Stable Diffusion训练目标相似,可以用数学公式表示如下:
其中, 是一个通过向图像潜变量 添加噪声 构建的噪声图像潜变量,网络 被训练来预测添加的噪声, 和 分别表示源条件输入(源图像或光头agent图像)和参考条件输入。在训练光头转换器时, 为 None。
推理。 在推理过程中,有两个阶段。在第一个阶段,用户提供的源图像被输入到光头转换器中以获得光头agent图像。在第二个阶段,光头agent图像和参考图像被输入到本文的发型移植框架中,以指导扩散生成过程。
实验
Evaluation Metrics
给定一个发型参考图像和一个发色参考图像,发型移植的目的是将相应的发型和发色属性应用到输入图像中。将本文的方法与当前最先进的方法进行了比较,包括:Barbershop、SYH、HairFastGAN、hairclip 和 hairclipv2。所有比较算法均使用其官方实现中的默认参数。
为了全面和客观地评估每种算法在发型移植不同方面的性能,本文计算了源图像和生成的目标图像的FID指标。发型移植后,源图像和生成图像的结构和内容信息应该一致,因此本文使用SSIM指标来评估源图像和生成的目标图像之间的结构和内容相似性。此外,本文使用PSNR指标来评估生成图像的质量,并使用Insightface来评估原始源图像和生成的目标图像之间的身份相似性(IDS)。
实验结果
定性比较。 如下图6所示,本文对各种发型进行了定性比较实验。总体而言,本文的方法在发型移植的精细度和完整性方面显著优于其他方法,同时在很大程度上保持了源图像的结构和身份一致性。
在本文比较的方法中,Barbershop 经常出现简单的头发粘贴问题,且头发和脸部的融合常常显得不自然(如第三和第四行所示)。“Style Your Hair”和“Hair Fast GAN”在发型移植上表现得相当粗糙,常常忽略头发细节,并且在有色头发上显示出颜色不一致的现象。“Hairclip”和“Hairclip v2”在发型移植能力上表现最弱,难以准确移植参考发型。
相比之下,本文的方法在不同发型和颜色的转移上始终表现出强大而稳定的能力。本文的方法不仅生成的结果更加精细和完整,而且保持了源图像的结构完整性和身份一致性,确保了自然和协调的外观。
定量比较实验。 实验使用 CelebA-HQ 数据集作为实验数据,随机选择 2500 张人脸图像作为输入,并从剩余的 CelebA-HQ 数据集中选择相同数量的参考图像。下表 1 显示了本文在不同方法上的定量评估。总体而言,本文的方法在大多数指标上都超过了以往的方法。具体来说,更高的 SSIM 和 IDS 分数表明 Stable-Hair 在转移发型的同时,有效地保留了源图像的内容和身份,展示了本文方法在保持结构和内容一致性方面的优越性。此外,较高的 FID 分数表明本文的方法在转移后生成了高保真和高度逼真的结果。本文的方法在 PSNR 指标上排名第二。虽然在这一特定指标上略逊于 Hairclip v2,但综合考虑其他指标,本文的方法仍展示了高图像保真度和质量。
用户研究。 考虑到发型移植任务的主观性,本文进行了全面的用户研究,涉及 30 名志愿者。具体来说,本文从定量实验中随机抽取了 20 组数据,并从社交媒体上选择了 10 种流行发型作为参考样式,使用从 FFHQ 数据集中随机抽取的相应数量的源图像,通过各种算法创建了额外的 10 组数据。这导致一共生成了 30 组三元组,每组包含一张原始图像、一张参考图像和转移结果。与以往的方法(Wei 等人,2022)一样,不同算法的测试结果是随机化的。对于每个测试样本,志愿者被要求根据三个标准选择最佳选项:转移准确性、无关属性的保留和视觉自然度。下表2中的结果表明,本文的方法在转移准确性、无关属性的保留和视觉自然度方面均优于对比方法。
在本文的消融研究中,本文旨在通过系统地去除各个组件并观察其对性能的影响,彻底调查本文方法中每个模块的作用。如下图7所示,结果清楚地表明,使用ControlNet进行像素条件输入训练的模型通常会出现颜色差异,特别是在结果的第一列和第三列中。这些差异导致源图像和目标图像之间的不一致。
为了解决这个问题,本文提出了Latent ControlNet,它将去除头发和转移过程从像素空间映射到潜在空间。这种方法有效地消除了像素条件输入所观察到的颜色不一致性,显著增强了内容保留。此外,本文在第一阶段输出的光头图像看起来非常自然,促进了向第二阶段的无缝过渡。因此,这导致了非常令人满意的转移结果。
跨域转移结果。 如下图8所示,本文方法的鲁棒性使得发型可以在不同领域之间进行转移,这是以前的方法无法实现的能力。 这表明了本文方法在发型移植领域的显著进步。
结论
在本文中,介绍了Stable-Hair,这是第一个使用扩散技术解决发型移植问题的框架。这一方法标志着一个显著的进步,实现了以前无法实现的稳定且细粒度的真实世界发型移植。Stable-Hair具有一个两阶段的流程。第一阶段使用光头转换器将源图像转换为光头agent图像。第二阶段包括一个头发提取器、一个潜在身份网络(Latent IdentityNet)和头发交叉注意力层,以准确地将目标发型移植到光头图像上。头发提取器对具有所需发型的参考图像进行编码,而潜在身份网络则保留身份内容和背景一致性。U-Net中的头发交叉注意力层确保发型移植的精确性和高保真度。广泛的实验表明,Stable-Hair实现了商业级的发型移植能力,设立了该领域的新标准。
参考文献
[1] Stable-Hair: Real-World Hair Transfer via Diffusion Model