轻量高效的ControlNet开源 | ControlNetXt:支持主流生成架构,可与LoRA无缝集成!

news2025/1/11 14:09:31

当前的可控生成方法如ControlNet、Adapaters和ReferenceNet等通常需要大量额外的计算资源,尤其是对于视频生成,并且在训练中面临挑战或表现出较弱的控制力。

对此,港中文提出了一种轻量级可控模块:ControlNeXt,这是一种强大而有效的可控图像和视频生成方法。它被设计成一个更直接、更高效的架构,与基础模型相比,以最小的额外成本替换了繁重的额外分支。ControlNeXt方法还可以与其他 LoRA 权重无缝集成,从而无需额外训练即可实现风格转换。

ControlNeXt可以针对各种基础模型如SD1.5,SDXL,SD3,SVD和任务如具有各种条件的图像/视频生成。

亮点直击

  • 文本介绍了ControlNeXt,这是一种强大而有效的图像和视频生成方法,可显著减少延迟开销和参数。

  • 引入了交叉归一化来微调预训练大模型,促进高效稳定的训练收敛。

  • ControlNeXt可以用作轻量级即插即用模块。可以与其他LoRA权重集成以改变生成样式,而无需额外的训练。

相关链接

项目:github.com/dvlab-research/ControlNeXt

论文:arxiv.org/abs/2408.06070

论文阅读

ControlNeXt: 强大而高效的图像和视频生成控制

摘要

扩散模型在图像和视频生成方面都表现出了卓越而强大的能力。为了更好地控制生成结果,研究人员引入了额外的架构如ControlNet、Adapters和ReferenceNet,以集成条件控制。然而,当前的可控生成方法通常需要大量额外的计算资源,尤其是对于视频生成,并且在训练中面临挑战或表现出较弱的控制力。

在本文中,我们提出了 ControlNeXt:一种强大而有效的可控图像和视频生成方法。我们首先设计了一个更直接、更高效的架构,与基础模型相比,以最小的额外成本替换了繁重的额外分支。这种简洁的结构还使我们的方法可以与其他 LoRA 权重无缝集成,从而无需额外训练即可实现风格改变。至于训练,与其他方法相比,我们减少了高达 90% 的可学习参数。此外,我们提出了另一种称为交叉归一化 (CN) 的方法,以替代“零卷积”,以实现快速稳定的训练收敛。在图像和视频中使用不同的基础模型进行了各种实验,证明了我们方法的稳健性。

方法

ControlNeXt的训练流程。本文探索了一个比直接采用可训练的更显着的参数效率框架。

架构剪枝

ControlNet的关键创新是增加了一个控制分支,该分支提取控制条件并将其注入到主网络中。该分支共享去噪Unet的半个分支的可训练参数,并且执行并行操作,使用零卷积作为集成条件控制的桥梁。这种额外分支的设计引入了巨大的推理成本,额外分支最多增加了50%的延迟。

ControlNeXt删除了控制分支,并将其替换为仅由多个ResNet块组成的轻量级卷积模块。该模块比预训练模型小得多,旨在从条件控制中提取引导信息,并将其与去噪特征对齐。

ControlNeXt实现了显著更快的训练收敛和数据拟合。它可以学习适应条件控制较少的训练步骤,也显著缓解了突然收敛问题。

交叉归一化

作者发现训练崩溃的关键原因是引入的模块和预训练模型之间的数据分布不对齐和不兼容。经过大规模数据训练后,预训练生成模型通常具有稳定的特征和数据分布,其特征是均值和标准差一致。ControlNeXt引入了交叉归一化代替零卷积,保证了训练的稳定和高效。降低了对网络权值初始化的敏感性。

ControlNeXt的参数效率。本文提出 具有各种基本模型的可学习参数的数量。

ControlNeXt还支持各种条件控件类型。选择“mask”,“depth”,“canny”和“pose” 如条件控件,分别从上到下显示。

给出了稳定视频扩散的详细生成结果。我们利用姿势序列作为角色的指导动画。

效果

上图给出了SDXL的详细生成结果。我们从输入的自然图像中提取Canny边缘使用我们的SDXL模型实现样式转换。

我们的方法可以作为一个即插即用模块 适应各种生成模型和LoRA权重,使 不需要训练就可以改变生成风格。

ControlNeXt作为插件单元,以确保稳定 以最小的成本生成。

