本文来源公众号“我爱计算机视觉”,仅用于学术分享,侵权删,干货满满。
原文链接:视频生成game-changer来了!贾佳亚团队提出下一代 ControlNet
在人工智能领域,生成模型尤其是扩散模型,已经在图像、视频生成方面展现出了卓越的能力。近日,更强大的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等渐进式初始化策略。
传统方法通过从零开始逐步释放新模块的影响力来缓解崩塌问题,但往往导致的结果就是收敛速度慢。
交叉归一化则直接利用主干网络去噪特征的均值μ和方差σ对控制模块输出的特征做归一化,使二者的数据分布尽量对齐。
(注:ϵ是为数值稳定性而添加的小常数,γ为缩放参数。)
归一化后的控制特征再通过尺度和偏移参数调整幅度和基线,再与去噪特征相加,既避免了参数初始化的敏感性,又能在训练初期就让控制条件发挥作用,加快收敛进程。ControlNeXt还借助控制模块学习条件信息到隐空间特征的映射,使其更加抽象和语义化,更有利于泛化到未见过的控制条件。
整体而言,ControlNeXt采用精简的结构,消除了沉重的辅助组件,以最小化延迟开销并减少可训练的参数。这种轻量级的设计使其能够作为具有强大鲁棒性和兼容性的即插即用模块,进一步允许与其他LoRA权重集成以更改生成风格而无需进行额外的训练。
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。