只用不到 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 块组成的轻量级卷积模块。
这个模块负责提取控制条件(如语义分割掩码、关键点先验等)的特征表示。
其中的训练参数量通常不到 C
ontrolNet 中预训练模型的 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
文章推荐更多>
- 1电脑死机怎么办 电脑死机应急处理方案
- 2phpmyadmin安装失败怎么办
- 3电脑键盘哪个是开机键 键盘开机功能键说明
- 4sqlplus命令找不到怎么解决
- 5WordPress怎么清除用户缓存
- 6oracle怎么查看定时任务
- 7 如何制作一个表白网站视频,关于勇敢表白的小标题?
- 8怎么删除oracle注册表
- 9oracle的删除语句怎么写
- 10谷歌浏览器如何翻译英文网页 外文网页翻译功能详解
- 11亚马逊amazon官网入口 亚马逊amazon官网入口登录2025
- 12oracle存储过程执行计划怎么看
- 13phpmyadmin服务器没有响应该怎么办
- 14wordpress网站怎么设置不可被复制
- 15怎么连接mysql数据库
- 16电脑截屏是按哪三个键 三键组合截屏操作教学
- 17为什么电脑没有声音 无声问题全面解析
- 18电脑键盘上怎么切换中文打字 中英文输入法切换指南
- 19oracle数据库密码怎么改
- 20wordpress怎么换域名
- 21oracle怎么回滚数据
- 22uc浏览器官网网址导航入口 uc浏览器官网网址导航页
- 23mac如何下载谷歌浏览器 Mac系统下载浏览器指南
- 24mysql如何设置环境变量
- 25oracle数据库监听服务无法链接标识怎么办
- 26oracle怎么查询存储过程最近编译时间的数据
- 27wordpress如何判断是否为手机移动设备
- 28为何早期版本 Win7 系统用纯色桌面背景会使登录变慢?
- 29wordpress如何设置二级分类目录
- 30phpmyadmin怎么改表名
