AIGC 003-Controlnet升级你的SD让图像生成更加可控!

AIGC 003-Controlnet升级你的SD让图像生成更加可控!


文章目录

    • 0 论文工作
    • 1 论文方法
    • 2 效果

0 论文工作

ControlNet 论文 (Adding Conditional Control to Text-to-Image Diffusion Models) 提出了一种名为 ControlNet 的神经网络结构,旨在为大型文本到图像扩散模型提供更精细的控制。 它允许用户通过额外的输入条件 (例如边缘图、深度图、人体姿态) 来引导图像生成过程,同时保持扩散模型原有的生成能力和图像质量。
作者提出了一个神经网络结构,控制网,以控制预先训练的大型扩散模型,以支持额外的输入条件。控制网在端到端学习过程中学习特定于任务的条件即使训练数据集很小(< 50k),学习也是鲁棒的。此外,训练一个控制网的速度和微调一个扩散模型的速度一样快,而且该模型可以在性能一般的设备上进行,作者是在3090系列上进行。或者,如果有强大的计算集群可用,该模型可以扩展到大量(数百万到数十亿)的数据。作者证明想扩散模型这样的大模型可以被Controlnet增强,以使用不同条件输入,如边缘图,语义图,关键点,深度图等。这可能会丰富控制大型扩散模型的方法,并进一步提供便利相关应用程序。
这个工作是我们在LoRA中提到的另外一种调整大模型的方法,就是超网络,用小网络控制网络。
论文链接
github

1 论文方法

ControlNet 的核心思想是将一个可训练的副本网络与冻结的预训练扩散模型相结合。 副本网络与扩散模型具有相同的架构,但参数独立训练。 它接收额外的输入条件,并通过 “零卷积” 层将其信息传递给扩散模型。lora和controlnet在形式上都像是残差的跳跃连接,在原输入输出不变的情况下增加一个额外的因子。
在这里插入图片描述
a. 副本网络 (ControlNet):
架构: 副本网络与预训练扩散模型具有相同的架构,例如 Stable Diffusion 中的 U-Net。
参数: 副本网络的参数独立于扩散模型进行训练,不会改变预训练模型的权重。
输入: 副本网络接收额外的输入条件,例如 Canny 边缘图、深度图、人体姿态等。
零卷积: 副本网络使用 “零卷积” 层将学习到的条件信息传递给扩散模型。零卷积层是一系列 1x1 卷积层,初始权重为零,在训练过程中逐渐学习。
b. 扩散模型:
冻结权重: 扩散模型的权重被冻结,不进行梯度更新,以保持其预训练的生成能力。
条件注入: 副本网络通过零卷积层将条件信息注入到扩散模型的编码器和解码器中。
c. 训练过程:
联合训练: 副本网络和扩散模型联合训练,以最小化条件图像和生成图像之间的差异。
损失函数: ControlNet 使用与原始扩散模型相同的损失函数,例如变分下界 (ELBO) 或其他图像相似度指标。
2. 优势:
精细控制: ControlNet 允许用户通过额外的输入条件对图像生成过程进行精细控制,例如控制物体的形状、姿势、布局等。
保持图像质量: 由于扩散模型的权重被冻结,ControlNet 能够保持预训练模型的生成能力和图像质量。
易于使用: ControlNet 的使用非常简单,只需将额外的输入条件传递给副本网络即可。
多功能性: ControlNet 可以与各种类型的条件信息一起使用,例如边缘图、深度图、语义分割图、人体姿态等。
3. 缺点:
需要额外的条件输入: ControlNet 需要用户提供额外的条件输入,这可能需要额外的预处理步骤。
计算成本: 使用 ControlNet 会增加训练和推理的计算成本,因为需要运行额外的副本网络。
并非所有条件都适用: ControlNet 的效果取决于所使用的条件类型和质量。并非所有条件都能有效地引导图像生成过程。
5. 应用:
ControlNet 已经成为文本到图像生成领域的一个重要工具,并被广泛应用于各种场景,例如:
图像编辑: 使用 ControlNet 可以对图像进行各种编辑操作,例如改变物体的形状、姿势、布局等。
风格迁移: 可以使用 ControlNet 将一种图像的风格迁移到另一种图像上,同时保持内容的一致性。
图像修复: 可以使用 ControlNet 修复损坏的图像,例如填充缺失的部分或去除不需要的物体。
动画生成: 可以使用 ControlNet 从一系列关键帧生成流畅的动画。

