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

news2024/11/17 11:28:11

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.coloradmin.cn/o/1697683.html

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

相关文章

IEDA常用快捷键(后续更新ing)

1. 快速生成语句 1.快速生成main()方法 psvm或者main回车 2.快速生成输出语句 sout,回车 3.快速生成for循环 fori或者itar,回车 2.快捷键 含义操作查找文本CtrlF替换文本CtrlR单行注释Ctrl/多行注释CtrlShift/格式化CtrlAltL复制当前内容至下一行CtrlD补全代码Alt/快速生成…

实战复盘:内网环境渗透ms-SQL数据库

渗透环境&#xff1a;如下图所示&#xff0c;web服务器、ms-SQL服务器、PC客户端在同一个网络中&#xff0c;彼此之间&#xff0c;没有路由器或防火墙的隔离&#xff0c;这是一种危险的网络结构&#xff0c;入侵ms-SQL服务器&#xff0c;非常容易。&#xff08;实战中&#xff…

【C++】二分查找算法

1.题目 2.算法思路 暴力解法&#xff1a;可以将数组遍历一遍&#xff0c;就可以找到。时间复杂度为O(n)。不算太差&#xff0c;可以接受。 但是有更优秀的解法&#xff1a; 就是二分查找算法。 算法的特点&#xff1a;我们所查找的“数组”具有二段性。这里的二段性不一定有…

2024.05.25 第 131 场双周赛

Leetcode 第 131 场双周赛 求出出现两次数字的 XOR 值 [Leetcode 求出出现两次数字的 XOR 值](https://leetcode.cn/problems/find-the-xor-of-numbers-which-appear-twice/description/] 给你一个数组 nums &#xff0c;数组中的数字 要么 出现一次&#xff0c;要么 出现两次…

【698协议】帧校验算法

698协议&#xff0c;帧校验算法 帧格式 帧校验范围 校验算法 #include "fcs16.h" /* * u16 represents an unsigned 16-bit number. Adjust the typedef for * your hardware. * Drew D. Perkins at Carnegie Mellon University. * Code liberally borrowed from M…

mac操作系统下,docker登录nexus私库,提示不支持https协议的错误

一、背景 我们使用nexus搭建了一个Docker Registry私有仓库&#xff0c;在Mac操作系统&#xff0c;在推送本地镜像到私库前&#xff0c;要求我们登录私库&#xff0c;报错如下&#xff1a; docker login 192.168.5.6:8086 -u username -p passwordWARNING! Using --password …

【idea插件】查询maven小工具——maven-search

1、简介 该插件提供一个查询工具方便在IDE中快速查找maven依赖&#xff0c;定制模糊查找算法。支持查找全网类。注&#xff1a;该功能需要连接网络。所有数据来源于源码阅读网 2、使用方法 开启菜单&#xff1a;Tools / Maven Search 快捷键 &#xff1a;Shift Control M 或…

vue源码之mustache简易版 --- 完

前面已经实现了 模板字符串转化为 tokens &#xff0c;这篇我们将实现 tokens 到 dom字符串的转化 1.获取对象嵌套的数据 当出现一个需要展示的数据为被多层对象嵌套时&#xff0c;由于js不支持 data[a.b],使得无法获取需要展示的数据&#xff0c;所以需要进行必要的处理 loo…

算法的时间与空间复杂度

算法是指用来操作数据、解决程序问题的一种方法。对于同一问题&#xff0c;使用不同的算法&#xff0c;也许最终结果是一样的&#xff0c;但在过程中消耗的资源和时间却会有很大的区别。 那我们该如何去衡量不同算法之间的优劣呢&#xff1f;主要还是从算法所占用的【时间】和…

Anaconda+CUDA+CUDNN+Pycharm+Pytorch安装教程(第一节 Anconda安装)

1.选择和对应的anconda版本 官网地址&#xff1a;Index of / (anaconda.com) 下载地址&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2.安装流程 (1)下载安装包 (2)点击next &#xff08;3&#xff09;点击I agree &a…

MySQL--联合索引应用细节应用规范

目录 一、索引覆盖 1.完全覆盖 2.部分覆盖 3.不覆盖索引-where条件不包含联合索引的最左则不覆盖 二、MySQL8.0在索引中的新特性 1.不可见索引 2.倒序索引 三、索引自优化--索引的索引 四、Change Buffer 五、优化器算法 1.查询优化器算法 2.设置算法 3.索引下推 …

【Java】/*类和对象(上)*/

目录 一、什么是类&#xff0c;什么是对象 二、类和对象的关系 三、学习类和对象的目的 四、怎样创建一个类 4.1 语法形式 4.2 创建示例 示例一&#xff1a;日期对象 示例二&#xff1a;小狗对象 示例三&#xff1a;学生对象 4.3 注意事项 4.4 修改public修饰的主类…

css卡片翻转 父元素翻转子元素不翻转效果

css卡片翻转 父元素翻转子元素不翻转效果 vue <div class"moduleBox"><div class"headTitle"><span class"headName">大额案例</span></div><div class"moduleItem"><span class"module…

java 拦截器-用户无操作超时退出利用Redis

1、授权过滤&#xff0c;只要实现AuthConfigAdapter接口 2、利用Redis token超时时间&#xff0c;用户访问后台续时 效果 Component public class AuthFilter implements Filter {private static Logger logger LoggerFactory.getLogger(AuthFilter.class);Autowiredprivat…

《python编程从入门到实践》day39

# 昨日知识点回顾 创建主页、继承模版、显示特定主题页面 # view.py from django.shortcuts import render# 导入所需数据相关联的模型 from .models import Topic# Create your views here. def index(request):"""学习笔记的主页"""#…

GB报文中的Cseq值的注意点

一、 问题现象 【问题现象】NVR使用GB接三方平台发现倍速回放时&#xff0c; 【现场拓扑】现场拓扑如下 &#xff08;1&#xff09; NVR侧使用家用宽带的方式&#xff0c;通过国标跨公网接入三方平台。 图1.1&#xff1a;网络拓扑 二、 抓包分析 INVITE sip:420000004013200…

ABC354学习笔记

高桥有一棵植物&#xff0c;这个植物在第 0 0 0 天时高度为 0 c m 0\,\mathrm{cm} 0cm&#xff0c;此后的第 i i i 天&#xff0c;他的植物会增高 2 i c m 2^i\,\mathrm{cm} 2icm。 高桥身高为 H c m H\,\mathrm{cm} Hcm。 高桥想知道在第几天&#xff0c;他的植物的高度会…

grpc、多集群、多租户

gRPC和服务发现 一个A high-performance, open-source universal RPC framework&#xff0c;高性能、开源的通用 RPC 框架。使用protobuf 语言基于文件定义服务&#xff0c;通过 proto3 工具生成指定语言的数据结构、服务端接口以及客户端 Stub。移动端上面则是基于标准的 HTTP…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十三)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 我们&#xff0c;继续讲一…

如何将前端项目打包并部署到不同服务器环境

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站尚硅谷的前端讲师【张天禹老师】整理的&#xff0c;用于自己复盘&#xff0c;有需要学习的可以去b站学习原版视频&…