论文阅读_条件控制_ControlNet
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 控制方法,包含:控制人物表情和动作,控制场景深度,控制画面中的线条等,并展示了相应的效果图。可视作功能介绍和效果展示。

相关文章:
论文阅读_条件控制_ControlNet
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: …...
全链路数据湖开发治理解决方案2.0重磅升级,全面增强数据入湖、调度和治理能力
简介: 阿里云全链路数据湖开发治理解决方案能力持续升级,发布2.0版本。解决方案包含开源大数据平台E-MapReduce(EMR) , 一站式大数据数据开发治理平台DataWorks ,数据湖构建DLF,对象存储OSS等核心产品。支持EMR新版数据…...
【算法题】2769. 找出最大的可达成数字
题目: 给你两个整数 num 和 t 。 如果整数 x 可以在执行下述操作不超过 t 次的情况下变为与 num 相等,则称其为 可达成数字 : 每次操作将 x 的值增加或减少 1 ,同时可以选择将 num 的值增加或减少 1 。 返回所有可达成数字中的…...
023:vue中解决el-date-picker更改样式不生效问题
第023个 查看专栏目录: VUE ------ element UI 本文章目录 修改后的效果示例源代码(共52行)核心内容步骤:(1)更改样式(2)添加参数 专栏目标 在vue项目开发中,我们打算保持颜色的一致…...
爬虫借助代理会让网速快点吗?
亲爱的程序员朋友们,你曾经遇到过爬虫网速慢的情况吗?别着急!今天我将和你一起探讨一下使用代理是否可以加速爬虫,让我们一起进入这个轻松又专业的知识分享。 一、原因和机制的解析 1.IP限制 某些网站为了保护资源和防止爬虫行…...
探索智能文字识别:技术、应用与发展前景
探索智能文字识别:技术、应用与发展前景 前言一张图全览大赛作品解读随心记你不对我对小结 智能文字识别体系化解读图像预处理文字定位和分割文字区域识别图像校正字体识别和匹配结果后处理小结 如何应对复杂场景下挑战复杂场景应对方法小结 人才时代对人才要求合合…...
STL——list用法
一、list介绍 1、list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2、list就是一个带头双向循环链表,list通常在任意位置进行插入、移除元素的执行效率更好。 3、list最大的缺陷是不支持任意位置的随机访问…...
Linux的基础指令
目录 1、ls指令 .和..意义 2、pwd指令 3、cd指令 ①cd ~ ②cd - 关于cd ..的用法 绝对路径和相对路径 4、touch指令 5、mkdir指令 tree指令 6、rmdir指令 7、rm指令 * 8、man指令 9、cp指令 nano: 10、mv指令 11、cat指令 12、more指令 13、less…...
深入浅出Pytorch函数——torch.nn.init.normal_
分类目录:《深入浅出Pytorch函数》总目录 相关文章: 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...
Vue.js知识点学习的一点笔记
一、虚拟DOM 1、原生JS是命令式编程,当渲染在页面的数据发生一点点变化,需要整个重新渲染一编。vue.js渐进式框架有个虚拟DOM的概念,运用diff算法,比较新旧数据,相同的数据不变不重渲染,不同的部分新数据…...
Sui第四轮资助:16个团队瓜分
近日,Sui基金会公布了第四轮开发者资助名单,受助项目均是集中在DeFi、支付、基础设施、游戏、预言机等领域的Sui生态项目,他们是从2023年7月1日之前提交的申请中选出的。在此时间之后提交的任何项目目前正在审查中。 在前三轮资助中累积发放…...
ATC模型转换环境问题案例
ATC(Ascend Tensor Compiler)是异构计算架构CANN体系下的模型转换工具:它可以将开源框架的网络模型(如TensorFlow等)以及Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型;模型转换过程中&a…...
dart其他语法
dart其他语法 类型相关 空安全 不能将一个普通类型对象赋值为 null 避免 为空 报错:对 null 的使用语法进行限制(str ! null)对空安全的允诺 late 延迟初始化的时机 ! 在此时该可用变量一定不为空 void main() {String name zh…...
C++11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once
C11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once 1.设计模式2.单例设计模式:3.单例设计模式共享数据分析、解决4.std::call_once(): 1.设计模式 程序灵活,维护起来可能方便,…...
FANUC机器人加减速倍率指令ACC的使用方法说明
FANUC机器人加减速倍率指令ACC的使用方法说明 单位有一台FANUC机器人(型号:M-900iB 360kg),偶尔会在启动的瞬间会报SRVO-050碰撞检测报警,而事实上机器人并没有开始移动或和其他工件产生碰撞,一直查了很长时间,也没有查到具体的原因,也尝试过重新进行负载推算,但是偶尔…...
奥威BI数据可视化工具:360度呈现数据,告别枯燥表格
随着企业数据量的不断增加,如何有效地进行数据分析与决策变得越来越重要。奥威BI数据可视化工具作为一款强大的数据分析工具,在帮助企业深入挖掘数据价值方面具有显著优势。 奥威BI数据可视化工具是一款基于数据仓库技术的数据分析工具,具有…...
C# Linq源码分析之Take (三)
概要 本文在前两篇Take源码分析的基础上,着重分析Range参数中有倒数的情况,即分析TakeRangeFromEndIterator的源码实现。 源码及分析 TakeRangeFromEndIterator方法用于处理Range中的开始和结束索引存在倒数的情况。该方法位于Take.cs文件中。通过yie…...
Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)
文章目录 Linux Journalctl命令详解1. Journalctl简介2. Journalctl基础使用3. 过滤日志条目4. 时间戳和日志轮转5. 高级应用6. journalctl --help指令文档英文中文 注意事项journal日志不会将程序输出的空行显示,日志会被压缩得满满当当。journal日志不会自动持久化…...
学习内容--
C后台开发_c做后台_人面桃花相映红的博客-CSDN博客 C/C后端开发学习路线总结(附带实习学习经历分享)_c后端开发需要学什么_Linux后台开发狮的博客-CSDN博客 学到什么程度才可以面试大厂?c/c后台开发进阶指南 后端开发(超全&…...
Stable Diffusion:使用自己的数据集微调训练LoRA模型
Stable Diffusion:使用自己的数据集微调训练LoRA模型 前言前提条件相关介绍微调训练LoRA模型下载kohya_ss项目安装kohya_ss项目运行kohya_ss项目准备数据集生成关键词模型参数设置预训练模型设置文件夹设置训练参数设置 开始训练LoRA模型TensorBoard查看训练情况 测…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