更多结果

结论

本文介绍了 ControlNeXt,一种先进而高效的可控图像和视频生成方法。 ControlNeXt 采用精简简洁的架构,消除了繁重的辅助组件,以最大限度地减少延迟开销并减少可训练参数。这种轻量级设计使其能够充当具有强大鲁棒性和兼容性的即插即用模块,进一步允许与其他 LoRA 权重集成以改变生成风格而无需额外训练。我们提出了交叉归一化,用于使用新引入的参数对预训练的大型模型进行微调,从而促进更快、更稳定的训练收敛。在各种图像和视频生成主干上进行的大量实验证明了我们方法的有效性和鲁棒性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PCIe Linux MRRS和MPS参数设置策略

1.概述 MPS(Max Payload Size)和MRRS(Max Read Request Size)共同影响PCIe总线的传输效率。如果MPS和MRRS设置的过小,传输相同长度的数据,需要更多的TLP报文,导致PCIe总线传输效率降低&#xf…

PHP多项目多场景排队叫号系统源码

🔔📈多项目多场景排队叫号系统,让等待也高效有序! 一、告别无序等待,智能排队新风尚 你是否曾在医院、银行或政务大厅等地方,面对冗长的队伍感到无奈?多项目多场景排队叫号系统,正…

Mybatis的分页,延迟加载和缓存

目录 分页: 方式一:利用 limit 实现物理分页 利用limit的关键字分页 方式二:RowBounds集合逻辑分页 方式三:插件分页 延迟加载和立即加载: 什么是立即加载: 什么是延迟加载 延迟加载的配置 缓存&a…

XSS漏洞洞讲解

目录 一、XSS漏洞的定义 1.什么是XSS漏洞? 二、XSS漏洞的类型 1.反射型 XSS 2.DOM型 XSS 3.存储型 XSS 三、实战案例演练 第1关 Ma Spaghet 第2关 Jefff 第3关 Ugandan Knuckles 第4关 Ricardo Milos 第5关 Ah Thats Hawt 第6关 Ligma ​第7关 Mafia …

c++ 使用Tesseract5.0 识别图片文字示例

Tesseract5.0相对于旧版本的程序&#xff0c;识别精准度会提升不少&#xff0c;如下&#xff1a; 1、示例1&#xff1a; 图片&#xff1a; 结果&#xff1a; 2、示例2&#xff1a; 图片&#xff1a; 结果&#xff1a; c代码如下&#xff1a; #include <iostream> #in…

C++ 设计模式——建造者模式

建造者模式 建造者模式组成部分建造者模式使用步骤1. 定义产品类2. 创建具体产品类3. 创建建造者接口4. 实现具体建造者5. 创建指挥者类6. 客户端代码 建造者模式 UML 图建造者模式 UML 图解析建造者模式的优缺点建造者模式的适用场景完整代码 建造者模式 建造者模式&#xff…

Hogan 阻抗控制的理解

机器人阻抗控制是一种基于力的控制方法,它通过调节机器人在受到外部力作用时所表现出的抵抗能力(即阻抗),来实现与环境的良好交互。以下是对机器人阻抗控制的详细理解: 一、阻抗控制的基本原理 阻抗控制的核心思想是通过模拟物体的力学特性(如刚度、阻尼和质量),使机…

定时器处理按键抖动

一、按键的抖动 1.按键的定义和原因 按键抖动是由于‌机械按键在闭合和断开时&#xff0c;由于触点的弹性作用&#xff0c;会产生一系列的抖动现象。这种抖动对于人类来说几乎感觉不到&#xff0c;但对‌单片机来说&#xff0c;却是一个可以感应到的过程&#xff0c;且处理时…

SQL - 设计数据库

数据建模 数据建模就是为要存储在数据库中的数据创建模型的过程 步骤 1.理解和分析业务需求 (收集信息) 收集需求&#xff0c;明确业务流程&#xff0c;定义数据需求&#xff0c;分析业务规则 2.构建业务的概念模型 (识别和表示业务中实体、事务或概念以及它们之间的关系) 识别…

APP支付宝授权获取code uniapp

1.点击使用plus.runtime跳转打开支付宝 //打开支付宝授权&#xff0c;在支付宝APP中授权后会在支付宝中跳转到你填写的h5地址//urls是授权地址可以后端拼接也可以前端写死 //以下是一个拼接示例&#xff0c;需修改app_id的值和redirect_uri的值即可 //app_id是商户的APPID&…

