文章链接:https://arxiv.org/pdf/2408.06070
git链接:https://github.com/dvlab-research/ControlNeXt
项目链接:https://pbihao.github.io/projects/controlnext/index.html
亮点直击
提出了ControlNeXt,这是一种强大且高效的图像和视频生成方法,大幅减少了延迟开销和参数量。
引入了交叉归一化(Cross Normalization)用于微调预训练的大型模型,从而促进高效且稳定的训练收敛。
ControlNeXt可以作为一个轻量级的即插即用模块,可以与其他LoRA权重集成,以无需额外训练的方式改变生成样式。
扩散模型在图像和视频生成方面展示了显著且稳定的能力。为了实现对生成结果的更大控制,研究人员引入了额外的架构,如ControlNet、Adapters和ReferenceNet,以整合条件控制。然而,当前可控生成方法通常需要大量额外的计算资源,尤其是在视频生成方面,并且在训练中面临挑战或控制效果较弱。本文提出了ControlNeXt:一种强大且高效的可控图像和视频生成方法。
首先设计了一个更简单且高效的架构,取代了沉重的额外分支,只需在基础模型上增加极少的成本。这种简洁的结构还使本文的方法能够无缝集成其他LoRA权重,实现样式更改而无需额外训练。在训练方面,减少了多达90%的可学习参数,相较于其他方法。此外,还提出了称为交叉归一化(Cross Normalization, CN)的方法,以替代“零卷积”实现快速且稳定的训练收敛。多项实验,使用不同的基础模型在图像和视频领域,证明了本文方法的稳健性。
方法
深入分析架构设计并对其进行剪枝,以构建一个简洁明了的结构。随后介绍交叉归一化(Cross Normalization),该方法用于通过引入额外的参数对大型预训练模型进行微调。
架构剪枝
动机。ControlNet的关键创新在于增加了一个控制分支,该分支提取条件控制并将其整合到主网络中。这个分支共享了可训练参数,这些参数初始化为原始分支一半的副本,并行运行,使用零卷积作为桥梁来整合条件控制。具体来说:
其中, 表示具有可学习参数 的神经模型, 表示零卷积层, 和 分别表示二维特征图和条件控制, 表示控制参数。预训练的大型生成模型 及其预训练参数 完全冻结,而ControlNet分支 则通过从主分支复制进行初始化。
然而,这样的设计虽然引入了控制能力,但也带来了显著的成本。额外的分支会使延迟最多增加50%,这一点在视频生成中尤为显著,因为每一帧都需要处理。此外,这些可训练参数量庞大且固定,几乎等同于所有预训练参数的一半。除了冗余之外,仅优化ControlNet也限制了整个模型的上限,因为它不会影响预训练的生成模型。为提高效率和简洁性,首先通过移除额外的分支简化了ControlNet的原始设计。接着,对预训练模型中选定的子集进行训练,从而得到一个更有效且高效的架构。
架构剪枝。 需要注意的是,预训练模型通常是在大规模数据集(例如LAION-5B)上进行训练的,而微调则始终在规模小得多的数据集上进行,往往小上千倍。基于此,认为预训练的大型生成模型已经足够强大,且无需引入如此大量的额外参数来实现控制生成的能力。
具体来说,移除了控制分支,并用一个轻量级的卷积模块代替,该模块仅由多个ResNet块组成。这个模块的规模远小于预训练模型,旨在从条件控制中提取指导信息,并将其与去噪特征对齐。由于其小巧的体积,更多地依赖生成模型本身来处理控制信号。在训练过程中,冻结了大部分预训练模块,并选择性地优化预训练生成模型中一小部分可训练参数。这种方法将可能由训练过程引起的遗忘风险降到最低。它还可以与参数高效的微调方法(如LoRA)结合使用。研究者们努力通过避免对原始架构进行重大修改来保持模型结构的一致性。直接训练这些模型还能带来更大的有效性和效率,并能自适应地调整可学习参数的规模以适应不同的任务。表达为:
其中, 表示预训练参数中的一个可训练子集,而 是用于提取条件控制的轻量级卷积模块。基于上述流程,力求在尽可能减少额外开销和延迟的同时,保持模型的一致性。
关于条件控制的注入,观察到对于大多数可控生成任务,控制信号通常具有简单的形式或与去噪特征保持高度一致,因此无需在多个阶段插入控制信号。在单个选定的中间块中将控制信号与去噪分支集成,通过交叉归一化进行归一化后,直接将其添加到去噪特征中。该模块可以作为一个即插即用的模块,由轻量级卷积模块和可学习参数构成,这些参数是预训练模型的一个子集,其表示如下:
其中,,且 。
交叉归一化
动机。 在对预训练大型模型进行持续训练时,通常面临的一个问题是如何适当地引入额外的参数和模块。由于直接组合新的参数通常会导致训练崩溃和收敛性差,最近的工作广泛采用了零初始化,即将连接预训练模型和新增模块的桥接层初始化为零。这种操作确保了在训练开始时新引入的模块不会产生影响,从而实现稳定的热身阶段。然而,零初始化可能导致收敛缓慢并增加训练挑战,因为它阻止了模块从损失函数中获得准确的梯度。这会导致一种称为“突发收敛”的现象,即模型在经过一段较长的训练时间后并没有逐渐学习条件,而是突然开始遵循这些条件。
本节分析了在添加新参数时训练崩溃的原因,并提出了交叉归一化作为零卷积的替代方案,以确保稳定和高效的训练。
交叉归一化。 研究者们发现训练崩溃的关键原因是引入的模块和预训练模型之间的数据分布不对齐和不兼容。经过大规模数据训练后,预训练生成模型通常表现出稳定的特征和数据分布,其特征是均值和标准差的一致性。然而,新引入的神经模块通常仅使用随机方法(例如高斯初始化)进行初始化。这导致新引入的神经模块产生具有显著不同均值和标准差的特征输出。直接添加或组合这些特征会导致模型不稳定。
归一化方法(如bn和层归一化)通过标准化层输入来提高训练稳定性和速度。它们通过将输入标准化为零均值和单位方差来实现这一点,这在神经网络训练中被广泛使用。受到这些方法的启发,本文提出了交叉归一化,以对齐处理过的条件控制和主分支特征,从而确保训练的稳定性和速度。
将来自主去噪分支和控制转移分支的特征图分别表示为 和 ,其中 。交叉归一化的关键是使用从主分支 计算的均值和方差来对条件特征 进行归一化,以确保它们的对齐。首先,计算去噪特征的均值和方差:
然后,使用去噪特征的均值和方差对控制特征进行归一化:
其中, 是为数值稳定性而添加的小常数, 是允许模型缩放归一化值的参数。
交叉归一化对齐了去噪特征和控制特征的分布,充当了连接扩散和控制分支的桥梁。它加速了训练过程,确保即使在训练开始时控制对生成的有效性,并减少对网络权重初始化的敏感性。
实验
本节展示了在各种任务和基础模型上进行的系列实验。本文的方法在图像和视频生成方面表现出卓越的效率和通用性。
通用性
为了展示本文方法的鲁棒性和通用性,首先在多个基于扩散的基础模型上实现了本文的方法,如Stable Diffusion 1.5、Stable Diffusion XL、Stable Diffusion 3 和 Stable Video Diffusion。这些实验涵盖了图像生成、高分辨率生成和视频生成等广泛任务,并使用了各种类型的条件控制。定性结果如下图1所示。结果表明,本文的方法具有鲁棒性和广泛的适应性,能够有效适应各种架构,并满足不同任务的要求。
各种条件控制。 ControlNeXt 还支持各种类型的条件控制。在这一小节中,选择了“mask”、“depth”(深度)、“canny”(边缘)和“pose”(姿态)作为条件控制,分别展示在下图5的从上到下的位置。
所有实验均基于Stable Diffusion 1.5架构进行构建。更多稳定视频生成的结果(利用姿态序列作为角色动画的指导)展示在图6中。SDXL的结果展示在图7中,通过提取输入图像中的Canny边缘并使用SDXL模型生成输出,实现了风格迁移。
训练收敛性
可控生成中的一个典型问题是训练收敛困难,这意味着需要数千步或更多步骤的训练才能学习条件控制。这种现象被称为“突发收敛问题”,发生在模型最初无法学习控制能力,然后突然获得这一技能。这主要由以下两个方面造成:
-
零卷积抑制了损失函数的影响,导致模型在学习初期难以有效开始学习,从而延长了热身阶段。
-
预训练生成模型完全冻结,而ControlNet作为一个适配器,无法立即影响模型。
在ControlNeXt中,消除了这两个限制,从而显著加快了训练收敛速度。使用了两种类型的控制进行了实验,结果和比较如下图3所示。可以看出,ControlNeXt在仅经过几百步训练后就开始收敛,而ControlNet则需要数千步。这显著缓解了突发收敛问题。
效率
本文的方法仅向原始预训练模型添加了一个轻量级模块,确保其保持高效,并且不会引入显著的延迟。本节提供了更多细节,并进行了额外的实验以展示本文方法的效率。
参数。 首先,提供了关于参数的统计信息,包括总参数和可学习参数,这些统计仅计算了UNet模型(不包括VAE和编码器部分)。结果显示在下表1中。可以看出,本文的方法仅添加了一个轻量级模块,额外参数非常少,保持了与原始预训练模型的一致性。至于训练,本文的方法最多仅需不到10%的可学习参数,使其成为一个非常轻量且即插即用的模块。您还可以根据不同的任务和性能要求自适应调整可学习参数的数量。关于参数数量对模型影响的更多细节将在后文讨论。
推理时间。 研究者们比较了不同方法在各种基础模型上的推理时间。结果显示在下表2中,该表呈现了一个推理步骤的计算时间,仅考虑了UNet和ControlNet部分,排除了编码和解码过程。可以看出,由于本文的方法仅添加了一个轻量级模块,与预训练基础生成模型相比,其延迟增加极小。这确保了本文方法在效率上的显著优势。
即插即用
ControlNeXt 的设计旨在保持生成模型原始架构的一致性,确保其兼容性和有效性。它可以作为一个即插即用、无需训练的模块,与各种基础模型和开源 LoRA 无缝集成,实现生成风格的变化。
无需训练的集成。 研究者们首先收集了从 Civitai 下载的各种 LoRA 权重,涵盖了不同的生成风格。然后,在基于 SD1.5 架构的各种基础模型上进行了实验,包括 SD1.5、AnythingV3 和 DreamShaper。结果显示在下图8中。可以观察到,ControlNeXt 可以以无需训练的方式与各种基础模型和 LoRA 权重集成,有效地改变生成图像的质量和风格。这主要归因于本文方法的轻量级设计,该设计主要保持了预训练基础模型的一致性,并且仅添加了极少的附加模块。这些优势使其能够作为一个具有通用兼容性的即插即用模块。
稳定生成。 为了生成令人满意的结果,生成模型通常需要迭代调整提示。ControlNeXt 作为一个插件单元,能够以最小的努力和成本实现稳定生成。提供了一个简单的提示,“一个女人”,生成结果的比较(有无本文的方法)如下图9所示。
结论
本文提出了 ControlNeXt,一种先进且高效的可控图像和视频生成方法。ControlNeXt 采用简化和精简的架构,消除了重型辅助组件,以最小化延迟开销并减少可训练参数。这种轻量级设计使其能够作为一个即插即用模块,具有强大的鲁棒性和兼容性,并进一步支持与其他 LoRA 权重的集成,从而在无需额外训练的情况下改变生成风格。提出了交叉归一化,用于对预训练大型模型进行微调,处理新引入的参数,从而促进更快和更稳定的训练收敛。通过在各种图像和视频生成基础模型上的广泛实验,展示了本文方法的有效性和鲁棒性。
参考文献
[1] ControlNeXt: Powerful and Efficient Control for Image and Video Generation
更多精彩内容,请关注公众号:AI生成未来