2025年2月23日星期日

澳门大学提出DC-ControlNet!解耦控制条件!灵活性和精度超过ControlNet!


论文名:DC-ControlNet: Decoupling Inter- and Intra-Element Conditions in Image Generation with Diffusion Models

论文链接:https://arxiv.org/pdf/2502.14779

开源代码:https://um-lab.github.io/DC-ControlNet/




导读

条件控制在图像生成中起着至关重要的作用,要求输出图像与设计者的规格紧密相符,包括风格、内容、布局等属性。大多数图像生成方法依赖文本提示作为条件控制的主要机制。由于自然语言具有表达性和通用性,文本提示将条件的多个方面整合到单一输入中,从而实现对生成图像的整体控制。


简介

在本文中,我们介绍了DC(Decouple)-ControlNet,这是一个用于多条件图像生成的高度灵活且可精确控制的框架。DC-ControlNet背后的核心思想是解耦控制条件,将全局控制转变为一个集成不同元素、内容和布局的分层系统。这使用户能够更灵活地组合这些单独的条件,从而实现更高效、准确的图像生成控制。以往基于ControlNet的模型仅依赖全局条件,这些条件会影响整个图像,且缺乏对元素或区域进行特定控制的能力。这一局限性降低了灵活性,并可能在多条件图像生成中导致条件理解错误。为应对这些挑战,我们在DC-ControlNet中提出了元素内控制器和元素间控制器。元素内控制器处理单个元素内不同类型的控制信号,准确描述对象的内容和布局特征。对于元素之间的交互,我们引入了元素间控制器,它能根据用户定义的关系准确处理多元素交互和遮挡问题。大量评估表明,在多条件控制的灵活性和精度方面,DC-ControlNet显著优于现有的ControlNet模型和布局到图像生成模型。


方法与模型

该论文提出了一种名为InstructSeg的端到端模型,通过结合对象感知视频感知器和视觉引导的多粒度文本融合模块,统一了图像和视频领域的指令视觉分割任务,并利用多模态大语言模型实现了卓越的性能。


1. 预备知识

扩散模型(DMs)是强大的生成模型,在图像和视频生成方面取得了显著成功。通过在潜在空间中反转添加噪声的过程,潜在扩散模型(LDMs)将随机噪声转换为目标潜在变量。时间步  时  的预测由  和  确定。前向添加噪声过程和反向去噪过程可以表示为:

其中  是一个系数,用于控制步骤  中的噪声强度, 表示用于给出预测  的训练模型。扩散模型的损失函数是均方误差(MSE)损失,它通过给定的噪声数据 、时间步  和条件  来拟合噪声 

为了提供详细的控制,控制网络(ControlNet)[9]引入了逐像素条件  作为额外输入。损失函数可以表示如下:


2. 所提出的解耦控制网络

原始的控制网络(ControlNet)要求用户提供全局条件来控制整个图像的生成。

这种方法迫使用户将所有元素(如前景对象、背景及其相对位置)组合成一个输入,显著降低了控制的灵活性。如引言中所述,这会使编辑过程变得复杂,导致混淆和潜在的伪影。为了解决这一局限性,我们的流程通过将控制网络(ControlNet)的全局条件分解为一个分层结构来解耦控制条件,该结构管理不同的元素及其各自的内容和布局。这种方法增强了用户编辑的灵活性,允许对每个元素及其内部条件进行精确、独立的控制。

图3将我们的方法与控制网络(ControlNet)进行了比较。在这种情况下,用户希望融合多种条件,如背景和前景车辆的边缘以及车辆的颜色。控制网络(ControlNet)要求对条件图像进行手动逐像素编辑,然后将其合并到全局条件中。这个过程耗时且容易导致模型产生误解。此外,控制网络(ControlNet)不支持特定元素的条件,这限制了用户在不影响背景的情况下控制车辆颜色等特征的能力。相比之下,我们的方法允许通过简单的点选和拖动交互进行精确的条件设置,支持特定元素的控制,以准确实现用户期望的前景

图3:(a) ControlNet [9]与(b) 我们的DC-ControlNet之间的用户交互比较。用户可以有选择地识别并分别控制特定元素,从而实现高效的可控生成。

