dreambooth:fine-tuning text-to-image diffusion models for subject-driven generation

【笔记】Stable Diffusion模型优化入门级介绍 - LoRA vs Dreambooth vs Textural Inversion vs Hypernetworks - 知乎22年9月份一个获奖作品使AI绘画引爆全网,10月我在本地部署了一个StableDiffusionWebUI程序,然后,就没有然后了。看着我本地生成的一张张垃圾图,从小就喜欢画画又没有天赋的我心里默默留下了泪水。 控制力是AIGC…https://zhuanlan.zhihu.com/p/612992813

dreambooth的核心是用一个唯一标识符将用户想要的输入主体编码进输出域,并且在编码的过程中要避免overfitting和language drift,在推理时,当输入唯一标识符时,扩散模型就会去输出域的键值对中找出之前的主体。在操作中,同时对带有标识符的text和不带标识符的text进行finetune,主要是对text侧的编码能力的一次微调。

dreambooth:fine-tuning text-to-image diffusion models for subject-driven generation_第1张图片

只需要几张图,通常是3-5张,dreambooth使用prompt,输入左图训练,可以得到右图,即保证目标图像,环境图像可以根据prompt变换,照明条件的衔接和变化,同时保证对主体关键视觉特征的高保真度。

abstract:个性化的文本到图像扩散模型,对预训练的imagen进行微调,以便它将学习到唯一标识符与特定主体绑定,一旦目标被嵌入到模型的输出域中,则可以使用唯一标识符来合成在不同场景下的目标的真实图像。通过利用嵌入在模型中的语义先验以及新的autogenous class-specific prior preservation loss。

1.introduction

        文本到图像模型通过基于自然语言编写prompt实现高质量和多样化的图像合成,主要优势是从大量图像-文本对中学习到强语义先验关系。但是这类技术缺乏对特定目标的复现,主要原因是输出域的表现力是有限的,对目标再详细的描述也可能产生具有不同外观的实例。

        我们提出了一种文本-图像扩散模型的个性化方法,使其适应特定的图像生成需求。我们的目标是扩展模型的language-vision字典,使其将新词和用户想要生成的特定主体结合起来,一旦新的字典被嵌入到模型中,就可以使用这些词来合成这些主体图像。

        将主体植入模型的输出域中,从而可以利用一个独特的标识符来合成。我们提出了用罕见的标识符来代表一个给定的主体,并对一个预训练,基于文本-图像扩散模型框架进行微调。该框架分为两步,从文本中生成一个低分辨率的图像,然后应用sr扩散模型。首先对低分辨率图像进行微调,输入的图像和prompt,prompt包含一个独特的标识符,A [V] dog,为了防止overfiting和language drift,导致模型将类名dog与具体的实例联系起来,我们提出autogenous,class-specific prior preservation loss,它利用了嵌入在模型中的关于类的语义先验,并鼓励它产生与主体相同的不同实例。在第二步中,我们用输入图像的低分辨率和高分辨率版本对sr进行微调,使得模型能够保持对主体小但重要的细节的高保真度。

dreambooth:fine-tuning text-to-image diffusion models for subject-driven generation_第2张图片

上面这个图是对比图,给定一个特定的时钟(input images),prompt:retro style yellow alarm clock with a white clock face and a yellow number three on the right part of the clock face in the jungle(复古风格的黄色闹钟,白色钟面,钟面右侧有黄色数字3,丛林中),可以看到imagen和dalle2都很难对目标进行很好的重建,但dreambooth可以。

2.preliminaries

cascaded text-to-image diffusion models

扩散模型是一种概率生成模型(probabilistic generative models),通过对从高斯分布中采样的变量进行逐步去噪的训练来学习数据分布。具体来说,相当于学习一个固定长度的马尔科夫前向过程的反向过程。

上面这个公式中x是gt,||中的就是扩散模型监督的loss,l2损失,其中第一部分中zt是去噪图像,第三个式子是扩散模型,推理时,通过DDIM在Zt中进行采样。

vocabulary encoding

文本到图像扩散模型中的text-conditioning对视觉质量和语义保真度具有高度重要性,用的是T5.

3.method

dreambooth:fine-tuning text-to-image diffusion models for subject-driven generation_第3张图片

将主体实例植入到模型的输出域中,并将主体与一个独特的标识符绑定。输入是三五张图和对应类型名称,经过dreambooth微调之后返回一个能够识别唯一标识符的个性化的文本扩散模型,左边是预训练的,finetune之外的,右边是finetune之后的,推理时输入[V]就能识别之前那条狗,通过finetune把狗编码进了输出域中。

dreambooth:fine-tuning text-to-image diffusion models for subject-driven generation_第4张图片

这个结构图不好理解,

3.1 representing the subject with a rare-token identifier

在扩散模型的字典中植入一个新的键值对,这样,给定特定主体的键就能够成这个主体的新图,并在prompt的引导下进行语义修改,如何监督这个过程?

给输入主体贴上一个[标识符][类名称],类名称是粗略的类描述符。标识符在词汇中找到相对罕见的标记。

3.2 class-specific prior preservation loss

微小数据微调产生了overfitting和language drift,语言偏移是指在大型文本语料上预训练的语言模型,在针对特定任务进行微调后,随着在目标任务上的学习改进,逐渐丧失语言的句法和语义知识。提出了prior-preservation loss来解决这两个问题。

和上图对应起来,首先finetune的过程是有两部分的,输入prompt在左侧红色模块是锁定的权重进行的前向生成,这里面就是Xpr,这种先验是有效的。模型finetune中,输入的A [V] dog和A dog是共享权重的,上面这个式子包括两部分,第一部分就是对应上面红色部分,第二部分就是对应下面红色部分。右侧就是生成图的在经过一次sr。       

你可能感兴趣的:(人工智能,深度学习)