目标:生成穿着具有多种文本提示的目标服装的模特图片。
创新点:以特定服装为条件的图像生成。服装驱动的图像生成任务旨在生成穿着指定服装的模特图片,并结合给定的文本提示。
与虚拟试穿(Virtual try-on, VTON)任务的不同:
VTON旨在生成穿着目标服装的特定模特图片,更多地是一种image-inpainting任务,只需要关注于保留目标服装的特征,而没有以特定的文本提示作为条件。
关注点:图像的可控性,即保留服装细节的同时保持对文本提示的忠实度。
具体做法:
- 引入基于Unet架构的服装提取器来提取详细的服装特征,并采用自注意力融合将其合并到预训练的LDM中,确保目标角色的服装细节保持不变;
- 利用联合的classifier-free guidance来平衡服装特征和文本提示对生成结果的控制,具体做法是在训练时从联合分布中随机删除服装特征和文本提示;
- 服装分类器可以作为一个插件,它适用于各种微调的LDM,并可以与ControlNet和IP-Adapter等扩展模块相结合,以增强生成图片的多样性和可控性。
网络结构:
1、在训练过程中,首先使用VAE自动变分编码器将人物图像和服装图像编码到潜在表示。
2、另一方面,使用BLIP为人物图像Ic生成文本标题,获得text prompt y,并将其转换为token embedding 。
3、引入了一种服装提取器,它与去噪unet具有相同的结构,用于提取详细的服装特征。
4、通过自注意力融合将提取到的服装特征合并到原始的去噪过程中。具体而言,令和分别表示去噪Unet网络和服装提取器中的第i个自注意力块的归一化后的中间隐藏状态,添加服装特征后的中自注意力的计算为:
其中[·]表示concatenation操作,d是特征维度,WQ、WK、WV分别是自注意力层中query、key和value的线性投影权重。
5、为了保证原始LDM的文本到图像的生成能力并降低训练成本,在训练时保持的权重冻结,只训练服装提取器,并将其权重初始化为的权重,进一步加快了训练过程。训练目标为:
其中是在t时刻向人物图像潜在添加噪声而获得的,β是来自服装提取器的自注意力块的整体服装特征。
6、在推理过程中,给定服装和文本描述,就可以生成穿着目标服装的模特图像。为了添加更多条件控制,服装提取器也可以与其他扩展配合使用(如ControlNet、IP-Adapter等)。同时,服装特征在所有去噪步骤中共享,从而最小化了LDM的推理计算成本。
Joint Classifier-free Guidance:
Classifier-free guidance:
两个控制条件:服装特征cG和文本提示cT。具体来说,令它们在训练期间以一定概率置为∅。然后在推理时,引入服装指导尺度sG和文本指导尺度sT来分别调整服装和文本提示的条件控制的强度。
独立classifier-free guidance:
但这样融合两个去噪分数可能会导致不希望的结果,因为两个控制条件可能具有重叠的语义信息。
联合classifier-free guidance:
按照一个联合分布来设置服装特征和文本提示置为∅的概率。具体做法是,随机选择5%的训练样本设置cG = ∅G,5%的训练样本设置cT = ∅T,另外5%的训练样本同时设置cG = ∅G和cT = ∅T。
sG越大,生成模特图中的服装与输入服装越相似;sT越大,生成模特图越准确地遵循文本提示。由于sT和sG之间差距较大可能会扭曲服装细节,因此在实验中按照经验设置为sT = 7.5和sG = 2.5。
插件模式:
可以将服装提取器Eg作为插件模块,与各种经过微调的LDM结合起来,以增强生成角色的多样性。
例如:
- 与LoRA或全参数微调的LDM结合,可以创建不同风格的角色,如科幻、现实和动漫风格等;
- 与ControlNet-Openpose结合,可以生成穿着给定服装并具有目标姿势的模特图;
- 与ControlNet-Inpaint结合,可以执行虚拟试穿任务并生成高质量的结果;
- 与IP-Adapter-FaceID结合,可以生成穿着目标服装的特定人物。
也可以与多个扩展相结合,对生成图像进行多方面的控制。
实验设置:
训练数据集:配对的服装和模特图,对人物图片进行描述的文本提示(BLIP)。
测试数据:一个配对的服装+文本提示→生成n张对应的模特图;
对比方法:三种最先进的基于LDM的主题驱动图像合成模型IP-Adapter、BLIP-Diffusion和Versatile Diffusion;以及训练了一个以服装作为输入条件并根据文本提示生成图像的ControlNet-Garment。(分辨率:768×576)
实验细节:使用stable diffusion v1.5中Unet的预训练权重来初始化服装提取器的权重,仅微调其权重,保持其他模块的权重冻结。采用AdamW优化器,固定学习率为5e-5。在单个NVIDIA A100 GPU上训练100个步骤,batch size=16。在推理时,使用UniPC采样器生成20个采样步的图像。
实验结果:
存在的局限性:生成图像的质量高度依赖于基础扩散模型,改进方案是使用更强大的预训练模型(如SDXL或Stable Diffusion3)等。
改进工作:IMAGDressing-v1
1、网络由可训练的服装UNet,以及冻结的去噪Unet组成。可训练的服装UNet用于提取服装的细粒度特征,架构上与Stable Diffusion V1.5(SD v1.5)相同,不同之处在于服装UNet能够同时从CLIP中提取服装的语义特征,以及从VAE中提取服装的纹理特征。具体来说,对于给定服装图像,首先使用冻结的VAE编码器将其转换为潜在空间表示 ,然后使用冻结的CLIP模型作为Image Encoder从X中提取token embedding。Q-Former(BLIP2)作为可学习的投影层(Projection),服装特征与纹理特征通过交叉注意力进行交互。最后,服装UNet与去噪UNet并行对齐,通过混合注意力将细粒度特征注入去噪UNet。
2、冻结的去噪UNet类似于SD v1.5,用于对加入条件的Latent Image去噪。与SD v1.5不同,使用了混合注意力模块替换了自注意力模块,以便更轻松地集成服装UNet中的服装特征。具体来说,混合注意力模块由冻结的自注意力模块和可学习的交叉注意力模块组成,其中自注意力模块的权重使用SD v1.5中的自注意力权重进行初始化。假设和分别表示查询特征和服装UNet在相应位置输出的服装特征,则混合注意力的输出:
其中,λ是一个超参数,较小的λ可以确保生成的结果更接近于文本提示,而较大的λ会使生成结果更偏向于给定服装,在实验中设置为1.0。
其中Wq,Wk,Wv,W'k,W’v是投影矩阵,共享一个用于自注意力和交叉注意力的查询矩阵Q,自注意力被冻结,而交叉注意力是可训练的,因此只有W′k和W′v是可学习的。
最后利用现有的文本到图像的模型(BLIP/GPT4)加入文本提示进行场景控制,使用冻结的CLIP模型作为Text Encoder。服装UNet仅用于对参考图像进行编码,因此参考图像中不会添加任何噪声,并且在扩散过程中仅执行一次前向传播。
PS:文生图,图生图的训练和推理过程:
文生图 | 图生图 | |
训练过程 | 文本+label图像 | 文本+输入图像+label图像 |
推理过程 | 文本+高斯噪声 | 文本+噪声图像 |
文生图(txt2img):将一段文本输入到SD模型中,经过一定的迭代次数,SD模型输出一张符合输入文本描述的图片。
- 步骤一: 使用CLIP Text Encoder模型将输入的文本信息进行编码,输出特征矩阵;
- 步骤二: 输入文本信息,再用random函数生成一个高斯噪声矩阵 作为Latent Feature的“替代” 输入到SD模型中;
- 步骤三: 将优化迭代后的Latent Feature输入到 图像解码器 (VAE Decoder) 中,将Latent Feature重建成像素级图。
图生图(img2img):在输入本文的基础上,再输入一张图片,SD模型将根据文本的提示,将输入图片进行重绘以更加符合文本的描述。
- 步骤一: 对输入文本信息进行编码的同时,将原图片通过图像编码器(VAE Encoder) 生成Latent Feature(隐空间特征)作为输入;
- 步骤二: 将上述信息输入到SD模型中;
- 步骤三: 将优化迭代后的Latent Feature输入到 图像解码器 (VAE Decoder) 中,将Latent Feature重建成像素级图。