Stable Diffusion中的ControlNet插件

文章目录

  • ControlNet的介绍及安装
    • ControlNet的介绍
    • ControlNet的安装
  • ControlNet的功能介绍
  • ControlNet的应用与演示

ControlNet的介绍及安装

ControlNet的介绍

ControlNet 的中文就是控制网,本质上是Stable Diffusion的一个扩展插件,在2023年2月份由斯坦福大学的研究人员开发出来的,能够使创作者轻松地控制AI图像和视频中的对象。它将根据边缘检测、草图处理或人体姿势等各种条件来控制图像生成。ControlNet可以概括为一种简单的稳定扩散微调方法。

为什么需要ControlNet?
因为在ControlNet出现之前,基于扩散模型的“AI绘画”是非常难以控制的,在文生图或图生图的过程中充满了随机性,如果只是简单的自娱自乐,这种随机性并不会带来很大的困扰,画出来的内容有偏差也是可以接受的,但对于一些有具体需求的场景来说,如果不能做到精确的“控制”,只能靠随机性来得到想要的图片的话,那就无法保证稳定和有效了。

ControlNet以一种降维打击的方式实现了很多控制方式,并且相当稳定。ControlNet 和 Lora是有很多相似之处的,都是对扩散模型做微调的额外网络,也就是基于一些额外输入的信息给扩散模型的生成提供明确的指引。

ControlNet与Prompt的区别:如果只是在prompt中输入 dancing(跳舞),那么生成的图片会有各种各样的舞蹈姿势(即使是用更多的词来作为引导)。而ControlNet的精髓在于你可以给它输入一张记录了某种特定“姿势”信息的图片,来指导作图。

ControlNet的安装

在Stable Diffusion WebUI 的界面中找到Extensions进行安装,在对应的文本框中输入下面链接:
https://github.com/Mikubill/sd-webui-controlnet
在这里插入图片描述
如果安装报错,可以手动下载安装到
安装完成后,需要点击下Check for updates 和 Apply and restart UI
在这里插入图片描述
如果没有加载出来的话,可以重新启动下 Stable Diffusion WebUI。
安装成功后可打开如下图所示:
在这里插入图片描述

ControlNet的功能介绍

安装完成后,来看下ControlNet的每个部分,以及每个配置如何影响输出。
在这里插入图片描述
Enable :选中此框以启用ControlNet。(开启ControlNet需要经过一次额外的图片处理过程,所以会占用一定的显存。)
Low VRAM:这将减缓ETA进程,但有助于使用更少的计算空间(显存小于6 GB VRAM建议使用)
Pixel Perfect(完美像素):它可以自动计算预处理器产出图片最合适的分辨率,避免因为尺寸不合导致的图像模糊变形。(建议选中)
Allow Preview 会打开一个小的预处理窗口,是专门为预处理图像做准备的。
在这里插入图片描述
控制类型。
在这里插入图片描述
Preprocessor:预处理器
Model:模型
在这里插入图片描述
这里主要是控制ControlNet的基本作用过程,最需要注意的是Control Weight,也就是控制权重,和提示词/Lora的权重一样,它会决定这个控制效果在图片中呈现出来的强度,通常情况下胡使用默认值1,后面的Starting Control和Ending Control Stop会决定在生成图片过程中的什么阶段加入控制效果,默认的0到1表示从头到尾全程生效,可以尝试设置不同的值。

在这里插入图片描述
控制模式:可以控制在提示词的影响和ControlNet的信息之间更倾向于哪一个,通常情况下也是会默认使用Balanced。

ControlNet的应用与演示

模型下载:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
下载到extensions/sd-webui-controlnet/models下,注意下载的时候确保要下载模型对应的配置文件(.yaml)
在这里插入图片描述
这里需要注意的是如果models下有重复的文件yaml,直接选择覆盖即可。

1、Canny边缘检测