2 效果

可以在作者的github种看到更多效果。
请添加图片描述

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

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

相关文章

解决Tomcat启动闪退:详细指南与故障排除技巧

解决Tomcat启动闪退&#xff1a;详细指南与故障排除技巧 检查日志文件端口冲突JVM 参数问题检查环境变量检查 web 应用升级或重新安装操作系统权限防火墙/安全软件检查内存设置 检查日志文件 查看 Tomcat 的日志文件&#xff0c;通常位于 logs 目录下&#xff0c;如 catalina.…

StackExchange.Redis跑起来,为什么这么溜?

StackExchange.Redis 是一个高性能的 Redis 客户端库&#xff0c;主要用于 .NET 环境下与 Redis 服务器进行通信&#xff0c;大名鼎鼎的stackoverflow 网站就使用它。它使用异步编程模型&#xff0c;能够高效处理大量请求。支持 Redis 的绝大部分功能&#xff0c;包括发布/订阅…

创意学习剪辑利器:一键添加动图水印,轻松提升视频专业度与创意新境界!

在数字化时代&#xff0c;视频已成为我们生活中不可或缺的一部分。无论是学习分享、工作展示还是生活记录&#xff0c;视频都以其直观、生动的形式&#xff0c;赢得了广大用户的喜爱。然而&#xff0c;如何在众多的视频中脱颖而出&#xff0c;展现出自己的专业度和创意&#xf…

[AI OpenAI] OpenAI 安全更新

AI 首尔峰会中分享我们的实践 我们自豪地构建并发布了在能力和安全性方面都处于行业领先地位的模型。 超过一亿用户和数百万开发者依赖于我们安全团队的工作。我们将安全视为我们必须在多个时间范围内投资并取得成功的事项&#xff0c;从使今天的模型与我们未来预期的更具能力…

谷歌浏览器使用vue插件查看表单提交的数据

1.查看组件&#xff1a; 对应代码里主页面引用的组件名&#xff1a; 表单名称&#xff0c;对应组件里form表单名&#xff1a; 左边的层次结构&#xff1a; 右边层次结构&#xff1a;

Excel/WPS《超级处理器》同类项处理,合并同类项与拆分同类项目

在工作中处理表格数据&#xff0c;经常会遇到同类项处理的问题&#xff0c;合并同类项或者拆分同类项&#xff0c;接下来介绍使用超级处理器工具如何完成。 合并同类项 将同一列中的相同内容合并为一个单元格。 1&#xff09;用分隔符号隔开 将AB列表格&#xff0c;合并后为…

Spring中@Component注解

Component注解 在Spring框架中&#xff0c;Component是一个通用的注解&#xff0c;用于标识一个类作为Spring容器管理的组件。当Spring扫描到被Component注解的类时&#xff0c;会自动创建一个该类的实例并将其纳入Spring容器中管理。 使用方式 1、基本用法&#xff1a; Co…

Android 通过adb命令查看设备尺寸和设置

Android adb查看设备尺寸 # 查看设备尺寸 adb shell wm size import re wm_size_value re.search(r"Physical size: (\w)x(\w)", wm_sizes).groups() wm_x, wm_y int(wm_size_value[0]), int(wm_size_value[1]) # 上面获取具体数值# 改变设备屏幕显示尺寸比例 adb…

xmindparser思维导图初试,用shell语言

需求 xmindparser 用 shell 画思维导图 x mind&#xff0c;可以/storage/emulated/0/字体/黑体.ttf 保存/storage/emulated/0/print/图片/input图纸/任务实施 ①. 首先要知道用什么库&#xff0c;都有哪些思维导图库 ②. 初步知道每一种库&#xff0c;尽管这很繁琐 ③. 尝试在…

