Adding Conditional Control to Text-to-Image Diffusion Models——【论文笔记】

本文发表于ICCV2023 

论文地址:ICCV 2023 Open Access Repository (thecvf.com)

官方实现代码:lllyasviel/ControlNet: Let us control diffusion models! (github.com) 

Abstract

论文提出了一种神经网络架构ControlNet,可以将空间条件控制添加到大型的预训练文本到图像扩散模型中。ControlNet将预训练好的大型扩散模型锁定,通过克隆的方式重新使用其深度和强大的编码层,以学习需要加入的各种条件控制,并通过一个特殊的卷积层“零卷积”连接。

通过各种实验证明,通过ControlNet来实现各种如边缘、深度、分割、人体姿势等条件控制的扩散模型是十分有效的,且无论对于大型还是小型数据集而言,训练都是鲁棒的,大量结果表明ControlNet可以促进更广泛的应用程序来控制图像扩散模型。

一、Introduction

目前文本生成图像的扩散模型可以给我们带来高质量的图像生成。然而,文本生成图像模型在对图像的空间组成提供的控制方面是有限的;仅仅通过文本提示精确的表达复杂的布局、姿势、形状和形式比较困难。因此生成一个与我们心理意向准确匹配的图像通常需要无数次的试验。于是我们试图通过提供额外的图像来直接指定想要的图像组合,从而实现更细粒度的空间控制,比如边缘图、人体姿势骨架、分割图、深度、法线等,这些通常被视为图像生成过程中的条件。

以端到端的方式学习大型文本到图像扩散模型的条件控制是具有挑战性的。特定条件的训练数据量可能显著小于可用于一般文本到图像训练的数据。直接微调或继续训练具有有限数据的大型预训练模型可能会导致过度拟合和灾难性遗忘。

本文介绍了ControlNet,这是一种端到端的神经网络架构,可以学习大型预训练文本到图像扩散模型的条件控制(在我们的实现中是稳定扩散)。

二、Related Work

1.微调神经网络

微调神经网络的一种方法是直接用额外的训练数据继续训练它。但这种方法可能导致过拟合、模式崩溃和灾难性遗忘。广泛的研究集中在开发微调策略,以避免这些问题。

这里主要简单介绍了HyperNetwork、Adapter、Addtiive Learning、Low-Rank Adaptation (LoRA)以及Zero-Initialized Layers。

2.图像扩散

这部分首先介绍了当前几个比较有名的图像扩散模型,包括潜在扩散模型LDM,也就是StableDiffusion的基础;以及GLIDE、Imagen、DALL-E2和Midjourney。

然后,介绍了目前比较流行的控制图像扩散模型的方法,主要包括MakeAScene、SpaText、Textual Inversion和DreamBooth等,最后还简单聊了一下图像到图像的转换条件。

三、Method

1.ControlNet

ControlNet会将附加的条件注入到神经网络的块中。

这个所谓的“网络块”用于指代通常放在一起以形成神经网络的单个单元的一组神经层,例如,resnet块、conv-bn-relu块、多头注意力块、Transformer块等。

论文中,以2D特征图为例,即x ∈ Rh×w×c,{h,w,c}分别为地图中通道的高度、宽度和数量。

为了将ControlNet添加到这样一个预先训练的神经块中,首先要锁定(冻结)原始块的参数Θ,同时将该块克隆到具有参数Θc的可训练副本中(图b)。可训练副本将外部条件向量c作为输入。当这种结构应用于稳定扩散等大型模型时,锁定的参数保留了用数十亿张图像训练的生产就绪模型,而可训练副本则重用这种大规模预训练模型,以建立一个深度,鲁棒性和强大的骨干来处理不同的输入条件。

然后,使用零卷积层将训练完的副本块与原始模型连接起来,并将学习到的额外条件信息映射到参数固定的预训练大模型中。如图(b)所示,将副本块与原始模型之间添加两个零卷积层,再与原始模型相连接,这两个零卷积层的权重会在训练过程中逐渐增加。通过这种连接方式,副本块的输出可以与原始模型的输出相加,从而将额外的条件信息引入到预训练大模型中。这样做的好处是,在训练初期,不会往大模型的深层特征中加入任何有害的噪声,同时也保护了预训练大模型的质量和能力。

2.ControlNet for Text-to-Image Diffusion

Stable Diffusion是一个在数十亿张图像上训练的大型文本-图像扩散模型,本质上是个U-Net,包括一个编码器、一个中间块和一个跳连解码器。编码器和解码器都有12个块,完整的模型包含25个块。在这些块中,有8个块是下采样或上采样的卷积层,17个块是主要块,每个块包含四个ResNet层和两个ViT。每个ViT包含几个交叉注意力。文本使用CLIP进行编码,扩散时间步使用位置编码进行编码。

