github链接:GitHub - TencentARC/T2I-Adapter: T2I-Adapter
摘要
提出了在冻结原始大型文生图模型(T2I)的情况下,学习一个简单和轻量的T2I-Adapter来对齐文生图模型中的内部知识和新引入的外部控制信号,这样就可以根据不同的条件训练各种适配器,在生成结果的颜色和结构上实现丰富的控制和编辑效果。
引言
现在的文生图模型可以生成很好的结果,但也依赖于精心设计的提示符(prompt),同时生成过程中也缺乏灵活的用户控制,无法引导生成的图像准确实现用户的想法。对于非专业的用户,生成的结果往往是不受控制和不稳定的。作者认为文生图模型无法生成好例如“带翅膀的汽车”和“带兔子耳朵的钢铁侠”之类的图片是因为文本无法提供准确的结构指导,而非本身不具备这样的生成能力。
在该工作中,作者试图探究是否可以用某些方式“挖掘”文生图模型隐式学习的能力,特别是高级结构和语义能力,然后显式地使用这些能力来更精准地控制生成。
作者认为一个小的adapter模型就可以达到这个目的,因为它并不是学习新的生成能力,而是学习控制信号到文生图模型中内部知识的映射。换言之,研究的主要问题是一个“对齐”问题,即外部控制信号与模型内部知识之间的对齐。
因此作者提出了一种文生图Adapter,只需要使用相对较少的数据来学习这种对齐,该Adapter为预训练的文生图模型提供额外的指导。我们可以根据不同的条件训练各种Adapter,它们可以为预训练的文生图模型提供更加精确可控的生成指导。
文生图Adapter作为注入引导信息的额外网络,具有以下实用价值:
即插即用:它不影响现有文生图模型的网络拓扑结构和生成能力;
简单小巧:可以很容易插入到现有文生图模型中,训练成本低,并且在扩散模型中只需要一次推理。它们是轻量的,大约包含77M的参数,占用300M左右的存储空间。
-灵活:可以训练多种用于不同控制条件的Adapter,包含空间颜色控制和精细的结构控制。
-可组合:多个Adapter可以很容易的组合在一起,实现多条件控制。
-泛化性:一次训练以后可以直接用于任意从同一个文生图模型微调得到的模型。
Adapter网络结构设计
Adapter中包含四个特征提取模块和三个降采样模块,原始的输入条件是512x512的分辨率,使用pixel unshuffle操作将图像降采样到64x64,在每一个尺度上,一个卷积层和两个残差块被用于提取条件特征,每一个尺度都与SD中的对应尺度层的维度相同,然后对应尺度上Adapter的特征与SD的特征进行相加。
结构控制
作者提出的Adapter具有良好的通用性,可以支持各种结构控制,包括草图、深度图、语音分割图和节点图,这些模式的条件映射到特定任务的适配器中,以提取条件特征。
空间调色板
相较于结构,颜色也是图像的一个基本组成部分,主要涉及色调和空间分布两个方面。在本文中,作者设计了一个空间调色板来粗略地控制生成图像的色调和颜色分布。为了训练空间调色板,有必要为图像的色调和颜色分布设计表征。作者使用双三次下采样来去除图像的语义和结构信息,同时保留足够的颜色信息。采用最近邻上采样来放大图片至原始尺寸,最后色调和颜色分布被表征为几个空间排列的色块。经验上,作者使用64倍下采样和上采样来完成这个过程,在训练时就使用这样的颜色图作为控制条件输入。
多Adapter控制
除了使用单个Adapter,文生图模型也支持多个条件的控制。作者使用多个控制条件生成的条件embedding加权求和的方式来生成最终的组合控制条件。这一组合形式可以用于许多有趣的应用,比如使用线稿图来提供结构指导使用空间调色板来控制颜色生成。
模型优化
优化过程中保持SD中的参数不变,只优化Adapter中的参数。每个训练样本是一个三元组,包含原始图像、条件输入和文本提示,训练过程与原始SD的训练过程相似。
训练中的非均匀时间步采样
作者在实验中发现在Adapter中引入时间嵌入有助于提高控制能力,但这一设计会要求Adapter参与到每次迭代中,从而与设计的轻量化初衷相背。作者做实验将DDIM的推理过程均分为三阶段,分别为开始阶段、中期和末期,从结果发现控制信号在中期和后期对于生成结果的影响很小,这说明生成结果的主要内容是在采样前期确定的。因此,如果从后面的部分采样t,在训练过程中会忽略指导信息。
为了增强Adapter的训练,作者采用了非均匀采样以增加t在采样前期下降的概率,作者采用三次函数作为t的分布,作者将所设计的非均匀与均匀采样进行了比较,从图中可以看到非均匀采样弥补了均匀采样控制力弱的问题。
实验
作者使用batch=8在训练集上进行了10个epoch的训练,使用Adam作为优化器,学习率设置为1e-5。在训练中将输入图像和控制图都缩放到512x512的大小,并采用了预训练好的SD1.4模型作为文生图模型。训练是在4台32G显存的英伟达V100上进行的,可以在3天内完成。作者实验了5种类型的控制条件:草图、语义分割图、姿态图、颜色图和深度图。
作者展示了单个Adapter在颜色、草图、姿态图、语义分割图和深度图等控制条件下的生成效果。
在SD inpainting任务中的控制示例
作者还展示了多个Adapter不需要训练也可以进行组合控制,作者展示了深度Adapter和姿态图Adapter组合控制以及草图Adapter和颜色Adapter进行组合控制的例子。
另外作者还展示了Adapter的泛化性,一次训练后在同一种文生图模型的变种上也可以同样发挥作用。
作者还尝试了训练不同参数量的Adapter,尽管结果有些差异,但都可以发挥出控制的能力
作者实验了在SD模型的不同位置添加控制信号的效果,如上图所示,可以看到将控制信号注入编码能得到更好的结果,多尺度的控制信号对结果有积极的作用,在编码器和解码器中同时注入控制信号会获得更高的控制强度但是会限制纹理的丰富度。作者最后是选择将控制信号注入到SD中Unet所有的编码器层
点评:
作为早期对文生图模型进行控制生成的工作,T2I Adapter的工作确实是很有价值的,在后续的IP-Adapter、ControlNet以及一些基于参考图像、控制信号进行视频生成的工作中都可以看到该研究的影子,学习一下对于更好理解现在一些基于SD的文生图、图生图、视频生成等研究工作有很好的指导意义。