如图4所示,我们的流程由四个主要组件组成:扩散模型、内容编码器、元素内控制器和元素间控制器。内容编码器负责对每个元素的内容条件进行编码,捕捉元素内的不同方面。元素内控制器将每个单独元素的内容条件及其相应布局进行整合。元素间控制器整合多个元素的条件,将它们合并为最终的统一条件,然后将其传递给扩散模型以生成所需的图像。

图4:我们的DC-ControlNet的整体流程。我们的DC-ControlNet的目的是将输出内容特征转换到目标布局上。元素内控制器由10个布局块组成,每个块接收一个内容特征和布局特征。为了使模型能够控制不同类型的布局{点、框、掩码},我们插入了一个布局类型嵌入。然后,如果涉及多个元素,条件特征将通过元素间控制器进一步融合以解决冲突。


3. 元素内控制器

在实际的创意任务中,用户通常依靠各种控制条件来指导目标生成的不同方面。例如,边缘条件可以调节图像的细节和纹理,而深度和法线条件定义几何属性,颜色条件控制表面颜色。然而,由于每个条件都侧重于不同的方面,一个统一的编码器很难准确地对所有这些条件进行编码。为了解决这个问题,我们的流程支持多种内容编码器,允许用户将合适的编码器集成到所提出的DC-ControlNet框架中。

图5(a)展示了我们方法中使用的几种内容编码器,包括用于边缘信息的ControlNet [9]编码器、用于几何属性的ControlNetPlus [10]编码器、用于编码颜色信息的简单卷积神经网络ConvEncoder,以及用于文本信息的BERT [41]。此外,我们为每种类型的条件分配相应的位置嵌入。最后,我们在将特征传递到元素内控制器之前,沿着长度维度将多条件内容进行拼接。

图5:我们的DC-ControlNet组件。(a) 我们的元素内控制器中不同的内容编码器,用于从各个方面控制生成的图像;(b) 元素间控制器的结构,用于调整不同元素的顺序。

一旦元素内内容由内容编码器定义,下一步就是考虑如何将这些内容注入到给定布局中。对于布局图像,我们将其定义为点图、框图或掩码图,布局控制强度从弱到强,它们可以指定元素的位置(即点图)、元素的大致大小和位置(即框图)或元素的确切形状和位置(即掩码图)。

我们的元素内控制器的核心思想是从布局条件中提取逐像素的空间关系,然后以可学习的方式将内容特征注入到相应区域。在这个注入过程中,元素内控制器会考虑元素之间的相对关系以及它们与环境的关联,确保整体布局准确和谐。具体来说,对于元素的布局表示,我们首先通过几个卷积层将其嵌入到布局嵌入  中,然后将其添加到扩散 UNet 中的  中。接下来,我们应用控制类型嵌入来指示内容条件的类型,并以类似于时间嵌入的方式将其注入到残差块(ResBlock)中。

考虑到从内容编码器中提取的内容特征 ,我们的目标是为这些特征配备布局信息,并以其原始分辨率输出,以便它们仍然可以作为 ControlNet 特征有效地注入到 Unet 中。如图 4 所示,控制器包含多个融合块,用于提取不同分辨率的布局特征并将内容特征注入其中。具体来说,我们的布局块包含一个残差块(ResBlock)和一个 Transformer 块,其中残差块接收时间嵌入和布局控制类型嵌入,Transformer 块采用以内容特征作为键和值的交叉注意力机制,然后通过一个卷积层进行输出。

由于布局和内容在像素上未对齐,我们在交叉注意力机制中应用差分定位策略,为条件赋予与查询不同的位置嵌入,以更好地放大这种差异。我们采用带有旋转位置编码(RoPE)[42] 的注意力机制,并在键的位置嵌入中添加一个固定偏移向量  [43]。

其中  表示图像标记的位置。

经过残差块(ResBlock)和 Transformer 块后,我们获得了带有布局信息的内容特征,可用于 Unet。不幸的是,经过这个融合模块后,布局控制网络(Layout-ControlNet)会在原始内容特征的分布中引入失真,导致收敛速度变慢。因此,我们应用交叉归一化(Cross-Normalization),利用原始内容特征的均值和标准差来恢复输出特征。这样,输出特征的分布与原始 ControlNet 的特征一致,避免了由于分布差异较大而导致的突然崩溃,或者避免了使用零卷积(zero-conv)来缓慢对齐 Unet 的额外成本。