Canny通过使用边缘检测器创建高对比度区域的轮廓来检测输入图像。线条可以捕捉到非常详细的信息,但如果你的图像背景中有一些物体,它很可能会检测到不需要的物体。所以背景中物体越少效果越好。用于此预处理器的最佳模型是control_sd15_canny。
在这里插入图片描述

2、Depth & Depth Leres
背景替换方法:在 img2img 图生图模式中,通过 ControlNet 的 Depth_leres 模型中的 remove background 功能移除背景,再通过提示词更换想要的背景。

应用模型:Depth,预处理器 Depth_leres。

要点:如果想要比较完美的替换背景,可以在图生图的 Inpaint 模式中,对需要保留的图片内容添加蒙版,remove background 值可以设置在 70-80%。

Depth_leres 示例:(将原图背景替换为办公室背景)
在这里插入图片描述

3、MLSD ( Mobile Line Segment Detection)

MLSD Preprocessor 最适合生成强有力的线条,这些线条能够检测出需要独特和刚性轮廓的建筑和其他人造作品。但是它不适用于处理非刚性或弯曲的物体。MLSD适用于生成室内布局或建筑结构,因为它可以突出直线和边缘。用于此预处理器的最佳模型是control_sd15_mlsd。
在这里插入图片描述

4、角色三视图

方法:通过 ControlNet 的 Openpose 模型精准识别出人物姿态,再配合提示词和风格模型生成同样姿态的图片。

应用模型:OpenPose。在 ControlNet1.1 版本中,提供了多种姿态检测方式,包含:openpose 身体、openpose_face 身体+脸、openpose_faceonly 只有脸、openpose_full 身体+手+脸、openpose_hand 手,可以根据实际需要灵活应用。
在这里插入图片描述
OpenPose 角色三视图示例:

要点:上传 openpose 三视图,加载 charturner 风格模型( https://civitai.com/?query=charturner ),添加提示词保持背景干净 (simple background, white background:1.3), multiple views
在这里插入图片描述

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

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

相关文章

supervisorctl(-jar)启动配置设置NACOS不同命名空间

背景 由于需要在上海服务器上面配置B测试环境,原本上面已有A测试环境,固需要将两套权限系统分开 可以使用不同的命名空间来隔离启动服务 注:本文章均不涉及公司机密 1、新建命名空间 命名空间默认会有一个public,并且不能删除&a…

数据结构入门 — 栈

本文属于数据结构专栏文章,适合数据结构入门者学习,涵盖数据结构基础的知识和内容体系,文章在介绍数据结构时会配合上动图演示,方便初学者在学习数据结构时理解和学习,了解数据结构系列专栏点击下方链接。 博客主页&am…

Linux 忘记密码解决方法

很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?答案是不需要进入单用户模式更改一下root密码即可。 步骤如下: 重启linux系统 3 秒之内要按一下回车,出现如下界面 …

VUE笔记(十)Echarts

一、Echarts简介 1、什么是echarts ECharts是一款基个基于 JavaScript 的开源可视化图表库 官网地址:Apache ECharts 国内镜像:ISQQW.COM x ECharts 文档(国内同步镜像) - 配置项 示例:echarts图表集 2、第一个E…

滑动窗口实例4(将x减到0的最小操作数)

题目: 给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作使用。 如果可以将 x 恰好 减到 0 ,返回 …

全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!

全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据! 1.简介 目标:基于pytorch、transformers做中文领域的nlp开箱即用的训练框架,提…

WebGPU加载Wavefront .OBJ模型文件

在开发布料模拟之前,我想使用 WebGPU 开发强大的代码基础。 这就是为什么我想从 Wavefront .OBJ 文件加载器开始渲染 3D 模型。 这样,我们可以快速渲染 3D 模型,并构建一个简单而强大的渲染引擎来完成此任务。 一旦我们有了扎实的基础&#x…

视频文件损坏无法播放如何修复?导致视频文件损坏的原因

如果我们遇到因视频文件损坏而无法正常播放,我们该怎么办?这种情况通常意味着视频文件已经损坏。我们不能访问、编辑或使用它们。那么应该用什么正确的工具和修复程序来修复视频呢? 视频文件损坏的原因 了解视频损坏如何修复之前&#xff0c…

【C51基础实验 LED流水灯】

51单片机项目基础篇 LED流水灯1、硬件电路设计和原理分析2、软件设计2.1、利用循环和移位操作符功能实现:LED流水灯2.2、利用利用封装好的库函数功能实现:LED流水灯 3、编译结果4、结束语 LED流水灯 前言: 前几篇学会了LED驱动原理&#xff…

Mysql001:Mysql概述以及安装

前言:本课程将从头学习Mysql,以我的工作经验来说,sql语句真的太重要的,现在互联网所有的一切都是建立在数据上,因为互联网的兴起,现在的数据日月增多,每年都以翻倍的形式增长,对于数…

数据库CPU飙高问题定位及解决

在业务服务提供能力的时候,常常会遇到CPU飙高的问题,遇到这类问题,大多不是数据库自身问题,都是因为使用不当导致,这里记录下业务服务如何定位数据库CPU飙高问题并给出常见的解决方案。 CPU 使用率飙升根因分析 在分…

概念解析 | 量子时代的灵感:探索量子感知技术

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:量子感知技术。 量子时代的灵感:探索量子感知技术 量子感知技术是一个充满希望和挑战的新兴领域。在此,我们将深入探讨这个主题,概述其背景,解释其工作原理,讨论现有的…

mov怎么改成mp4?跟我一起操作吧

mov怎么改成mp4?mov因为并不是一种常见的视频文件格式,因此大家对这种视频文件可能知道的并不多,但如果你是用的是苹果手机,那么你会发现苹果手机拍摄的视频转移到电脑上后就是mov格式的,因为mov格式的视频并没有受到大…

JDBC使用了哪种设计模式

JDK中提供了操作数据库的接口,比如 java.sql.Driver java.sql.Connection java.sql.Statement java.sql.PreparedStatement 不同的数据库厂商提供操作自己数据库的驱动包, 比如mysql public class Driver extends NonRegisteringDriver implements jav…

一篇文章带你了解-selenium工作原理详解

前言 Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome&#xff0c…

DC电源模块不同的尺寸可以适应实际应用场景

BOSHIDA DC电源模块不同的尺寸可以适应实际应用场景 DC电源模块是现代电子设备的必备部件之一,其可提供稳定的直流电源,保证电子设备正常运行。DC电源模块尺寸的选择直接影响到其适应的应用场景及其性能表现。本文将从尺寸方面分析DC电源模块的适应性&a…

【zookeeper】zookeeper介绍

分布式协调技术 在学习ZooKeeper之前需要先了解一种技术——分布式协调技术。那么什么是分布式协调技术?其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的…

C++ list模拟实现

list模拟实现代码&#xff1a; namespace djx {template<class T>struct list_node{T _data;list_node<T>* _prev;list_node<T>* _next;list_node(const T& x T()):_data(x),_prev(nullptr),_next(nullptr){}};template<class T,class Ref,class Pt…

Mac操作系统Safari 17全新升级:秋季推出全部特性

苹果的内置浏览器可能是Mac上最常用的应用程序&#xff08;是的&#xff0c;甚至比Finder、超级Mac Geeks还要多&#xff09;。因此&#xff0c;苹果总是为其浏览器Safari添加有用的新功能。在今年秋天与macOS Sonoma一起推出的第17版中&#xff0c;Safari可以帮助你提高工作效…

活用 命令行通配符

本文是对 阮一峰老师命令行通配符教程[1]的学习与记录 通配符早于正则表达式出现,可以看作是原始的正则表达式. 其功能没有正则那么强大灵活,而胜在简单和方便. - 字符 切回上一个路径/分支 如图: !! 代表上一个命令, 如图: [Linux中“!"的神奇用法](https://www.cnblogs.…