如上图是将ControlNet添加到StableDiffusion中的结构图,如此连接ControlNet的方式在计算上是高效的-由于锁定的复制参数被冻结,因此在最初锁定的编码器中不需要梯度计算来进行微调。这种方法可以加快训练速度并节省GPU内存。在单个NVIDIA A100 PCIE 40 GB上进行的测试表明,与不使用ControlNet优化Stable Diffusion相比,使用ControlNet优化Stable Diffusion只需要增加约23%的GPU内存和34%的训练迭代时间。

3.Training

给定输入图像z0,图像扩散算法逐渐地将噪声添加到图像并产生噪声图像zt,其中t表示添加噪声的次数。给定包括时间步长t、文本提示ct以及特定于任务的条件cf的一组条件。

L是整个扩散模型的总体学习目标。输入的四个参数Zt,t,Ct,Cf分别是:
- Zt:潜在噪声向量
- t:时间步骤t
- Ct:文本提示Prompt
- Cf:额外添加的条件

在训练过程中,会随机将50%的文本提示ct替换为空字符串。这种方法增加了ControlNet直接识别输入条件图像中的语义的能力(例如,边缘、姿势、深度等)作为提示的替代。在训练过程中,由于零卷积不会给网络增加噪声,因此模型应该始终能够预测高质量的图像。

4.Inference 

通过额外的方式进一步去控制ControlNet的外条件去影响去噪扩散过程:

Classifier-free guidance resolution weighting,StableDiffusion依赖于无分类器指导技术(CFG)来生成高质量的图像。它可以根据用户的指定权重来引导图像生成过程。当添加条件图像时,可以选择将其同时应用到图像的多个部分或只应用到特定部分。这样可以根据条件图像的特征来调整生成图像的细节。 为了实现CFG分辨率加权,我们首先将条件图像添加到一部分特定的区域。然后,在稳定扩散和条件图像之间的每个连接处,按照每个区域的大小给予权重。通过降低CFG的引导强度,可以在生成图像时更灵活地控制条件图像的影响。这样可以得到更加清晰和逼真的图像效果。

此外,还可以使用多个调节图像,例如Canny边缘和姿态,来进一步改进生成的图像。通过将不同调节图像的输出直接添加到生成模型中,而无需进行额外的加权或线性插值,可以有效地组合多个控制因素,使生成的图像更加细致和准确。

四、Experiments

1.Ablative Study

消融实验:

(a) ControlNet的原始结构

(b) 用高斯权值初始化的标准卷积层替换零卷积层

(c) 用单个卷积层替换每个块的可训练副本,称之为ControlNet-lite。

主要实验了四种测试:无提示、不充分的提示、具有语义冲突的提示、完美的提示。

结果:轻量级ControlNet-lite(图8 c)不足以解释调节图像,并且在不充分和无提示条件下失败。当零卷积被替换时,ControlNet的性能下降到与ControlNet-lite大致相同,这表明可训练副本的预训练骨干在微调期间被破坏(图8b)。

在ADE20K数据集上进行实验分析,指标是Intersection over Union (IoU),用于评估语义分割标签重建的准确性。

基于语义分割的图像生成评价。FID、CLIP文本图像评分和CLIP美学评分,用于我们的方法和其他基线。

 FID 是用于衡量生成图像与参考模型生成图像之间的差距的指标,FID值越低表示生成图像与真实图像的分布越接近。
CLIP-score是使用CLIP模型计算的文本和图像之间的相似度得分,它衡量了生成图像与输入文本之间的语义一致性。
CLIP-aesthetic是使用CLIP模型计算的生成图像的美学评分,它衡量了生成图像的质量和视觉吸引力。

下面是与其他方法所做的比较:

参考:不得不读 | 深入浅出ControlNet,一种基于生成扩散模型Stable Diffusion、可控生成的AIGC绘画生成算法! - 知乎 (zhihu.com) 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark---RDD(双值类型转换算子)

文章目录 1.RDD双值类型算子1.1 intersection1.2 union1.3 subtract1.4 zip 1.RDD双值类型算子 RDD双Value算子就是对两个RDD进行操作或行动,生成一个新的RDD。 1.1 intersection 对源 RDD 和参数 RDD 求交集后返回一个新的 RDD 函数定义: def inters…

在macos上查看当前进程的栈信息

概述 在调试程序时,如cpu莫名的高或低,一个常用的方式就是打印当前进行的调用栈,然后确认各线程的执行函数是否有异常。 在linux系统中可以使用pstack命令,直接打印各线程的栈信息,可惜在macos上没有该命令。一种解决…

了解VR虚拟现实的沉浸式效果及其技术特点!

VR虚拟现实体验装置作为近年来人气火爆的科技产品,以其独特的沉浸式体验效果吸引了众多用户,那么,你知道这种VR体验装置是如何实现沉浸式体验效果的吗?它又具备了哪些技术特点呢? 一、真实的场景体验 VR虚拟现实技术通…

IOCDI

