ControlNet: 控制扩散模型的魔法

news2024/11/19 20:23:07

出品人:Towhee 技术团队

作者:王翔宇

从去年以来 AIGC 的技术不断冲击人们的想象力,针对图片的扩散模型(midjourney 和 stable diffusion)已经可以在给于 prompt 下生成非常吸引人的图像,但是如果希望以别的形式(文本可能不能完全的控制图像内容,比如一个复杂的人物姿态)来去进行输入的话,能不能在现有的大模型(例如 Stable Diffusion)进行一些改造?

这篇文章对这个问题进行了一些讨论并提出了 ControlNet 来进行解决。作者希望能够额外训练一些参数,在保持原有大模型的参数情况下(不发生灾难性遗忘,抛弃已学习的复杂语义知识)。

ControlNet,是一种端到端的神经网络架构,用于控制大型图像扩散模型(例如 Stable Diffusion),以学习任务特定的输入条件。ControlNet 将大型扩散模型的权重分为“可训练副本”和“锁定副本”:锁定副本保留了从数十亿图像中学到的网络能力,而可训练副本则通过对任务特定数据集的训练来学习条件控制。可训练和锁定的神经网络模块通过一种称为“零卷积”的独特卷积层连接,其中卷积权重以一种学习的方式从零逐渐增长到优化的参数。由于保留了生产就绪的权重,训练在不同规模的数据集上具有鲁棒性。由于零卷积不会给深层特征增加新的噪声,与从头开始训练新层相比,训练速度与微调扩散模型的速度相当快。

作者使用不同条件的各种数据集(如 Canny 边缘、Hough 线、用户草图、人体关键点、分割图、形状法线、深度等)训练了多个 ControlNet。

ControlNet(控制网络)通过操纵神经网络块的输入条件来进一步控制整个神经网络的整体行为。在这里,"网络块"是指作为经常使用的单元组合在一起构建神经网络的一组神经层,例如"resnet"块、“conv-bn-relu"块、多头注意力块、Transformer 块等。Θ 表示原始神经网络中的参数,c 为进行控制的输入,作者将 Θ 中的所有参数锁定,并将其复制为一个可训练的副本 Θc。复制的 Θc 使用外部条件向量 c 进行训练。在本文中,作者将原始参数和新参数称为"锁定副本"和"可训练副本”。制作这样的副本而不是直接训练原始权重的动机是为了避免在数据集较小时过拟合,并保留从数十亿张图像中学习到的大型模型的生产就绪质量。

其中 Z 表神经网络块通过一种称为"零卷积"的独特卷积层连接,即 1×1 卷积层,其权重和偏置都初始化为零。通过这种零卷积设计,可以使得 ControlNet 在训练之初完全等价于初始网络,获得一个更好的初始化。接下来,作者根据 Stable Diffusion 设计了一个 ControlNet。

接下来,作者利用现有的一些图像处理方法构建了多种多样的输入,将图像处理为(图像处理结果,原始图像)的图像对,这些方法包括了 Canny Edge,Hough Line,HED Boundary, Human Pose,只要你有任意的图像处理方法,你都可以使用它来构成图像对,训练出你希望的图像生成模型,如下就是一个例子,通过输入姿态来生成高质量的图像,从而可以更加细粒度的控制生成图像的内容。

在这里插入图片描述

现在 ControlNet 已经成为了 Stable Diffusion 相当火爆的一个插件,可以利用它生成出更加符合你需要的图片。

[1]https://arxiv.org/pdf/2302.05543.pdf
[2]https://github.com/lllyasviel/ControlNet


  • 如果在使用 Milvus 或Zilliz 产品有任何问题,可添加小助手微信 “zilliz-tech” 加入交流群
  • 欢迎关注微信公众号“Zilliz”,了解最新资讯。

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

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

相关文章

网络安全论坛哪里找?

下面给大家介绍一些比较常见的国内安全论坛: 1、黑客基地:http://www.hackbase.com/ 黑基网(WWW.HACKBASE.NET)成立于2003年,由IT精英和白帽黑客共同发起创立,致力于打造高端IT与网络安全的技术交流平台&…

数据结构及算法应用

第十四章、数据结构及算法应用 1、分治法 对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地…

janus videoroom 对接freeswitch conference 篇1

janus videoroom 实时性非常好, freeswitch conference的功能也很多 ,有没办法集成到一块呢 让很多sip 视频终端也能显示到videoroom 里面, 实现方式要不两种 1.改源码实现 (本文忽略 难度高) 2.找一个videoroom管…

什么是JS事件流

什么是JS事件流? 一&#xff1a;事件冒泡 <!DOCTYPE html> <html lang"en"> <head><title>事件冒泡例子</title> </head> <body><div id"box">点击我</div> </body> </html>上述的代…

需求管理(三)需求过程

一、需求规格说明 1.1需求规格说明概述 需求获取的目标是得到用户的需求——收集需求信息 需求分析的目标是更深刻的理解用户的需求——界定能够让用户满意的解决方案和准则 需求规格说明的目标是定义用户的需求——准确描述其需求和解决方案 需求规格说明文档的撰写流程如下图…

DHCP+链路聚合+NAT+ACL小型实验

实验要求: 1.按照拓扑图上标识规划网络。 2.使用0SPF协议进程100实现ISP互通。 3.私网内PC属于VLAN1O, FTP Server属于VLAN2O,网关分 别为所连接的接入交换机&#xff0c;其中PC要求通过DHCP动态获取 4:私网内部所有交换机都为三层交换机&#xff0c;请合理规划VLAN&#…

