GLIGEN:开集接地文本到图像生成.
现有的大规模文本到图像生成模型不能以文本以外的其他输入方式为条件,因此缺乏生成精确定位目标的能力。本文提出了一种为预训练的文本到图像扩散模型提供新的接地条件输入的方法,仍然保留文本标题作为输入的同时,也可以输入目标边界框、参考图像、关键点等。
1. 模型设计
把目标实体的语义信息记为$e$(通过文本或参考图像表示),把目标实体的空间结构记为$l$(通过边界框、关键点或边缘图表示)。则文本到图像扩散模型的输入指令定义为图像的文本描述和目标实体描述的组合:
\[\begin{aligned} \text{Instruction: } & y=(c,e) \\ \text{Caption: } & c=[c_1,...,c_L] \\ \text{Instruction: } & e = [(e_1,l_1),...,(e_N,l_N)] \end{aligned}\]对于图像的文本描述,使用预训练文本编码器获得每个单词的上下文文本特征:
\[h^c=[h_1^c,...,h_L^c] = f_{text}(c)\]对于目标实体的描述,其中的文本实体$e$使用相同的预训练文本编码器获取其文本特征$f_{text}(e)$;而空间结构(以边界框为例,表示为左上角坐标和右下角坐标$l=[\alpha_{\min},\alpha_{\max}, \beta_{\min}, \beta_{\max}]$)通过傅里叶嵌入提取特征。最后通过多层感知机融合两个输入:
\[h^e=MLP(f_{text}(e),Fourier(l)) \\ h^e=[h_1^e,...,h_N^e]\]其他目标实体的空间结构编码如下:
- 图像提示:使用图像编码器获得特征$f_{image}(e)$;
- 关键点:通过傅里叶嵌入提取每个关键点的坐标$l=[x,y]$特征;
- 空间对齐条件:如边缘图、深度图、法线图和语义图;将UNet的第一个卷积层设置为可训练,将这类条件$l$通过一个下采样网络$f_l$并与输入图像$z_t$连接后输入UNet。
为了向模型中引入目标实体的描述,冻结原始模型的权重,并通过引入门控自注意力层来将实体描述信息引入模型:
\[v = v+\beta\cdot \tanh(\gamma) \cdot TS(SelfAttn([v,h^e]))\]其中$TS(·)$是只考虑视觉token的标记选择操作,$γ$是初始化为$0$的可学习标量。$β$在整个训练过程中被设置为$1$,并且仅在推理期间改变,以提高生成质量和可控性。
考虑一个两阶段推理过程$τ∈[0,1]$。对于具有$T$步的扩散过程,在前$τT$步设$β$为$1$,即在早期阶段确定目标粗略的位置和轮廓;并在后$(1−τ)T$步设$β$为$0$,提高生成图像的质量。这种两阶段的推理过程可以提高图像的视觉质量,或将在一个领域训练的模型扩展到其他领域。
2. 实验分析
实验所涉及的数据集包括:
- COCO2014D:检测数据集,文本描述为空,目标实体的描述设置为目标类别;
- COCO2014CD:检测+文本数据集;
- COCO2014G:图像+文本数据集,使用GLIP检测图像中的文本名词实体,构造伪标签框。
随机采样图像的标题和/或边界框来生成30K张用于评估的图像。使用FID来评估图像质量,使用YOLO-score评估接地精度(即输入边界框与生成实体之间的对应关系)。
实验表明所提方法可以在保持图像生成质量的前提下,成功地将目标边界框作为附加条件。