ControlNet on Stable Diffusion

ControlNet on Stable Diffusion

笔记来源:
1.Adding Conditional Control to Text-to-Image Diffusion Models
2.How to Use OpenPose & ControlNet in Stable Diffusion
3.ControlNet与DreamBooth:生成模型的精细控制与主体保持
4.Introduction to ControlNet for Stable Diffusion
5.Stable Diffusion — ControlNet Clearly Explained!
6.Talented Mr. 1X1: Comprehensive look at 1X1 Convolution in Deep Learning
7.ControlNet-modules-safetensors

下图由笔者参考其他内容整理而成,仅做学习使用

下图中上半部分就是Stable Diffusion的反向扩散过程,下半部分为ControlNet部分,Stable Diffusion的参数frozen,我们只训练ControlNet

condition部分要将图片使用preprocessor(openpose、normalmap、canny)预处理完成后,再用相应网络对其处理,处理结果为符合contronet所能接收的大小的feature map(本质为tensors)

左侧为Stable Diffusion,右侧为ControlNet
Controlnet前半部分直接copy SD Encoder和 Bottleneck 部分,后半部分用zero conv(1×1 conv layer)作解码(上采样)
为了能够让 condition 部分对模型的影响变大,论文中对prompt的组成进行了修改,将原有全部为文字的prompt,修改为一半prompt,一半空字符串
由于zero conv部分初始weight和bias为0,也就是说第一次训练过程,不会对copy来的SD Encoder和 Bottleneck 部分产生任何影响,只有当controlnet进行反向传播时,才会更新参数,这时就会更新SD Encoder和 Bottleneck 部分的参数

笔者个人理解
笔者之前关于SD的文章也提到一张图片对应一个概率分布,SD就是在计算估计关于所有输入图片的一个总的概率分布,这个概率分布如果接近真实概率分布(全世界所有图片的概率分布)生成的图片也就质量越高。SD如果有外来输入(这里的controlnet部分)就会对这个估计的分布有影响,当我们从这个大的概率分布中进行采样时就得到了某张图片(大的概率分布中的某个点)这个图片是在经过外来输入影响的大的概率分布中采样的,也就会符合外来输入的一些特性


了解了大致的原理,我们本地部署看看效果
stable diffusion webui + ControlNet (Extension)部署的过程在网络上相关内容很多,这里就不再展示

下图为ControlNet各个参数的简要说明

下图以Openpose为例,我们首先上传一张原图,随后对一张原图使用preprocessor(这里为openpose_full)进行处理,紧接着使用controlnet_v11将其编码为tensors用于给controlnet输入,点击openpose后的小火花生成人体姿势的估计并形成预览图,最后我们给SD输入prompt和negative prompt,SD就会根据人体姿势估计图和我们提供的文本生成相应姿势的其他人物(文本描述的)

关于如何描写prompt和negative prompt,我们请gpt给出提示


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

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

相关文章

光猫设置桥接 路由器pppoe拨号 设置正常访问光猫 (openwrt)

