论文阅读_条件控制_ControlNet

news/2024/11/17 15:49:00/

name_en: Adding Conditional Control to Text-to-Image Diffusion Models
name_ch: 向文本到图像的扩散模型添加条件控制
paper_addr: http://arxiv.org/abs/2302.05543
date_read: 2023-08-17
date_publish: 2023-02-10
tags: [‘图形图像’,‘大模型’,‘多模态’]
author: Lvmin Zhang
code: https://github.com/lllyasviel/ControlNet

读后感

ControlNet 几乎是 Stable Diffusion 中最重要的功能插件,利用它可对画面内容进入精准控制。本文介绍了 ControlNet 的原理和具体功能。

ControlNet 是一种对文本生成图像的优化方法。比如:生成 AI 画作时,画面中人体的形态,面部表情都难以精准控制,ControlNet 基于图生图的操作方式,从另一图中提取对应元素,用于新图像的生成,大幅提升了人对大模型的控制力。

具体方法是调整网络结构,基于预训练的扩散模型,根据新输入的描述和指定任务对应的条件进一步训练模型。使模型既可以在小数据量(<50K)时在个人设备上训练,也可以在大数据量时在集群中训练。

其核心技术是在原大网络参数不变的情况下,叠加一个小型网络,以实现最终的调参。

背景知识

对于文本生成图片的大模型,往往需要考虑以下因素:

  • 数据问题:在训练数据量不够大的情况下,解决过拟合/泛化问题。
  • 资源问题:解决训练时间和内存问题,使模型在个人电脑上也能训练。
  • 形式问题:支持各种图像处理问题具有不同形式的问题定义、用户控件或图像注释。

方法

ControlNet是一种网络结构。如图所示:

原始网络结构如图 2-a 所示,输入为x,输出为y,theta为网络参数;
y = F ( x ; θ ) y=F(x;\theta) y=F(x;θ)
加入了ControlNet的网络如图 2-b 所示,它将大模型的权重复制为“可训练副本”和“锁定副本”:锁定副本用于保留原网络能力,被锁定不参与调参;可训练副本在特定任务的数据集上根据条件c进行训练,以学习有条件控制;网络输出 y 为“可训练副本”和“锁定副本”两部分叠加的结果。

其中还加入了两个"零卷积"层 zero convolution(公式中的 Z),它是1x1且初始值为0的卷积层。
y c = F ( x ; θ ) + Z ( F ( x + Z ( c ; θ z 1 ) ; θ c ) ; θ z 2 ) y_c = F(x;\theta)+Z(F(x + Z(c;\theta_{z1});\theta_c);\theta_{z2}) yc=F(x;θ)+Z(F(x+Z(c;θz1);θc);θz2)
可想见,开始调参时,由于Z网络初值是0,y值只有等式左边部分,即保留了原始网络;后面逐步调参后,等式右边部分开始变化。

将该结构应用到扩散模型,如图-3所示:


左侧是基础网络,权重被锁定,右侧为 ControlNet 部分,只对其 Encoder 部分进行了调整,使模型训练仅需要增加约 23% 的 GPU 内存和 34% 的时间;同时由于左侧的原始网络参数不变,又使用了零卷积的方法,有效避免了直接在网络上调参带偏网络的问题,同时还可以使 ControlNet 的影响可调节。

其它

文章的 3.5 节及附录部分列出了几种常见的 ControlNet 控制方法,包含:控制人物表情和动作,控制场景深度,控制画面中的线条等,并展示了相应的效果图。可视作功能介绍和效果展示。


http://www.ppmy.cn/news/1049985.html

相关文章

空间复杂度

空间复杂度也是一个数学表达式&#xff0c;是对一个算法在运行过程中额外临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。 空间复杂度计算规则基本跟时间复杂度类似&…

五种消息模型简单说明

五种消息模型简单说明 RabbitMQ提供了6种消息模型&#xff0c;但是第6种其实是RPC&#xff0c;并不是MQ&#xff0c;因此不予学习。那么也就剩下5种。但是其实3、4、5这三种都属于订阅模型&#xff0c;只不过进行路由的方式不同。  我们通过一个demo工程来了解下RabbitMQ的…

css实现三角形的几种方法

css实现三角形的方法&#xff1a;1、使用边框实现三角形&#xff0c;利用透明边框和实色边框的组合&#xff0c;可以创建不同方向和大小的三角形&#xff1b;2、使用伪元素实现三角形&#xff0c;通过使用伪元素来创建一个占据父元素一半大小的实心三角形&#xff1b;3、使用tr…

Jeep车型数据源:提供Jeep品牌车系、车型、价格、配置等信息

​​​​​ Jeep是一个极具特色的汽车品牌&#xff0c;它的所有车型都注重实用性&#xff0c;具有越野性能和高性能。Jeep品牌在汽车行业中的口碑一直是非常不错的。如果你想要了解Jeep品牌车系、车型、价格、配置等信息&#xff0c;就可以通过挖数据平台Jeep车型数据源API接口…

基础论文学习(3)——SwinTransformer

目前Transformer应用到图像领域的挑战&#xff1a; 图像分辨率高&#xff0c;像素点多&#xff0c;如果需要更多特征就必须构建很长的序列&#xff0c;但Transformer基于全局自注意力的计算导致计算量较大&#xff0c;能否用窗口分层的形式代替长序列&#xff0c;实现类似CNN感…

[Go版]算法通关村第十三关白银——数组实现加法和幂运算

目录 数组实现加法专题题目&#xff1a;数组实现整数加法思路分析&#xff1a;复杂度&#xff1a;Go代码 题目&#xff1a;字符串加法思路分析&#xff1a;复杂度&#xff1a;Go代码 题目&#xff1a;二进制加法思路分析&#xff1a;复杂度&#xff1a;Go代码 幂运算专题题目&a…

购车小记:辅助驾驶(锋兰达双擎领先版(14W落地)/锐放双擎先锋版(心里预期13W落地))

文章目录 引言I 试驾L2辅助驾驶II 优惠2.1 补贴2.2 坚持免息2.3 礼包III 车型对比3.1 锐放双擎先锋3.2 锋兰达双擎领先版引言 最近想买辆代步车,关注了锐放、锋兰达。 记录下心得。 流程:多家店对比落地价、礼包、政府补贴;合同没有确定不交意向金。 不要因为价格优惠/政府…

WebRTC音视频通话-iOS端调用ossrs直播拉流

WebRTC音视频通话-iOS端调用ossrs直播拉流 之前实现iOS端调用ossrs服务&#xff0c;文中提到了推流。没有写拉流流程&#xff0c;所以会用到文中的WebRTCClient。请详细查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 一、iOS播放端拉流效果 二…