BootPIG: Bootstrapping Zero-shot Personalized Image Generation Capabilities in Pretrained Diffusion Models
公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)
目录
0. 摘要
3. 方法
3.1. 基础:扩散模型
3.2. BootPIG 模型架构
3.3. 训练
3.4. 引导训练数据
3.5. 推断
4. 实验
5. 局限性
0. 摘要
最近的文本到图像生成模型已经展示了令人难以置信的成功,能够生成忠实于输入提示的图像。然而,使用单词来描述所需概念的要求,在控制生成概念的外观方面存在限制。在这项工作中,我们通过提出一种方法来解决这一缺陷,使现有的文本到图像扩散模型具备个性化能力。我们提出了一种新颖的架构(BootPIG),允许用户提供对象的参考图像,以引导生成图像中概念的外观。
BootPIG 架构对预训练的文本到图像扩散模型进行最小修改,并利用一个独立的 UNet 模型来引导生成图像朝向所需的外观。我们引入了一种训练过程,允许我们使用从预训练的文本到图像模型、LLM 聊天代理和图像分割模型生成的数据来引导 BootPIG 架构的个性化能力。与需要数天的预训练的现有方法不同,BootPIG 架构可以在大约 1 小时内进行训练。对 DreamBooth 数据集的实验表明,BootPIG 在超越现有零样本方法的同时,与测试时微调方法相媲美。通过用户研究,我们验证了 BootPIG 生成相对于现有方法的偏好,无论在保持对参考对象外观的忠实性还是与文本提示一致方面。
3. 方法
3.1. 基础:扩散模型
3.2. BootPIG 模型架构
我们在图 2 中概述了 BootPIG 架构。我们提出的架构的关键思想是将参考对象的外观注入到预训练的文本条件图像扩散模型的特征中,从而生成的图像模仿参考对象。
在这项工作中,我们使用 Stable Diffusion [32] 作为我们的预训练文本到图像扩散模型。Stable Diffusion 是一种使用了由 Transformer[41] 和 Residual[11] 块组成的 U-Net [33] 架构的潜在扩散模型 [32]。我们提出的 BootPIG 架构修改了 Transformer 块中自注意层处理的信息,以控制生成对象的外观。设 Stable Diffusion U-Net 模型表示为 U_θ(x_t, c, t),其中 x_t 是有噪输入潜在变量,c 是输入文本提示,t 是扩散过程中的时间步。
注入参考特征。自注意(SA)层接收潜在特征 f ∈ R^(n×d),执行以下操作:
其中,q、k、v 是称为查询(query)、键(key)和值(value)函数的线性映射,其参数分别为 W_q、W_k、W_v ∈ R^(d×d′),它们将特征投影到选择的维度 d′。Wo ∈ R^(d′xd) 将输出投影回原始维度 d。我们建议用一个称为参考自注意(Reference Self-Attention,RSA)的操作替换所有的自注意(SA)层,这允许我们注入参考特征。RSA 操作的输入是潜在特征 f ∈ R^(n×d) 和相同维度的参考特征 f_ref ∈ R^(n_ref × d),执行以下操作:
其中,[:] 表示沿第一个维度的连接。直观地说,RSA 操作促使注入参考特征,使扩散模型在计算输出潜在特征时 “关注 ”它们。我们用
表示这个新的 U-Net,称为基础 U-Net,其中包含 L 个 RSA 层。为了简单起见,我们使用符号 F_ref 来表示 L 个参考特征的集合。请注意,RSA 操作符不引入任何新的参数,并重用权重参数 W_o、W_q、W_k、W_v。
提取参考特征。给定一个参考图像 I_ref,我们需要提取适当的特征 f_ref,以便将其传递给每个 RSA 层。我们建议使用一个单独的 U-Net Uϕ(x_t, c, t),称为参考 U-Net,它遵循与基础 U-Net 相同的架构,并用相同的参数初始化(ϕ = θ)。对于给定的 t,我们对参考图像 I_ref 执行正向扩散过程,计算出带有噪声的参考潜在变量 x′_reft。我们将 x′_reft 与文本提示一起作为输入,并在 L-SA 层之前提取特征作为 F_ref。这确保提取的参考特征具有适当的维度,并且与 RSA 层的权重兼容。
3.3. 训练
BootPIG 架构允许我们将参考图像的特征传递给 RSA 层。然而,由于原始扩散模型 Uθ 没有经过 RSA 层的训练,我们观察到生成的图像是损坏的(请参见补充材料),并且没有正确遵循输入提示。为了纠正这一问题,我们建议微调参考 U-Net ϕ 的参数,以提取更好的参考特征,并微调 RSA 层的参数(Wo、Wq、Wk、Wv)以更好地利用参考特征。
给定一个包含参考图像、文本提示和目标图像(遵循文本提示,并准确描绘参考对象)的三元组数据集,我们使用与原始潜在扩散模型相同的目标进行 BootPIG 架构的微调。参考 U-Net 接收与参考图像相对应的带有噪声的 VAE 潜在变量(基于时间步 t 加噪)以及时间步 t 和目标标题作为输入。基础 U-Net 接收与目标图像相对应的带有噪声的 VAE 潜在变量(同样受到加噪处理)、时间步 t、目标标题以及从参考 U-Net 收集的参考特征作为输入。参考 U-Net 和 RSA 层的参数将被更新以准确估计输入潜在变量中的噪声。为了保留基础 U-Net 遵循提示的能力,我们随机丢弃参考图像的特征(概率为 0.15),从而将基础 U-Net 模型恢复为基于自注意的架构。我们在补充材料中提供了训练流程的更详细描述以及伪代码。
3.4. 引导训练数据
为了优化 BootPIG 架构,收集一个大规模筛选的训练数据源是昂贵的。这将涉及在不同背景下收集描绘相同对象实例的配对的参考和目标图像。相反,我们提出了一个合成数据生成流程,利用现有预训练的计算机视觉和自然语言处理模型的能力。
在图 3 中,我们概述了数据生成流程。首先,我们利用 ChatGPT [2],一个先进的会话代理,为潜在目标图像生成标题。对于每个标题,我们使用 Stable Diffusion [32] 生成一张图像。然后,我们使用 Segment Anything Model(SAM)[18],一种先进的分割模型,提取与标题中主对象对应的前景掩码。我们将 Stable Diffusion 生成的图像视为目标图像,将前景对象粘贴在白色背景上视为参考图像,并将 ChatGPT 生成的标题视为文本提示。虽然参考图像并没有在完全不同的背景中描绘对象,但我们经验性地观察到这种合成数据足以学习个性化能力。
3.5. 推断
在推断过程中,每个时间步,我们通过将带有噪声的参考图像、目标标题 c 和时间步 t 传递给参考 U-Net,提取参考特征 F_ref。我们使用一个无分类器引导 [12] 策略来使用基础 U-Net 估计有噪潜在变量 x′_t 中的噪声,如下所示:
其中,第一个 U-Net 项估计没有任何调节信息的噪声,第二个 U-Net 项仅使用图像信息估计噪声,第四个 U-Net 项同时使用图像和标题。
到目前为止,所描述的 BootPIG 架构接受单个参考图像作为输入。这使我们能够使用合成的(参考,目标)图像对训练模型的参数。在多种应用中常见的一种情况是我们有多个参考图像的情况。为了处理这种情况,我们现在提出了一个推断过程,以利用训练好的 BootPIG 模型,并利用来自多个参考图像的外观信息。
设 f_refi 是在特定层上图像 i 的参考特征。在每个 RSA 层,我们首先计算没有任何参考特征(f_ref = f)和使用每个参考特征的输出:
对于每个参考生成的输出 o_i ∈ R^(n×d),我们计算与无参考输出 o 的逐像素差的范数。我们用
表示这个差异。然后,我们使用这些范数的逐像素 softmax 来加权每个参考特征的贡献。具体来说,我们计算最终输出如下:
直观地说,在每个像素位置,我们希望使用相对于无参考输出做出最大贡献的参考特征。
4. 实验
5. 局限性
BootPIG 具有与相关方法相同的许多失败情况。具体而言,在许多情况下,BootPIG 生成可能无法呈现主体的细粒度特征,并且可能难以准确遵循提示。其中一些失败案例突显了学习更强大的细粒度特征的需求,而其他失败案例,如在某些条件下的提示保真度和文本呈现(见图 4 第 5 行),是从基础文本到图像模型继承的局限性。我们在补充材料中提供了更多失败案例的说明。此外,基础生成模型的弱点和偏见,包括有害的刻板印象,将通过 BootPIG 的生成延续。主体驱动的生成还可能导致在未经其同意的情况下生成个体的不受欢迎的图像。我们敦促使用这项技术的用户注意这些影响,并建议他们负责任地使用这种技术。