网络信息展示 光猫桥接很简单吧,就不说了。先来列出修改前的网络接口和网络信息。 光猫192.168.1.1,openwrt 10.0.0.0/8 初始配置 需要记录的信息:WAN的网络设备(eth1),光猫的IP(192.168.1.1&am…

StarryCoding-35:鼠鼠我鸭

题目描述 在一个叫做酱西功爷枝叶鸡树学院的地方有𝑛n只小动物,要么是鼠鼠,要么是鸭鸭,从11到𝑛n编号,每只小动物有个体重𝑎𝑖ai​。 在这个学校里,存在一种神奇的魔法…

Symfony 入门指南:快速安装与基础配置

Symfony 入门指南:快速安装与基础配置 Symfony 是一个强大而灵活的 PHP 框架,广泛应用于构建现代 Web 应用程序。本指南将带您一步一步地了解如何快速安装 Symfony,并完成基本配置,以便您能够开始使用这个强大的框架。 目录 引…

使用法国云手机进行面向法国的社媒营销

在当今数字化和全球化的时代,社交媒体已经成为企业营销和拓展市场的重要工具。对于想进入法国市场的企业来说,如何在海外社媒营销中脱颖而出、抓住更多的市场份额,成为了一个关键问题。法国云手机正为企业提供全新的营销工具,助力…

Spring Boot多租户配置与实现

在现代应用程序中,多租户架构是一种非常流行的设计模式。多租户架构允许多个客户(租户)共享同一个应用程序实例,同时确保数据的隔离性和安全性。本文将详细介绍如何在Spring Boot应用程序中配置和实现多租户支持,并提供…

《人工智能大语言模型技术发展研究报告(2024)》【下载】

《人工智能大语言模型技术发展研究报告(2024)》下载 自2023年起,大模型技术产品的快速迭代和升级,已经成为全球科技竞争的关键因素。由中国软件评测中心发布的《人工智能大语言模型技术发展研究报告(2024)》…

kafka详解及应用场景介绍

Kafka架构 Kafka架构,由多个组件组成,如下图所示: 主要会包含:Topic、生产者、消费者、消费组等组件。 服务代理(Broker) Broker是Kafka集群中的一个节点,每个节点都是一个独立的Kafka服务器…

反激Flyback从逆向到初步设计(UC2844)

一.Flyback基本拓扑 国标gb/t 12325-2008《电能质量供电电压偏差》规定:220v单向供电电压偏差为标称电压的-10%,7%。 对应220V的标称电压,其浮动范围是在198~235.4V。以下运算均基于此规定进行。 首先220V进入EMI模块,消除差模干扰…

【Docker】Windows11环境下的安装

前置依赖环境配置 确保虚拟化开启 搜索栏直接搜索如下功能 勾选下面两个选项,确定 重启电脑,以管理员身份打开PowerShell wsl --status wsl --update打开微软应用商店选择一个Ubuntu版本下载并打开 输入一个用户名和密码 然后就可以在Windows下使…

FlowUs与生成式AI结合的未来展望:智能助手问问AI chat与自主代理Agent的应用

生成式AI在对话系统(Chat)和自主代理(Agent)中的应用将会带来显著的技术进步和商业机会。 对话系统(Chat) 对话系统是一种人工智能软件,它能够模拟人类对话,通过自然语言处理&…

go-kratos 学习笔记(7) 服务发现服务间通信grpc调用

服务发现 Registry 接口分为两个,Registrar 为实例注册和反注册,Discovery 为服务实例列表获取 创建一个 Discoverer 服务间的通信使用的grpc,放到data层,实现的是从uses服务调用orders服务 app/users/internal/data.go 加入 New…

2024安全大模型技术与市场研究报告

大模型驱动的AIGC引发技术革命,国资委强调国企需加大AI投入。大模型解决网络安全行业攻防不对等问题,国内外企业纷纷推出基于大模型的网络安全产品,AI将改变网络安全产品格局。 自 2022 年底开始,以 LLM(大语言模型,简…

PHP基础语法-Part2

if-else语句、switch语句 与其他语言相同 循环结构 for循环while循环do-while循环foreach循环,搭配数组使用 foreach ($age as $avlue) //只输出值 {xxx; } foreach ($age as $key > $avlue) //键和值都输出 {xxx; }foreach ($age as $key >…

k8s核心知识总结

写在前面 时间一下子到了7月份尾;整个7月份都乱糟糟的,不管怎么样,日子还是得过啊, 1、7月份核心了解个关于k8s,iceberg等相关技术,了解了相关的基础逻辑,虽然和数开主线有点偏,但是…

系统架构设计师②:操作系统

系统架构设计师②:操作系统 操作系统作用 ①管理系统的硬件、软件、数据资源 ②控制程序运行 ③人机之间的接口 ④应用软件与硬件之间的接口 进程管理 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、…

qt表格模型视图

Qt 提供了一套强大的模型/视图框架,允许你以一种非常灵活和高效的方式显示和处理数据。在 Qt 中,表格视图(TableView)和模型(TableModel)是这种框架的一部分,常用于显示和编辑表格数据。 以下是…

利用Java调用银行卡二要素接口

一、什么是银行卡二要素? 银行卡二要素验证接口是一种 API 接口,主要用于验证用户提供的银行卡号与姓名这两个要素是否一致。 二、银行卡二要素作用及场景有哪些? 其作用是通过核验用户的身份信息,判断是否为目标用户本人操作&…

Apache Spark:深度解析

文章目录 引言Apache Spark 官网链接Spark 的原理1. 核心组件2. 弹性分布式数据集(RDD)3. 执行模型 基础使用1. 环境搭建2. 示例代码 高级功能1. DataFrame 和 Dataset2. 机器学习3. 流处理 优缺点优点缺点 结论 引言 Apache Spark 是一个快速、通用、可…

[Github] Github网络错误,与VPN代理相关

报错类型: OpenSSL SSL_connect: Connection was reset in connection to http://github.com:443 前提:计算机已经开了VPN代理,造成无法正常通过github完成push/pull等操作 解决方法: 在终端中输入: git config -…

Lua 复数计算器

Lua复数计算器 主要包括复数的加减乘除操作,以及打印 编写复数类 -- ***** 元类 ***** Complex {real 0, imag 0}-- 构造函数 function Complex:new(real, imag)local o o or {}o.real real or 0o.imag imag or 0setmetatable(o, self)self.__index selfr…