控制反转IOC、依赖注入DI 控制反转IOC:删除new对象的代码,交给IOC容器管理,加上Component 依赖注入DI:Autowired ,就可以实现程序运行时IOC容器自动注入需要的依赖对象 Bean 声明bean的四大注解: Compon…

SSL证书安装在哪?

安装SSL证书的具体步骤取决于你使用的服务器软件和操作系统。一般来说,SSL证书通常用于加密网站上的数据传输,因此安装过程主要涉及到Web服务器的配置。以下是一般步骤,但请注意这可能因你的具体环境而异。 永久免费SSL证书_永久免费https证…

Retro-2 选择性抑制剂 1201652-50-7星戈瑞

Retro-2选择性抑制剂1201652-50-7是一种化学结构独特的化合物,具有高度选择性和高效性。其化学结构包含多个关键基团,这些基团在抑制Retro-2酶的同时,对其他酶的影响较小。 Retro-2选择性抑制剂1201652-50-7通过与Retro-2酶结合,…

金和OA C6 GetHomeInfo SQL注入漏洞

产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率的核…

手机照片恢复软件有哪些?8个顶级Android 手机/SD 卡恢复照片工具

安卓手机会在后台集成了一个专用的废纸篓文件夹,以记录您图库中的每一个变化。它的作用是,当您在 Android 设备上点击删除照片的按钮时,它会将已删除的照片移动到垃圾箱(某些手机制造商可能使用其他名称)文件夹中一段时…

ensp与HCL共存问题

华子目录 第一种方法第二种方法(修改注册表,建议使用这种方法)第一步第二步第三步(打开注册表修改)第四步(安装HCL)第六步(将注册表中修改的改回原来的内容)最后 第一种方…

大二上总结和寒假计划

👂 Start Again - Connor Price/Chloe Sagum - 单曲 - 网易云音乐 👂 年年 - 徐秉龙 - 单曲 - 网易云音乐 目录 🌼前言 👊成长 (1)情感 (2)运动 (3)穿搭…

C++之​虚函数

虚函数是C中的一个重要概念,它主要用于实现多态。在基类中声明一个虚函数,派生类可以重写这个函数,从而实现不同的功能。当基类指针或引用指向派生类对象时,调用虚函数会根据实际对象类型来调用相应的派生类中的函数实现&#xff…

哈希-力扣01两数之和

题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

阿里云倚天云服务器计算型c8y、通用型g8y、内存型r8y实例性能介绍及活动价格参考

计算型c8y、通用型g8y、内存型r8y是阿里云推出的基于ARM架构的新一代阿里自研倚天实例,采用阿里自研倚天710处理器,基于最新一代CIPU架构,通过芯片快速路径加速手段实现计算、存储、网络性能的大幅提升。其中计算型c8y实例网站应用、各种类型…

java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计

一、源码特点 JSP 体育馆运营管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统采用serlvetdaobean,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。 java Servlet体育馆运营管理系…

38.深入MySQL

深入MySQL 索引 索引是关系型数据库中用来提升查询性能最为重要的手段。关系型数据库中的索引就像一本书的目录,我们可以想象一下,如果要从一本书中找出某个知识点,但是这本书没有目录,这将是意见多么可怕的事情!我们…

葡萄酒的独特国度智利

葡萄酒的独特国度智利 一、独特的智利葡萄酒 智利葡萄酒是在20世纪90年代以后才逐渐走向了世界,由于低税、口味独特等优点,深受大众喜爱。因为智利独待的气候其生产的葡萄别有风味,为其产出优质葡萄酒奠定了基础,再加上欧洲古老的…

C#如何将本地文件上传至阿里云OSS中

要想将文件上传至OSS,那么阿里云的AccessKeyId和AccessKeySecret必不可少 一.去哪找AccessKeyId和AccessKeySecret 进入阿里云工作台,点击右上角头像,选择AccessKey管理,就能看到ID了 但是Secret目前阿里云不支持查看了&#xf…

小H靶场笔记:DC-7

DC-7 January 8, 2024 4:11 PM Tags:Drupal 8;Drush Owner:只惠摸鱼 信息收集 使用arp-scan和nmap扫描C段存活主机,探测到靶机ip:192.168.199.137,且开放80、22端口 探测22、80开放端口的服务、版本、操…

Neo4j恢复

主要记录windows环境下从备份文件中恢复Neo4j, Linux环境同理 备份在上一篇中有介绍,参考: Neo4j备份-CSDN博客 误删数据 为了模拟误删除场景,我们查询Person,并模拟误操作将其进行删除; match(p:Person) return …

Linux的Inode号和日志服务管理

目录 一、Inode号 1.inode和block 2.查看inode信息 二、日志服务管理 1.日志的级别 2.日志的种类 3.日志的功能和日志文件的分类 4.日志的格式和分析工具 三、rsyslog日志处理系统 1、使用Rsyslog创建日志优点 2、Rsyslog配置文件解析 3.通过rsyslog将ssh服务的日志…