强烈建议先阅读:一文弄懂 Diffusion Model
1. 论文信息标题:Multi-Concept Customization of Text-to-Image Diffusion
作者:Nupur Kumari, Bingliang Zhang, Richard Zhang, Eli Shechtman, Jun-Yan Zhu.
【资料图】
原文链接:https://arxiv.org/pdf/2212.04488.pdf
代码链接:https://www.cs.cmu.edu/~custom-diffusion/
2. 引言最近通过文本生成图像的深度学习相关技术取得了非常大的进展,2021已经成为了图像生成的一个新的milestone,诸如DALL-E和Stable diffusion这种模型都取得了长足的进步,甚至达到了“出圈”的效果。通过简单文本prompts,用户能够生成前所未有的质量的图像。这样的模型可以生成各种各样的对象、风格和场景,并把它们进行组合排序,这让现有的图像生成模型看上去是无所不能的。
但是,尽管这些模型具有多样性和一些泛化能力,用户经常希望从他们自己的生活中合成特定的概念。例如,亲人、朋友、宠物或个人物品和地点,这些都是非常有意义的concept,也和个人对于生成图像的信息有对齐。由于这些概念天生就是个人的,因此在大规模的模型训练过程中很难出现。事后通过详细的文字,来描述这种概念是非常不方便的,也无法保留足够多的视觉细节来生成新的personal的concepts。这就需要模型具有一定的“定制”能力。也就是说如果给定少量用户提供的图像,我们能否用新概念(例如宠物狗或者“月亮门”,如图所示)增强现有的文本到图像扩散模型?经过微调的模型应该能够将它们与现有概念进行概括并生成新的变化。这带来了几个比较严峻的挑战:
首先,模型倾向于遗忘现有概念的含义:例如,在添加“moon gate”这一concept的时候,“moon”的含义就会丢失。其次,由于stable diffusion这样的网络往往参数会超级多,所以在小数据上训练模型,容易造成对训练样本进行过拟合,而且采样中变化也有限。此外,论文还关注了一个更具挑战性的问题,即组group fine-tuning,即能够超越单个个体concept的微调,并将多个概念组合在一起。学习多个新的concepts同时也是存在一定的挑战的,比如 concept mixing以及concept omission。在这项工作中,论文提出了一种fine-tuning技术,即文本到图像扩散模型的“定制扩散”。我们的方法在计算和内存方面都很有效。为了克服上述挑战,新方法固定一小部分模型权重,即文本到潜在特征的key值映射在cross-attention layer中。fine-tuning这些足以更新模型的新concepts。为了防止模型丧失原来强大的表征能力,新方法仅仅使用一小组的图像与目标图像类似的真实图像进行训练。我们还在微调期间引入data的augamation,这可以让模型更快的收敛,并获得更好的结果。论文提出的方法实验是构建在Stable Diffusion之上,并对各种数据集进行了实验,其中最少有四幅训练图像。对于添加单个concept,新提出的方法显示出比相似任务的作品和基线更好的文本对齐和视觉相似性。更重要的是,我们的方法可以有效地组成多个新concepts,而直接对不同的concepts进行组合的方法则遇到困难,经常会省略一个。最后,我们的方法只需要存储一小部分参数(模型权重的3%),消耗的GPU memory非常有限,同时也减少了fine-tuning的时间。
3. 方法总结来讲,论文提出的方法,就是仅更新权重的一小部分,即模型的交叉注意力层。此外,由于目标概念的训练样本很少,所以使用一个真实图像的正则化集,以防止过拟合。
对于Single-Concept Fine-tuning,给定一个预训练的text-to-image diffusion model,我们的目标是在模型中加入一个新的concept,只要给定四张图像和相应的文本描述进行训练。fine-tuning后的模型应保留其先验知识,允许根据文本提示使用新概念生成新的图像类型。这可能具有挑战性,因为更新的文本到图像的映射可能很容易过拟合少数可用图像。所以保证泛化性就非常有必要,也比较有挑战。所以就仅仅fine-tuning新的K和V,而对于query,则保持不变,这样就可以增加新概念的同时,保证模型的表征能力不受到太多的影响。优化目标还是diffusion的形式:
概括起来实际上非常简单,就是训练一个k和v的矩阵,来扩充维度,增加模型的表征能力,使其能生成更为丰富的图像内容。
而对于Multiple-Concept Compositional Fine-tuning,为了对多个概念进行微调,我们将每个概念的训练数据集合并,并使用我们的方法将它们联合训练。为了表示目标概念,我们使用不同的修饰符的
由于我们的方法仅更新与文本特征相对应的key和value投影矩阵,因此我们可以将它们合并,以允许使用多个微调概念生成。让集合