在人工智能领域,生成模型尤其是扩散模型,已经在图像、视频生成方面展现出了卓越的能力。近日,更强大的game-changer来了!
贾佳亚团队提出ControlNeXt,一种强大而高效的图像和视频生成控制方法,被众网友评为下一代的ControlNet。
-
项目主页:https://pbihao.github.io/projects/controlnext/index.html
-
论文地址:https://arxiv.org/abs/2408.06070
-
GitHub:https://github.com/dvlab-research/ControlNeXt
相比ControlNet,它仅用不到10%的训练参数,可实现一样的生成效果,而且生成、收敛的速度更快,并完美适配SDXL、SD1.5、svd等模型,让即插即用成为现实。
轻量级,即插即用
作为一个轻量级、即插即用模块,ControlNeXt可与其他LoRA权重集成,无需额外培训即可改变生成风格。
研究团队为了证明ControlNeXt的鲁棒性和通用性,在各种Stable Diffusion模型实现该方法,SD1.5、SDXL、SD3(支持Super Resolution)以及视频生成模型SVD等。任务从图像生成、高分辨率生成、延展到视频生成,结果表明ControlNeXt十分强大,各种任务手到擒来。
从研究团队给出的不同案例可看到,在SDXL中加入边缘(Canny)引导后,轻松便可绘制出和控制线条几乎完美贴合的二次元少女。
无论控制轮廓多且细碎,模型依然可以绘制出符合要求的图片。
此外,我们可以把姿势(Pose)控制条件与各种LoRA搭配使用,无论风格如何迥异他们仍然可以做出一模一样的动作。
ControlNeXt也支持遮罩(mask)和景深(depth)的控制模式,在SD3当中还支持Super Resolution(超级分辨率),可生成超高清晰度的图像。
在视频生成当中,ControlNeXt对人物动作的控制也相当精准。
并且相比ControlNet,ControlNeXt需要的训练参数更少,收敛、生成的速度更快。
比如在SD1.5、SDXL中,ControlNet需要的训练参数分别是3.61亿和12.51亿、6.82亿,但ControlNeXt分别只需0.3亿、1.08亿,比其他方法减少了多达90%的参数。
可控基因生成的一个典型问题是难以训练的收敛,往往需要数千或超十万个步骤的训练来学习条件控制。但我们看到在训练过程中,ControlNeXt在几百步已接近收敛,但ControlNet却需要几千个步数。
生成的速度也比ControlNet更快,平均下来ControlNet相当于基础模型会带来41.9%的延时,但ControlNeXt只有10.4%,速度提升30%!
贾佳亚团队是如何让ControlNeXt实现这一切的呢?
化繁为简,交叉归一化的神奇作用
这张图为我们解释了整个ControlNeXt的工作流程。
贾佳亚团队坚持认为,预训练的大型生成模型是足够强大的,没必要引入这么多的附加参数来实现控制生成的能力。
因为我们看到,研究团队删除了ControlNet庞大的控制分支。这也是ControlNeXt轻量化的关键。
与此同时,ControlNeXt改为引多个ResNet块组成的轻量级卷积模块来替换,这些模块显著小于预训练模型,并且从中提取指导信息,将其与去噪特征对齐。
在训练过程中,研究团队也冻结了大多数预训练模块,并从预训练生成模型中选择性地优化一小部分可训练参数。
在设计ControlNeXt时,研发团队巧妙地保留了与原始模型相似的结构,让它能够轻松地融入现有的系统。
ControlNeXt和它的前身ControlNet一样,都需要在生成过程中加入特定的控制信息,就像给机器下达指令一样,不需要在每个步骤都加入这些指令。研发团队通过观察发现,其实在生成过程中,我们只需要在中间阶段加入一次控制信息,就能达到很好的效果。
ControlNeXt研究团队主要针对两个关键问题进行了深入研究——注入位置的选择和注入方式的设计。
研究团队观察发现,在大多数可控生成任务中,指导生成的条件信息形式相对简单,且与去噪过程中的特征高度相关。
团队尽量让聚合的方式变得简单——用交叉归一化对齐两组特征的分布后,直接将其相加。
这样既能确保控制信号影响去噪过程,又避免了注意力机制等复杂操作引入额外的学习参数和不稳定性。
这之中的交叉归一化,也是ControlNeXt的核心技术,替代了此前常用的zero-convolution等渐进式初始化策略。