通过这种方式,可以充分利用布局信息,实现指定布局的可控生成。此外,其输出仍与原始ControlNet功能完全兼容,以保持其可扩展性。


4. 元素间控制器

原始的ControlNet通过直接添加特征来实现多类型条件的可控生成。然而,这种策略会导致特征融合不合理,因为各个特征图在空间上共享单一强度,从而产生不必要的伪影。

在处理遮挡问题时,例如当"物体A在物体B前面"时,仅仅调整比例并不能实现这样的融合。这是因为模型不能仅根据比例推断元素的相对位置。然而,我们的方法能够实现多个元素不同条件的融合,即使在存在冲突的情况下也是如此。

顺序嵌入。我们将这种遮挡问题定义为层顺序问题。具体来说,在重叠区域,上层的特征应该具有更高的优先级,并且不应被下层的特征遮挡。在推理时,只需简单调整层顺序,就可以轻松实现物体在物体前面的效果。我们处理个元素,并根据它们的时间顺序将它们拼接起来,形成一个类似于视频潜在特征的输入。同样,为了使模型能够感知层顺序,我们为其提供一个顺序嵌入,以确定这些元素的顺序关系。

考虑一组个元素,我们首先对遮挡关系进行顺序排序,然后将它们拼接成一个四维输入:

其中  和  分别表示批量大小、层维度、空间维度和通道维度。

在分配顺序嵌入后,我们得到一个多条件表示,它描述了顺序和空间关系。在我们的实现中,由于使用了旋转位置编码(RoPE),顺序嵌入是在注意力机制之前应用的,而不是直接添加到特征中。

空间和层重加权变换器。为了准确区分每个元素在空间和层维度中所占的位置,我们采用空间和层变换器来预测用于重加权的空间和层权重。融合模块的结构如图 5 (b) 所示。具体来说,我们分别应用空间变换器和层变换器来预测特征在空间维度和层维度上的权重。这些变换器仅用于预测权重,而不是直接修改特征。在空间/层变换器之前,我们首先合并不相关的维度,然后将它们输入到相应的变换器中。在这一步中,我们应用旋转位置编码(RoPE)对空间或层维度的位置进行编码,帮助模型感知元素的相对空间位置或顺序。空间变换器和层变换器的过程可以分别用算法 1 和算法 2 表示。

算法 1 空间重加权变换器



算法 2 层重加权变换器



这里,b、l、n、c 分别表示批量大小、层数、图像标记数量和通道维度。请注意,在空间重加权变换器中,我们应用  位置嵌入。为了表达简便,我们将  位置嵌入和  顺序嵌入统一用符号  表示。

然后,输出会经过一个线性层和一个激活函数,以获得空间或层权重。空间权重用于强调每个元素的主要内容,而层权重则突出显示每个图像标记中哪个元素起着重要作用。由于同一像素不同层之间的关系是相互排斥的,我们应用softmax函数来获得最终权重,这使我们的方法有别于空间重新加权变换器。在获取空间权重时,我们使用一个初始化为零的线性层,随后进行sigmoid激活。通过这些改进,我们能够沿着空间和层维度对特征进行重新加权,从而实现精确控制。此外,这种重新加权方法可以防止模型通过直接修改特定元素的内容来走捷径。最终输出是通过沿层维度求和得到的。


5. 损失函数

为了进一步促使模型学习前景的分布,我们参考文献[39],采用重新加权策略,为前景分配更大的权重。具体来说,我们将前景区域的权重设置为其相对于总潜在区域面积的反比。

在这里,像素的权重是根据前景区域的面积分配的,该面积被设置为与整个图像的面积相等。这意味着前景区域的优化目标与背景的优化目标相同。前景区域越小,其权重越大,以确保目标不会被忽略。请注意,当前景区域的面积等于图像总面积时,损失函数将恢复为原始形式。其次,特征级L1损失通过比较变换后的特征与来自ControlNet的目标特征,对元素内控制器中特征的空间变换进行监督。这两种损失都由进行加权。最终的优化目标可以定义如下:

其中是一个用于平衡损失权重的系数。


实验与结果


1. 提出的DMC - 120k数据集

为了充分发挥我们的多条件图像生成方法的潜力,我们引入了一个新的高质量数据集DMC - 120k以及一个新的基准。该数据集背后的核心创新理念是将包含多个元素的复杂图像解耦为几个独立的条件。然后,这些解耦后的条件被用作训练数据,以指导模型重建原始图像。具体而言,DMC - 120k数据集包含120,000个样本,每个样本至少包含两个带有其的独立元素,以及一个最终目标图像。该数据集被划分为一个包含120,000个样本的训练集和一个包含1,000个样本的测试集。整个数据集将公开提供。数据集构建的完整流程如图6所示。

图6:所提出的DMC - 120k数据集。我们首先生成具有随机采样类别和场景的多元素图像,并按顺序对元素进行修复。然后通过相应的条件提取器获得条件。

图像创建。第一步是生成由多个不同元素组成的复杂图像。为此,我们定义了100多个不同的类别标签,包括动物、家具、家居用品等。然后,我们根据随机选择的类别和场景构建提示词。这些提示词会进一步使用ChatGPT进行优化,以提高其对生成模型的适用性,并增加生成提示词的多样性。对于每个提示词,我们使用一个随机种子,并以像素生成高分辨率图像,采用开源的SDXL [16]和FLUX [15]模型在各种条件下生成高质量的图像数据。

元素解耦。接下来,我们使用GroundingDino [44]检测图像中每个物体的位置和形状。获得掩码后,我们裁剪前景物体并将其上采样到像素,然后用其提取前景条件。如果两个或更多前景元素掩码重叠,我们将它们标记为可能相互遮挡。为了解决遮挡问题,我们首先擦除其中一个掩码,并应用SDXL - 图像修复[16]对图像进行修复。然后,我们重新检测剩余的物体,以确保它们完好无损。对所有相互遮挡的元素重复此过程,直到不再存在遮挡。为了提取背景条件,我们使用所有前景物体的掩码应用SDXL - 图像修复对图像进行修复。

条件生成。最后一步是获取条件。我们通过对前景和背景图像使用各种条件检测器来实现这一点。在我们的数据集中,我们提供了详细的条件,如Canny边缘检测图、HED边缘检测图、深度图、分割图和法线图,用于内容控制。此外,我们还包括点图、框图和掩码图作为布局控制条件。


2. 实验设置

我们的DC - ControlNet基于SDXL [16]实现可控生成。所有实验均在八块A100 GPU上进行混合精度训练。我们的训练分为三个阶段,分别用于训练联合控制网络(Union - ControlNet)、元素内控制器(Intra - Element Controller)和元素内控制器(Intra - Element Controller)。对于联合控制网络,我们使用以下八种条件进行训练:Canny边缘检测(canny)、霍尔边缘检测(HED)、深度图(depth)、分割图(segmentation map)、法线图(normal)、点图(dot map)、掩码图(mask map)和框图(box map)。该模型使用AdamW优化器进行训练,固定学习率为1e - 4,训练50000步。对于元素内控制器,我们采用AdamW优化器,固定学习率为1e - 4,训练50000步,批量大小为32,训练约一天。训练时提示词的丢弃率(dropout rate)设置为0.2。模型中所有训练图像,包括目标图像和条件图像,均设置为。对于元素间控制器(Inter - Element Controller),我们使用与元素内控制器相同的超参数进行训练。


3. 定量结果

在图7中,我们展示了我们方法的可视化结果,该方法将元素的布局条件、内容条件和背景作为输入。与需要用户提供详细布局和内容信息的ControlNet不同,我们的方法将内容和空间布局控制解耦为独立的条件,允许用户独立控制。图8展示了元素内控制器的结果,我们的元素内控制器能够根据不同的布局条件控制不同条件下ControlNet的输出。

图7:我们的DC - ControlNet的结果。每个元素都可以通过给定的内容条件以及布局条件生成像素对齐的输出。此外,在重叠区域,用户可以通过调整图层顺序并利用我们的图层融合模块来解决冲突,以实现感知遮挡的生成。

