赞
踩
DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
公众号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)
目录
大型文本到图像模型在人工智能的发展中取得了显著的突破,使得能够从给定的文本提示中合成高质量和多样化的图像成为可能。然而,这些模型缺乏模仿给定参考集中主体的外观并在不同情境中合成其新版本的能力。在这项工作中,我们提出了一种新的方法,用于对文本到图像扩散模型进行“个性化”。只需输入主体的一些图像,我们对预训练的文本到图像模型进行微调,使其学会将唯一标识符与特定主体关联起来。一旦主体被嵌入到模型的输出域中,唯一标识符可以用于在不同场景中合成主体的新逼真图像。通过利用嵌入在模型中的语义先验和新的、自生的(autogenous)、类别特定的先验保存损失,我们的技术能够在不出现在参考图像中的多样化情境、姿势、视角和光照条件下合成主体。我们将我们的技术应用到了几个以前无法攻克的任务中,包括主体重新情境化(subject recontextualization)、文本引导的视图合成和艺术渲染,同时保留了主体的关键特征。我们还为这一主题驱动的生成的新任务提供了新的数据集和评估协议。 项目页面:DreamBooth
你能想象自己的狗环游世界,或者你最喜欢的包包展示在巴黎最高级的展厅里吗?还有你的鹦鹉成为插图故事书的主要角色呢?渲染这种想象中的场景是一项具有挑战性的任务,需要在新的背景中合成特定主体(例如物体、动物)的实例,以便它们自然而无缝地融入场景中。
最近开发的大型文本到图像模型展示了前所未有的能力,通过使用自然语言编写的文本提示,能够基于文本合成高质量和多样化的图像 [54,61]。这些模型的主要优势之一是从大量的图像-文字配对中学到的强大语义先验。这种先验学会了将词语 “狗” 与图像中不同姿势和环境中出现的各种狗的实例相关联。尽管这些模型的合成能力是前所未有的,但它们缺乏模仿给定参考集中主体的外观并在不同情境中合成相同主体的新版本的能力。主要原因是它们的输出域的表现能力有限;即使是对物体的最详细的文本描述也可能产生不同外观的实例。此外,即使是文本嵌入位于共享语言-视觉空间的模型 [52] 也不能准确重构给定主体的外观,而只能创建图像内容的变化(图2)。
在这项工作中,我们提出了一种新的方法,用于 “个性化” 文本到图像扩散模型(使其适应用户特定的图像生成需求)。我们的目标是扩展模型的语言-视觉词典,使其将新单词与用户想要生成的特定主体相关联。一旦新词典嵌入到模型中,它可以使用这些词来合成主体的新逼真图像,放置在不同的场景中,同时保留其关键识别特征。效果类似于 “魔法照相亭” - 一旦拍摄了主体的一些图像,照相亭会根据简单而直观的文本提示在不同条件和场景中生成主体的照片(图1)。
更正式地说,鉴于主体的一些图像(约 3-5个),我们的目标是将主体嵌入到模型的输出域中,以便可以使用唯一标识符合成主体。为此,我们提出了一种方法,使用稀有标记标识符来表示给定的主体,并微调预训练的基于扩散的文本到图像框架。
我们使用输入图像和包含唯一标识符的、后跟主体类名称(例如,“一只 [V] 狗”)的文本提示来微调文本到图像模型。后者使模型能够在主体类别上使用其关于主体类的先验知识,同时将特定实例与唯一标识符绑定。为了防止导致模型将类别名称(例如,“狗”)与特定实例相关联的语言漂移(language drift)[34, 40],我们提出了一种自生的、类别特定的先验保存损失,该损失利用嵌入在模型中的类别的语义先验,鼓励它生成与我们的主体相同类别的多样化实例。
我们将我们的方法应用于众多基于文本的图像生成应用,包括重新情境化主体,修改其属性,原创艺术渲染等,为先前难以攻克的新任务打开了新的道路。我们通过消融研究突出了我们方法中每个组件的贡献,与替代基线和相关工作进行比较。我们还进行了用户研究,以评估我们合成图像中主体和提示的忠实度,与替代方法进行比较。
据我们所知,我们的技术是第一个解决这一新的具有挑战性的主题驱动生成问题的方法,允许用户仅从一些随意拍摄的主体图像中,合成主体的新版本,放置在不同情境中,同时保持其独特特征。
为了评估这个新任务,我们还构建了一个包含不同情境中捕捉到的各种主体的新数据集,并提出了一种测量生成结果主体忠实度和提示忠实度的新评估协议。我们在项目网页上公开提供我们的数据集和评估协议。
图像组合。图像组合技术 [13, 38, 70] 旨在将给定主体克隆到新的背景中,使主体融入场景。要考虑在新的姿势中进行合成,可以应用 3D 重建技术[6, 8, 41, 49, 68],通常适用于刚性物体,并且需要更多的视图。一些缺点包括场景集成(光线、阴影、接触)和生成新场景的能力不足。相比之下,我们的方法使生成主体在新的姿势和新的情境中成为可能。
文本到图像编辑和合成。最近,使用 GANs [9, 22, 28–30] 结合图像-文本表示(如 CLIP [52])的文本驱动图像处理取得了显著进展,可以使用文本进行真实操作 [2, 7, 21, 43, 48, 71]。这些方法在结构化场景(例如人脸编辑)中表现良好,但在主体多样的数据集上可能会出现困难。Crowson等人 [14] 使用 VQ-GAN [18] 并在更多多样化的数据上进行训练以缓解这一问题。其他作品 [4, 31]利用了最近的扩散模型 [25, 25, 45, 58, 60, 62–66],在高度多样化的数据集上实现了最先进的生成质量,通常超越了GANs [15]。尽管大多数只需要文本的作品局限于全局编辑 [14, 33],Bar-Tal 等人 [5] 提出了一种基于文本的局部编辑技术,而不使用掩蔽,显示出令人印象深刻的结果。尽管大多数这些编辑方法允许修改给定图像的全局属性或局部编辑,但没有一个能够在新的情境中生成给定主体的新版本。
还存在关于文本到图像合成的作品 [14, 16, 19, 24, 27, 35, 36, 50, 51, 55, 58, 67, 74]。最近的大型文本到图像模型,如 Imagen [61]、DALL-E2 [54]、Parti [72]、CogView2 [17] 和 Stable Diffusion [58],展示了前所未有的语义生成能力。这些模型不提供对生成图像的细粒度控制,仅使用文本指导。具体而言,要在合成图像中始终保留主体的身份是具有挑战性的,甚至可能是不可能的。
可控生成模型。有各种方法来控制生成模型,其中一些可能是主体驱动的提示引导图像合成的可行方向。Liu 等人 [39] 提出了一种基于扩散的技术,允许根据参考图像或文本进行引导的图像变化。为了克服主体修改,一些作品 [3, 44] 假定用户提供了一个掩蔽,以限制修改区域。反演 [12, 15, 54] 可用于在修改上下文的同时保留主体。Prompt-to-prompt [23] 允许在没有输入掩蔽的情况下进行局部和全局编辑。这些方法无法实现对主体的身份保持的新样本生成。
在 GAN 的背景下,Pivotal Tuning [57] 允许通过使用反演的潜在代码锚定来微调模型进行真实图像编辑,Nitzan 等人 [46] 将这项工作扩展到 GAN 微调的面部领域,以训练个性化的先验,这需要约100 张图像,并且仅限于面部领域。Casanova 等人 [11] 提出了一种实例条件 GAN,可以生成实例的变化,尽管它可能在独特的主体上有困难,并且不能保留所有主体细节。
最后,同时期的 Gal 等人 [20] 提出了一种通过在冻结的文本到图像模型的嵌入空间中使用新标记来表示视觉概念,如对象或风格,从而产生小的个性化标记嵌入。尽管这种方法受限于冻结扩散模型的表现力,但我们的微调方法使我们能够在模型的输出领域内嵌入主体,从而生成保留主体关键视觉特征的新图像。
只提供了具体主题的几张(通常是 3-5 张)随意拍摄的图片,没有任何文本描述,我们的目标是生成具有高细节保真度的主题的新图像,并根据文本提示进行变化。示例变化包括更改主题位置、更改主题属性,如颜色或形状,修改主题的姿势、视点和其他语义修改。我们不对输入图像捕获设置施加任何限制,主题图像可以具有不同的背景。接下来,我们将提供关于文本到图像扩散模型的背景信息(第 3.1 节),然后介绍我们的微调技术,以将唯一标识符与几张图像中描述的主题绑定在一起(第 3.2 节),最后提出了一种类特定的先验保持损失,使我们能够克服微调模型中的语言漂移(第 3.3 节)。
我们的第一个任务是将主题实例嵌入到模型的输出领域,以便我们可以查询模型以获取多样的主题的新图像。一个自然的想法是使用主题的少样本数据集来对模型进行微调。在进行少样本情况下微调生成模型,需要谨慎,因为它可能导致过拟合和模式崩溃,以及未能足够好地捕捉目标分布。已经有研究关于如何避免这些问题的技巧,尽管与我们的工作不同,这一系列工作主要旨在生成类似目标分布的图像,但不要求保持主题。关于这些问题,我们观察到一个奇特的发现,即在使用公式 1 中的扩散损失进行仔细微调设置的情况下,大型文本到图像扩散模型似乎擅长将新信息集成到其领域,而不会忘记先前的信息或过拟合到小型训练图像集。
设计用于少样本个性化的提示。我们的目标是 “植入” 一个新的(唯一标识符,主题)对到扩散模型的 “词典” 中。为了绕过为给定的图像集编写详细的图像描述的繁重工作,我们选择了一种更简单的方法,并为主题的所有输入图像加上标签,标签为 “a [identifier] [class noun]”,其中 [identifier] 是与主题相关联的唯一标识符,[class noun] 是主题的粗略类别描述符(例如,猫、狗、手表等)。类别描述符可以由用户提供,也可以使用分类器获得。我们在句子中使用类别描述符,以将类别的先验与我们的唯一主题的嵌入相联系,发现如果使用错误的类别描述符或不使用类别描述符,将增加训练时间和语言漂移,同时降低性能。实质上,我们试图利用模型对特定类别的先验,并将其与我们主题的唯一标识符的嵌入相联系,以便利用视觉先验生成主题在不同背景下的新姿势和表现。
罕见标记的标识符。一般来说,我们发现现有的英语单词(例如 “unique”、“special”)不太理想,因为模型必须学会将它们从它们原有的含义中分离出来,并将它们重新关联到我们的主题。这促使我们需要一个在语言模型和扩散模型中都具有弱先验的标识符。一种冒险的做法是选择英语语言中的随机字符并将它们连接起来生成一个罕见的标识符(例如“xxy5syt00”)。实际上,标记器可能会将每个字母单独标记化,而扩散模型对这些字母的先验强烈。我们经常发现这些标记具有使用常见英语单词时的类似弱点。我们的方法是在词汇表中找到罕见的标记,然后将这些标记反向映射到文本空间,以减小标识符具有强先验的概率。我们在词汇表中执行罕见标记查找,并获取一系列罕见标记的标识符 f(^V ),其中 f 是一个标记器;一个将字符序列映射到标记的函数,^V 是从标记 f(^V) 中获取的解码文本。该序列可以是可变长度 k,我们发现相对较短的 k = {1,...,3} 序列效果很好。然后,通过使用 f(^V ) 上的逆标记器反转词汇表,我们获得了一系列定义我们唯一标识符的字符 ^V 。对于 Imagen,我们发现使用对应于 3 个或更少 Unicode 字符(不包括空格)的标记的统一随机采样,并使用 {5000, ..., 10000} 范围内的标记效果很好。
根据我们的经验,获得最大主题保真度的最佳结果是通过对模型的所有层进行微调来实现的。这包括对条件文本嵌入的层进行微调,这引发了语言漂移(language drift)的问题。语言漂移是在语言模型中观察到的问题,其中一个在大型文本语料库上进行了预训练,后来进行了特定任务微调的模型逐渐失去了语言的句法和语义知识。据我们所知,这是首次发现扩散模型中出现了类似的现象,其中模型逐渐忘记了如何生成与目标主题相同类别的主题。
另一个问题是可能降低输出多样性的可能性。文本到图像扩散模型自然具有高度的输出多样性。在小规模图像集上进行微调时,我们希望能够生成具有新的视点、姿势和表达方式的主题。然而,存在减少输出主题的姿势和视角多样性的风险(例如,只生成少数视角)。我们观察到这种情况经常发生,特别是当模型训练时间过长时。
为了缓解上述两个问题,我们提出了一个自生的类特定先验保存损失,鼓励多样性并抵消语言漂移。实质上,我们的方法是用模型自己生成的样本监督模型,以便在开始少样微调后保留先验。这允许它生成类先验的多样图像,并保留关于类先验的知识,可以与主题实例的知识结合使用。具体来说,我们通过使用具有随机初始噪声和条件向量
的冻结预训练扩散模型上的祖先采样器(ancestral sampler)生成数据
损失如下所示:
上述损失中的第二项是先验保存项,它通过自己生成的图像来监督模型,而 λ 控制了这一项的相对权重。图 3 说明了使用类生成的样本和先验保存损失对模型进行微调。尽管它很简单,但我们发现这个先验保存对鼓励输出多样性和克服语言漂移非常有效。我们还发现,可以训练更多次迭代,而不会出现过拟合的风险。对于 Imagen [61],我们发现大约 1000 次迭代,λ = 1 和学习率为 10^-5,对于 Stable Diffusion [59],学习率为 5*10^(-6),主题数据集大小为 3-5 张图像足以获得良好的结果。在此过程中,生成大约 1000 个 ”a [class noun]” 样本,但可以使用更少的样本。在 Imagen 上,训练过程在一个 TPUv4 上大约需要 5 分钟,在 Stable Diffusion 上则需要大约 5 分钟在 NVIDIA A100 上完成。
在这一部分中,我们展示了实验和应用。 我们的方法使我们的主题实例的文本引导的语义修改范围广泛,包括重新情境化,修改主题属性,如材料和物种,艺术呈现,以及视角修改。 重要的是,在所有这些修改中,我们都能够保留给主题其独特的视觉特征,赋予主题其独特的身份和本质。如果任务是重新情境化,那么主题的特征不会被修改,但外观(例如,姿势)可能会改变。如果任务是更强的语义修改,比如主题之间的交叉和其他物种/对象,那么在修改后主题的关键特征将被保留。在这一部分中,我们使用 [V] 作为主题的唯一标识符。我们在补充材料中提供了特定的Imagen 和 Stable Diffusion 实现细节。
数据集。我们收集了包括独特的物体和宠物在内的30个主题的数据集,如背包、填充动物、狗、猫、太阳镜、卡通等。我们将每个主题分为两类:物体和生活主题/宠物。其中30个主题中,有21个是物体,9个是生活主题/宠物。
我们为图 5 中的每个主题提供了一个样本图像。这个数据集的图像是由作者采集或来自 Unsplash [1]。我们还收集了 25 个提示:20 个用于物体的重新情境化提示和 5 个属性修改提示;10 个用于生活主题/宠物的重新情境化、10 个装饰化以及 5 个属性修改提示。完整的提示列表可以在附加材料中找到。
对于评估套件,我们对每个主题和每个提示生成了四个图像,总计 3,000 个图像。这使我们能够稳健地测量方法的性能和泛化能力。我们将我们的数据集和评估协议公开提供在项目网页上,以供将来在评估主题驱动的生成方面使用。
评估指标。一个重要方面是主题的保真度:在生成的图像中保留主题细节。为此,我们计算了两个指标:CLIP-I 和 DINO [10]。CLIP-I 是生成图像和真实图像的 CLIP [52] 嵌入之间的平均余弦相似度。尽管这一指标在其他工作中已经被使用 [20],但它并不构建用于区分可能具有高度相似文本描述的不同主题的能力(例如,两个不同的黄色时钟)。我们提出的 DINO 指标是生成图像和真实图像的 ViTS/16 DINO 嵌入之间的平均余弦相似度。这是我们首选的指标,因为与监督网络不同,DINO 没有训练来忽略同一类别主题之间的差异。相反,自监督训练目标鼓励对主题或图像的独特特征进行区分。另一个重要方面是评估提示的保真度,以提示和图像 CLIP 嵌入之间的平均余弦相似度来衡量。我们将其表示为 CLIP-T。
我们将我们的结果与 Gal 等人 [20] 的最新同期工作 “Textual Inversion” 进行比较,使用了他们工作中提供的超参数。我们发现这项工作是文献中唯一可比较的,它是主题驱动、文本引导且生成新图像的工作。我们使用 Imagen 为 DreamBooth 生成图像、使用Stable Diffusion 为 DreamBooth 生成图像以及使用Stable Diffusion 为 Textual Inversion 生成图像。我们计算了 DINO 和 CLIP-I 主题保真度指标以及 CLIP-T 提示保真度指标。在表 1 中,我们展示了 DreamBooth 在主题和提示保真度指标上与 Textual Inversion 之间的显著差距。我们发现 DreamBooth(Imagen)在主题和提示保真度方面得分更高,接近了真实图像的主题保真度的上限。我们认为这是由于 Imagen 具有更大的表现力和更高的输出质量。
此外,我们通过进行用户研究比较了 Textual Inversion(Stable Diffusion)和 DreamBooth(Stable Diffusion)。对于主题保真度,我们要求 72 名用户回答 25 个比较问题的问卷调查(每份问卷 3 名用户),总共 1800 个答案。样本是从一个大型池中随机选择的。每个问题显示了一个主题的真实图像集,以及每种方法生成的该主题的一张图像(带有随机提示)。用户被要求回答问题:“这两幅图像中哪一幅最好地再现了参考物品的身份(例如,物品类型和细节)?”,并包括 “无法确定/两者一样” 的选项。同样,对于提示保真度,我们询问:“这两幅图像中哪一幅最符合参考文本的描述?” 我们使用多数投票平均结果,并在表 2 中呈现它们。我们发现用户对DreamBooth 在主题保真度和提示保真度方面有压倒性的偏好。这在表 1 中的结果中得以体现,DINO 差异约为 0.1,CLIP-T差异约为 0.05,从用户偏好的角度来看,这是显著的。最后,我们在图 4 中展示了质量比较。我们观察到 DreamBooth 更好地保留了主题身份,对提示更加忠实。我们在附加材料中展示了用户研究的样本。
先验保留损失消融。我们对来自我们数据集的 15 个主题在有或没有我们提出的先验保留损失(prior preservation loss,PPL)的情况下进行微调。先验保留损失旨在抵抗语言漂移并保留先验。我们通过计算生成的先验类别随机主题的 DINO 嵌入的平均余弦相似度以计算先验保留指标(prior preservation metric,PRES),以及我们特定主题的真实图像。这个指标越高,随机主题与我们特定主题越相似,表明先验的崩溃。我们在表 3 中报告结果,并观察到 PPL 大大抵消了语言漂移,并有助于保留生成先验类别多样图像的能力。此外,我们使用相同主题和相同提示的生成图像之间的平均 LPIPS [73] 余弦相似度计算了多样性指标(diversity metric,DIV)。我们观察到,我们使用 PPL 训练的模型实现了更高的多样性(稍微降低了主题保真度),这也可以在图 6 中从定性上观察到,使用 PPL 训练的模型对参考图像的环境过拟合较少,可以生成更多不同姿势和表达方式的狗。
类别先验消融。我们对我们数据集中的一个子集的主题(5 个主题)进行了 Imagen 的微调,分别使用没有类别名、随机抽取的不正确的类别名和正确的类别名。对于我们的主题使用正确的类别名,我们能够忠实地适应主题,利用类别先验,从而允许我们在不同上下文中生成我们的主题。当使用不正确的类别名(例如,对于背包使用“罐头”)时,我们的主题和类别先验之间存在竞争,有时会获得圆柱形的背包,或者其他形状不正确的主题。如果我们不使用类别名进行训练,模型就无法利用类别先验,难以学习主题和收敛,可能会生成错误的样本。表 4 显示了主题保真度的结果,我们提出的方法的主题保真度大大更高。
重新情境化。我们可以为特定主题在不同情境中生成新的图像(图 7),使用描述性提示(“a [V] [class noun] [context description]”)。重要的是,我们能够以新的姿势和表达方式生成主题,以前未见过的场景结构和主题在场景中的真实融合(例如,接触、阴影、反射)。
艺术呈现。在给定提示 “a painting of a [V] [class noun] in the style of [famous painter]” 或 “a statue of a [V] [class noun] in the style of [famous sculptor]” 时,我们能够生成我们主题的艺术呈现。与样式转移不同,其中保留了源结构,仅传递了样式,我们能够根据艺术风格生成有意义的新变化,同时保留主题的身份。例如,如图 8 所示,“米开朗基罗”,我们生成了一种在输入图像中不曾见过的新姿势。
新视角合成。我们能够以新的视角渲染主题。在图 8 中,我们生成了输入猫的新图像(具有一致的复杂毛发纹理)在新的视角下。我们强调,模型尚未从后面、下面或上面看到这只具体的猫,但它能够从类别先验中推断知识,仅凭主题的 4 个正面图像就能生成这些新视角。
属性修改。我们能够修改主题的属性。例如,我们在图 8 底部的示例中展示了一种特定的 Chow Chow 狗与不同的动物物种之间的交叉。我们用以下结构的句子提示模型:“a cross of a [V] dog and a [target species]”。特别是,在这个示例中,我们可以看到,即使物种发生变化,狗的身份仍然得到很好地保留 - 狗的脸上具有某些独特特征,这些特征得到很好地保留并与目标物种融合在一起。其他属性修改也是可能的,比如材料的修改(例如,在图 7 中的 “a transparent [V] teapot”)。有些属性修改比其他的更难,取决于基础生成模型的先验。
我们在图 9 中说明了我们方法的一些失败模型。第一个与无法准确生成提示的上下文有关。可能的原因是这些上下文的先验较弱,或者由于在训练集中同时生成主题和指定的概念的概率较低而难以一起生成。第二个是上下文外观纠缠,即由于提示的上下文而使主题的外观发生变化,如图 9 所示,背包的颜色发生变化。第三,我们还观察到当提示与主题首次见到的原始设置相似时,会出现对真实图像的过度拟合。
其他限制包括一些主题比其他主题更容易学习(例如,狗和猫)。偶尔,对于较为罕见的主题,模型无法支持太多的主题变化。最后,主题的保真度也存在变化,一些生成的图像可能包含虚构的主题特征,这取决于模型先验的强度和语义修改的复杂性。
我们提出了一种使用主题的少量图像和文本提示的引导来合成主题的新版本的方法。我们的关键思想是通过将主题与唯一标识符绑定,将给定的主题实例嵌入文本到图像扩散模型的输出领域。值得注意的是,这种微调过程只需 3-5 个主题图像就能够成功进行,使该技术特别易于使用。我们展示了在生成的照片逼真场景中使用动物和物体的各种应用,大多数情况下与真实图像无法区分。
本文提出了一种文本到图像扩散模型的 “个性化” 方法:使用输入主体的一些图像对预训练的文本到图像模型进行微调,使其学会将唯一标识符与特定主体关联起来,唯一标识符可以用于在不同场景中合成主体的新逼真图像。
利用嵌入的语义先验和类别特定的先验保存损失,从而在不出现在参考图像中的多样化情境、姿势、视角和光照条件下合成主体。
本文将该技术应用到了几个任务中,包括主体重新情境化(subject recontextualization)、文本引导的视图合成和艺术渲染,同时保留了主体的关键特征。
个性化提示:“a [identifier] [class noun]”,其中 [identifier] 是与主题相关联的唯一标识符,[class noun] 是主题的粗略类别描述符(例如,猫、狗、手表等)
罕见的标记标识符:在词汇表中找到罕见的标记,然后将这些标记反向映射到文本空间,以减小标识符具有强先验的概率。(现有的英语单词(例如 “unique”、“special”)不太理想,因为模型必须学会将它们从它们原有的含义中分离出来,并将它们重新关联到主题。因此需要一个在语言模型和扩散模型中都具有弱先验的标识符)
类特定先验保存损失:使用自生的类特定先验保存损失,鼓励多样性并抵消语言漂移。具体来说,通过使用具有随机初始噪声和条件向量
的冻结预训练扩散模型上的祖先采样器(ancestral sampler)生成数据
损失如下所示:
上述损失中的第一项是扩散损失项,第二项是先验保存项。架构如图 3 所示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。