关于对tinymce富文本编辑器使用的心得

本文分为一下几个功能&#xff1a; tinymce初始化的一些配置在工具栏和文本中间插入特定的标题和摘要自定义工具栏按钮&#xff0c;实现特定功能上传图片时去掉网络上传功能粘贴过来的图片实现默认上传给图片添加水印功能实现一键排版 一、tinymce初始化的一些配置 1、首先需要…

机械大专生能学会云计算吗,完全零基础的

机械大专生能学会云计算吗&#xff0c;完全零基础的 正常来说&#xff0c;大专及以上学历都能学会云计算&#xff0c;但是会和满足就业需求是两回事哈。如果你想通过学习就业&#xff0c;就需要根据当下相关岗位的普遍技术需求以及其他方面的要求&#xff0c;来针对性的学习和提…

契约锁连续入选金融信创生态实验室「金融信创优秀解决方案」

近日&#xff0c;中国人民银行直属机构--金融信创生态实验室正式公布《金融信创优秀解决方案&#xff08;第二期&#xff09;》评选结果&#xff0c;契约锁「印章管控方案」成功入选&#xff0c;并被收录在“一般业务类-产业机构”名录&#xff0c;为金融机构的印章管控及电子签…

一个简单的运筹优化生产问题求解过程

运筹相关的一个简单的生产问题 题目来自于清华大学出版的《运筹学》第四版。 一、问题描述 二、图解法 三、单纯形法 第一次迭代&#xff1a; 第二次迭代&#xff1a; 第三次迭代&#xff1a; 下面描述一下第三次迭代的详细过程&#xff1a; 从表达式&#xff08;2-18&#…

一文理解Kafka

概述 Kafka是一个基于Zookeeper的分布式消息中间件&#xff0c;支持消息分区&#xff0c;提供发布和订阅功能。使用Scala编写&#xff0c;主要特点是可水平扩展&#xff0c;高吞吐率以及高并发。 常见的使用场景&#xff1a; 企业级别活动数据和运营数据的消息传递&am…

2023年自动化测试如何学?从头开始自动化测试指南,一路晋升...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

❤ 用JS 从零开始开发一个 Chrome 提示插件(简单易学 10分钟搞定)

❤ 为自己量身手写一个chrome暖心插件&#xff08;资源文章最后&#xff09; ❤ 最近看到了一个很温馨的提示代码,于是想着为自己的浏览器做一款chrome插件 1、chrome 插件理解&#xff1a; 一个html js css image的一个web应用 不同于普通的web应用&#xff0c; chrome插…

怎么把视频转换成gif动图,5个超强工具分享

在我们平时的聊天中&#xff0c;会经常遇到需要将视频转换成gif动图的情况。这样一来&#xff0c;我们可以轻松将视频中的经典片段转换成gif动图&#xff0c;方便分享和娱乐。同时&#xff0c;这种方式不仅能够传播视频内容&#xff0c;还能带来很多趣味。 然而&#xff0c;许…

1,Hadoop的基本概念和架构

Hadoop的基本概念和架构 学习路线 hadoop的基本概念和架构hadoop的安装和配置hadoop的HDFS文件系统hadoop的MapReduce计算框架hadoop的YARN资源管理器hadoop的高级特效&#xff0c;如HBase&#xff0c;Hive&#xff0c;Pig等hadoop的优化和调优hadoop的应用场景&#xff0c;如…

Qt中的互斥锁(QMutex和QMutexLocker)

QMutex和QMutexLocker 类 QMutex 的主要函数有&#xff1a; lock ()&#xff1b; 加锁&#xff0c;如果该互斥锁被占用&#xff0c;该函数阻塞&#xff0c;直到互斥锁被释放。unlock ()&#xff1b; 解锁bool tryLock (int timeout 0)&#xff1b; 表示尝试去加锁&#xff0…

如何用R语言分析COVID-19相关数据

一、概述 COVID-19是当前全球面临的一项重大挑战。 本文将介绍如何使用R语言分析COVID-19相关数据&#xff0c;探索其感染率、死亡率和人口特征的相关性&#xff0c;以及使用统计建模方法预测COVID-19的死亡率。 二、数据导入与筛选 COVID-19 Data Repository by the Center…

CSS的使用

CSS 概述 CSS 是一门语言&#xff0c;用于控制网页表现。我们之前介绍过W3C标准。W3C标准规定了网页是由以下组成&#xff1a; 结构&#xff1a;HTML表现&#xff1a;CSS行为&#xff1a;JavaScript CSS也有一个专业的名字&#xff1a;Cascading Style Sheet&#xff08;层…

一起了解大数据可视化开发

在办公自动化快速发展的今天&#xff0c;大数据可视化开发的应用价值普遍增高。借助它的灵活、便捷、易操作等特性&#xff0c;可以助力企业实现办公自动化提质增效&#xff0c;数字化进程快速发展&#xff0c;因而得到了大家的信赖与支持。那么&#xff0c;什么是大数据可视化…

Spring Boot 使用SSL-HTTPS

Spring Boot 使用SSL-HTTPS HTTPS协议可以理解为HTTPSSL/TLS&#xff0c;可以理解为HTTP下加入了SSL层&#xff0c;通过SSL证书来验证服务器的身份&#xff0c;并为浏览器和服务器之间的通信进行加密。 SSL(Secure Socket Layer安全套接字层)&#xff1a;SSL协议位于TCP/IP协…