为了更好地与其他可控图像生成模型进行比较,我们给出了与现有模型的对比。我们比较的方法主要有两类,一类侧重于定制不同条件类型的内容,然后将它们融合(例如,ControlNet [9]、UniControlNet [32]和ControlNet++ [18])。然而,这类方法在冲突区域进行融合时忽略了融合策略,导致冲突区域出现明显的伪影。例如,如图9所示,"包"和"熊"在重叠区域出现了融合现象。

图8:仅使用我们的元素内控制器的结果。元素内控制器能够有效且准确地将给定的条件内容转换为目标布局。

另一种方法侧重于根据给定的提示在特定区域内生成指定的对象。这些方法只能指定大致的对象,无法对内容进行细粒度的控制(例如,布局扩散(Layout Diffusion)[11]、HiCo [13])。此外,它不能有效地指定元素的顺序,而是依赖于训练数据集中的先验知识。如图9所示,生成的内容无法被指定,元素出现的顺序是随机的。

如图9所示,我们提出的模块很好地解决了重叠和冲突问题。只需调整图层顺序就可以生成相应的图像。例如,如果按照"一个包"、"一只熊"和"一个舒适的客厅"的顺序输入条件,就可以生成一张客厅里包在熊前面的图像。同样,调整"一个包"和"一只熊"的条件顺序会生成不同的图像,相同的元素以不同的顺序出现。

图9:与ContorINet [9]、UniControlNet [32]、ControlNet++ [18]、布局扩散(Layout Diffusion)[11]和HiCo [13]的比较。我们使用的提示词是"一个舒适的客厅里有一个包和一只熊"。


4. 消融研究

元素间控制器解决了以下两个问题:多元素融合时的不自然性以及多元素融合时的遮挡问题。为了表示不同元素之间的层序关系,我们为排序后的元素特征分配了一维顺序嵌入,使模型能够感知顺序关系。如图10所示,有了顺序嵌入,模型会错误解读元素的顺序,导致出现类似于传统ControlNet在不同实例间的融合问题。在没有层变换器的情况下也会出现同样的问题,模型无法区分应该显示哪个元素,从而无法执行用户将特定元素定位在前景中的指令。此外,由于直接混合多个元素,图像质量会下降。另外,缺少空间变换器可能会导致生成图像中出现伪影或不自然的区域,这在图10中也能观察到。

图10:元素间控制器的消融研究。顺序嵌入提供了元素之间的顺序信息,使模型能够生成具有遮挡感知的输出。缺少图层变换器和空间变换器会引入伪影。


总结

基于ControlNet的生成方法通常依赖全局条件来引导图像生成。然而,这些方法在多条件图像生成任务中面临灵活性和精度方面的问题,常常导致对条件的误解以及生成输出中出现伪影。为了解决这个问题,本文提出将全局条件解耦为独立的元素、内容和布局,引入了DC-ControlNet。具体来说,DC-ControlNet包括一个元素内控制器,用于管理单个元素内的内容和布局条件,确保元素内的不同条件相互独立且互不干扰。另一方面,DC-ControlNet中的元素间控制器管理不同元素之间的交互,准确处理遮挡和交互关系。此外,我们还提出了一个用于训练和评估多条件生成模型的新数据集。我们的实验结果表明,DC-ControlNet优于现有方法,为可控图像生成提供了更精细、更灵活的解决方案。



感谢你看到这里,也欢迎点击关注下方公众号并添加公众号小助手加入官方读者交流群,一个有趣有AI的AIGC公众号:关注AI、深度学习、计算机视觉、AIGC、Stable Diffusion、Sora等相关技术,欢迎一起交流学习💗~

没有评论:

发表评论

[ComfyUI]FramePack首尾帧工作流,生成丝滑AI视频,实现视频过程精准控制

前几天向大家介绍了通过FramePack实现超长时长AI视频的制作方法,收到了很多小伙伴的留言,今天我们来介绍 前几天向大家介绍了通过FramePack实现超长时长AI视频的制作方法,收到了很多小伙伴的留言,今天向大家介绍如何通过首尾帧控制来提高FramePack视频的可控性...