只用不到10%的训练参数,就能实现ControlNet一样的可控生成!
而且SDXL、SD1.5等Stable Diffusion家族的常见模型都能适配,还是即插即用。
同时还能搭配SVD控制视频生成,动作细节控制得精准到手指。
在这些图像和视频的背后,就是港中文贾佳亚团队推出的开源图像/视频生成引导工具——ControlNeXt。
从这个名字当中就能看出,研发团队给它的定位,就是下一代的ControlNet。
像大神何恺明与谢赛宁的经典大作ResNeXt(ResNet的一种扩展),起名字也是用的这个路数。
有网友认为这个名字是实至名归,确实是下一代的产品,将ControlNet提高了一个档次。
还有人直言ControlNeXt是规则改变者,让可控生成的效率提升了一大截,期待看到人们用它创作的作品。
ControlNeXt支持多款SD系模型,而且即插即用。
其中包括了图像生成模型SD1.5、SDXL、SD3(支持Super Resolution),还有视频生成模型SVD。
话不多说,直接看效果。
可以看到,在SDXL中加入边缘(Canny)引导,绘制出的二次元少女和控制线条几乎完美贴合。
即使控制轮廓又多又细碎,模型依然可以绘制出符合要求的图片。
而且无需额外训练就可与其他LoRA权重无缝集成。
比如在SD1.5中,可以把姿势(Pose)控制条件与各种LoRA搭配使用,形成风格迥异乃至跨越次元,但动作相同的角色。
另外,ControlNeXt也支持遮罩(mask)和景深(depth)的控制模式。
在SD3当中还支持Super Resolution(超级分辨率),可生成超高清晰度的图像。
视频生成当中,ControlNeXt可以实现对人物动作的控制。
比如让蜘蛛侠也跳起TikTok中的美女舞蹈,就连手指的动作也模仿得相当精准。
甚至让一把椅子也长出手跳同样的舞蹈,虽然是抽象了一些,但单看动作复刻得还算不错。
而且相比于原始的ControlNet,ControlNeXt需要的训练参数更少,收敛速度也更快。
比如在SD1.5和SDXL中,ControlNet需要的可学习参数分别是3.61亿和12.51亿,但ControlNeXt分别只需要3千万和1.08亿,不到ControlNet的10%。
而在训练过程中,ControlNeXt在400步左右就已接近收敛,但ControlNet却需要十倍甚至数十倍的步数。
生成的速度也比ControlNet更快,平均下来ControlNet相当于基础模型会带来41.9%的延时,但ControlNeXt只有10.4%。
那么,ControlNeXt是如何实现的,对ControlNet进行了哪些改进呢?
首先用一张图来了解一下ControlNeXt的整个工作流程。
其中轻量化的关键,是ControlNeXt移除了ControlNet中的庞大控制分支,改为引入一个由少量ResNet块组成的轻量级卷积模块。
这个模块负责提取控制条件(如语义分割掩码、关键点先验等)的特征表示。
其中的训练参数量通常不到ControlNet中预训练模型的10%,但仍能很好地学习将输入的条件控制信息,这种设计大大降低了计算开销和内存占用。
具体来说,它从预训练模型的不同网络层的中等距采样,形成用于训练的参数子集,其余参数则被冻结。
另外在设计ControlNeXt的架构时,研究团队还保持了模型结构与原始架构的一致性,从而实现了即插即用。
无论是ControlNet还是ControlNeXt,条件控制信息的注入都是一个重要环节。
在这个过程中,ControlNeXt研究团队主要针对两个关键问题进行了深入研究——注入位置的选择和注入方式的设计。
研究团队观察发现,在大多数可控生成任务中,指导生成的条件信息形式相对简单,且与去噪过程中的特征高度相关。
所以团队认为,没有必要在去噪网络的每一层都注入控制信息,于是选择了只在网络的中间层将条件特征与去噪特征聚合。
聚合的方式也尽可能简单——在用交叉归一化对齐两组特征的分布后,直接将其相加。
这样既能确保控制信号影响去噪过程,又避免了注意力机制等复杂操作引入额外的学习参数和不稳定性。
这之中的交叉归一化,也是ControlNeXt的另一项核心技术,替代了此前常用的zero-convolution等渐进式初始化策略。
传统方法通过从零开始逐步释放新模块的影响力来缓解崩塌问题,但往往导致的结果就是收敛速度慢。
交叉归一化则直接利用主干网络去噪特征的均值μ和方差σ对控制模块输出的特征做归一化,使二者的数据分布尽量对齐。
注:ϵ是为数值稳定性而添加的小常数,γ为缩放参数。)
归一化后的控制特征再通过尺度和偏移参数调整幅度和基线,再与去噪特征相加,既避免了参数初始化的敏感性,又能在训练初期就让控制条件发挥作用,加快收敛进程。
此外,ControlNeXt还借助控制模块学习条件信息到隐空间特征的映射,使其更加抽象和语义化,更有利于泛化到未见过的控制条件。
项目主页:
https://pbihao.github.io/projects/controlnext/index.html
论文地址:
https://arxiv.org/abs/2408.06070
GitHub:
https://github.com/dvlab-research/ControlNeXt
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)