WorkPlus-为用户提供IM即时通讯和实时音视频通信本地化服务

WorkPlus作为一家领先的企业级通讯解决方案提供商&#xff0c;为用户提供了本地化服务&#xff0c;以满足IM即时通讯和实时音视频通信的需求。本文将深入探讨WorkPlus本地化服务的重要性以及其为用户提供的IM即时通讯和实时音视频通信的解决方案。 一、本地化服务的意义 低延迟…

【动态规划、dp】[CSP-J 2022] 上升点列 题解

题目描述 在一个二维平面内&#xff0c;给定 n n n 个整数点 ( x i , y i ) (x_i, y_i) (xi​,yi​)&#xff0c;此外你还可以自由添加 k k k 个整数点。 你在自由添加 k k k 个点后&#xff0c;还需要从 n k n k nk 个点中选出若干个整数点并组成一个序列&#xff0c…

从0开始搭建vue + flask 旅游景点数据分析系统(十三)vue + flask 图片上传、用户头像更改

项目是基于我的博文&#xff1a;vue flask 旅游景点数据分析系统 基础上做的&#xff0c;可以参考之前的博客文章。 1 前端修改 主要是修改Profile.vue <!-- 头像上传 --><el-form-item label"头像"><el-uploadclass""action"/api/…

使用 Fyne 构建 GUI 应用:设置标签文本和自增计数器

引言 Fyne 是一个用 Go 语言编写的跨平台 GUI 框架&#xff0c;它提供了一套丰富的组件来帮助开发者快速构建出漂亮的用户界面。在本文中&#xff0c;我们将通过一个简单的案例来演示如何使用 Fyne 创建 GUI 应用程序&#xff0c;该程序包含设置标签文本和自增计数器的功能。 …

按钮(Buttons)-Qt-思维导图-学习笔记

按钮(Buttons) 按钮在 Qt 中的重要性 按钮是 Qt 中最常用的控件之一 通过点击按钮&#xff0c;可以响应事件&#xff0c;实现人机交互效果 按钮在嵌入式系统和 PC 端的界面交互中都是不可或缺的 Qt 内置的六种按钮部件 QPushButton&#xff1a;下压按钮 用法示例 项目创建与…

指针详解(三)

目录 1. 数组名 2. 使用指针访问数组 3. 一维数组传参的本质 4. 冒泡排序 5. 二级指针 6. 指针数组 7. 指针数组模拟二维数组 1. 数组名 在使用指针访问数组的内容时&#xff0c;有这样的代码&#xff1a; int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0];/…

CV党福音:YOLOv8实现实例分割(二)之训练过程

在上一篇博客中&#xff0c;我们已经了解了YOLOv8实例分割的基本流程&#xff0c;本章则是对数据集、以及训练过程等进行进一步的学习。 文章目录 训练整体流程语义分割与实例分割数据集开启训练训练Debug数据封装损失函数初始化前向传播 总结 训练整体流程 训练模型的整体流…

洗衣机洗衣服一些知识

01智能:按衣物多少自动调节合适水位的标准洗涤程序 (需要30分钟时间) 02:大物:较大,较厚的衣服洗涤 03:轻柔:毛织品或内衣洗涤 04:快速:少量清污衣服洗涤 (13分钟) 05:浸泡:先浸泡一段时间再洗涤 06:单洗:只洗衣不脱水 07:单脱:只脱水不洗衣 08:洁桶:清洁洗衣桶 准备工作: (1)…

XSS反射型和DOM型+DOM破坏

目录 第一关 源码分析 payload 第二关 源码分析 payload 第三关 源码分析 payload 第四关 源码分析 payload 第五关 源码分析 payload 第六关 源码分析 第七关 源码分析 方法一&#xff1a;构造函数 方法二&#xff1a;parseInt 方法三&#xff1a;locat…

龙门吊(天车)防撞方案

防撞雷达设备&#xff0c;是一款基于无线微波技术自主研发的应答式高精度无线防撞产品&#xff0c;该产品具有测距精度高&#xff08;最高可到10厘米&#xff09;&#xff0c;测距稳定&#xff0c;无累计误差&#xff0c;粉尘、水汽不影响测距精度&#xff0c;抗电磁干扰等特点…