企业微信hook接口协议,ipad协议http,已读消息

已读消息 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信send_userid是long要发送的人idisRoom是bool是否是群消息 请求示例 {"uuid":"1753cdff-0501-42fe-bb5a-2a4b9629f7fb","send_userid":788130255…

学习JavaScript底层逻辑之预编译

认识预编译前首先需要知道声明提升的概念 1. 变量声明&#xff0c;声明提升 在JavaScript中&#xff0c;变量声明&#xff08;使用var、let、const关键字&#xff09;会被提升到当前作用域的顶部。但其初始化&#xff08;赋值&#xff09;部分仍然保留在原地。 例如&#xff…

Unity学习日志

目录 获取相机可视范围的世界坐标(2D) 视口转世界坐标和屏幕转世界坐标的区别: 屏幕转世界坐标 视口转屏幕坐标 视口转屏幕结合3D数学实现可视范围的怪物生成 transform.up游戏对象的方向问题 其实还有一种不用Translate的写法: 修改 transform.up 的行为和影响 C#抽象…

全国各城市间驾车耗时和距离矩阵数据集(更新至2022年)

数据简介&#xff1a;城市之间距离越远&#xff0c;耗时越长。经济发达地区的交通状况较好。各城市之间的驾车耗时和距离存在差异。有些城市之间的交通非常便捷&#xff0c;而有些城市之间的交通则较为不便。这表明中国的交通网络发展尚不平衡&#xff0c;需进一步优化。特别是…

Excel如何统计非数值内容行数

需要用到sum函数&#xff0c;具体公式如下&#xff1a; SUM(IF(ISNONTEXT(G4:G199),0,1))

Java集合框架详解:深入探讨Java中的集合框架

前言 Java集合框架是Java语言中用于存储和操作大量数据的基石。集合框架提供了一套灵活的接口和实现&#xff0c;使得数据的存储、访问和管理变得异常简单。在本专栏中&#xff0c;我们将深入探讨Java集合框架&#xff0c;包括List、Set、Map等集合的使用和内部实现。 集合框…

Go 语言简介 -- 高效、简洁与现代化编程的完美结合

在现代软件开发领域&#xff0c;选择合适的编程语言对于项目的成功至关重要。Go 语言&#xff08;又称 Golang &#xff09;自 2009 年由Google发布以来&#xff0c;以其简洁的语法、高效的并发模型以及强大的性能&#xff0c;迅速成为开发者们的新宠。Go语言不仅融合了传统编译…

icloud照片怎么恢复到相册?2个方法,轻松解决烦恼

在现代生活中&#xff0c;照片承载着我们的回忆和珍贵的时刻&#xff0c;而iCloud提供了便捷的云存储服务&#xff0c;让用户可以方便地备份和同步手机上的照片、视频等文件。 然而&#xff0c;有时候我们可能会不小心删除了在iCloud上的照片&#xff0c;或者想要将iCloud照片…

青岛大学物理科学学院郭向欣教授

男&#xff0c;1973年1月生&#xff0c;山东济宁人。中国科学院百人计划杰出海外人才和上海市浦江人才&#xff0c;山东省泰山学者特聘教授&#xff0c;青岛市创业创新领军人才。固态离子学理事。博士&#xff0c;教授&#xff0c;博士生导师。 研究工作一直聚焦金属锂二次电池…

Golang:Sirupsen/logrus是一个日志库

Sirupsen/logrus是一个日志库 文档 https://github.com/Sirupsen/logrus 安装 go get github.com/sirupsen/logrus代码示例 package mainimport ("github.com/sirupsen/logrus" )func main() {var log logrus.New()log.Trace("Something very low level.&…

使用B2M 算法批量将可执行文件转为灰度图像

参考论文 基于二进制文件的 C 语言编译器特征提取及识别 本实验使用 B2M 算法将可执行文件转为灰度图像&#xff0c;可执行文件转为灰度图的流程如图 4-3 所示。将 可执行文件每 8 位读取为一个无符号的的整型常量&#xff0c;一个可执行文件得到一个一维向量&#xff0c; …