AI 绘画 | Stable Diffusion精确控制ControlNet扩展插件

ControlNet

在这里插入图片描述
ControlNet是一个用于控制AI图像生成的插件,通过使用Conditional Generative Adversarial Networks(条件生成对抗网络)的技术来生成图像。它允许用户对生成的图像进行更精细的控制,从而在许多应用场景中非常有用,例如计算机视觉、艺术设计、虚拟现实等。

对于stable diffusion,ControlNet的出现提供了一种新的神经网络概念,通过额外的输入来控制预训练的大模型,例如stable diffusion。这种端对端的训练方式,让这种端对端的训练有了更好的应用空间。

举个需要使用ControlNet简单的例子,假如我们想要画一个人物画,需要人物摆一个固定的姿势,如果使用提示词就难以准确描述,即使可以用提示描述人物的姿势,但是因为扩散模型的的特性,生成图片的人物姿势还有部分不一样的随机性。利用ControlNet中的OpenPose模型,我们只需要给Stable Diffusion上传一张包含我们想要生成的姿势的图片即可生成我们想要的效果。

安装ControlNet插件

秋叶整合包内整合了ControlNet扩展插件,我们无需无需安装。没有安装的可以通过这个国内镜像仓库去下载安装
https://gitcode.net/ranting8323/sd-webui-controlnet,安装方法看上一篇文章。安装成功后,在文生图和图生图的界面里会出现ControlNet的可折叠选单了。
在这里插入图片描述
我们点击展开ControlNet的可折叠选单后,显示出ControlNet的所有参数如下。
在这里插入图片描述

ControlNet模型下载

除了下载ControlNet扩展插件外,还需要下载ControlNet控制模型,秋叶的整合包内包含ControlNet的模型文件,我们只需要把这些模型文件移动到SD webUi根目录 models\ControlNet文件夹下,重启 webUI即可。

基本使用

在这里插入图片描述

  • 首先上传一张包含我们想要生成姿势的人物图片

  • 上传完,启动选项会自动被勾选

  • 如果你显存比较低,请点击低显存模式,代价就是出图会慢一点

  • 如果你想要图片生成质量好,就点击完美像素模式,代价就是出图会慢一点

  • 勾选 允许预览

  • 选择控制类型,人物姿势类的,就选择OpenPose (姿态)

  • 预处理器和模型,点击控制类型后,系统会自己选择预处理器和匹配的模型。

  • 控制类型选择OpenPose (姿态),系统会选择默认预处理器openpose_full,这个会从图片中读取人物基本姿势外,还会读取图片中人物的手部姿势和面部表情。如何你不需要控制面部和手部和原图保持一致。可以选择openpose即可。openpose_full要比openpose的生图时间长。
    在这里插入图片描述

  • 点击 预处理和模型中间的爆炸图标,可以预览ControlNet从图片中提取出来的人物姿势信息。
    在这里插入图片描述
    在这里插入图片描述

  • 控制权重 可以通过调整ControlNet的权重来控制其对生成图像的影响程度。正常设置默认皆可。

  • 引导介入时机和引导终止时机

  • 引导介入时机(Guidance Start):
    这个参数决定了ControlNet从何时开始介入生成图像的计算过程。在默认情况下,Guidance Start被设置为0,代表在开始时就介入。如果设置为0.5,则代表ControlNet从50%步数时开始介入计算。这个参数可以根据具体需求进行调整。

  • 引导终止时机(Guidance End):
    这个参数决定了ControlNet在生成图像的计算过程中何时终止介入。一般情况下,Guidance End的值会比Guidance Start的值稍大一些,以确保ControlNet在主要的图像生成过程结束后能够适时地停止介入。这个参数也需要根据具体需求进行调整。

  • 控制模式
    一般选择 均衡即可。如果生成的图片,提示词没有显示出来,可以设置更偏向提示词,如果人物姿势动作没有显示出来,就选择 更偏向ControlNet即可。缩放模式,和图生图的一样,如果我们不想出现人物出现拉伸现象,就悬着裁剪后缩放。预设功能。就是可以把我们 所有关于ControlNet的参数配置保存成一个预设配置。下次使用相同的配置,可以直接选择预设即可。
    在这里插入图片描述

控制类型

Canny 边缘检测

Canny 边缘检测预处理器可很好识别出图像内各对象的边缘轮廓,常用于生成线稿。
对应ControlNet模型: control_canny
在这里插入图片描述

MLSD 线条检测

MLSD 线条检测用于生成房间、直线条的建筑场景效果比较好。
对应ControlNet模型: control_mlsd
在这里插入图片描述

Scribble 涂鸦

不用自己画,图片自动生成类似涂鸦效果的草图线条。
对应ControlNet模型: control_scribble
在这里插入图片描述

SoftEdge 边缘检测

SoftEdge 边缘检测可保留更多柔和的边缘细节,类似手绘效果。
对应ControlNet模型: control_softedge。
在这里插入图片描述

OpenPose 姿态检测

OpenPose 姿态检测可生成图像中角色动作姿态的骨架图(含脸部特征以及手部骨架检测),这个骨架图可用于控制生成角色的姿态动作。
对应ControlNet模型: control_openpose。
在这里插入图片描述

Segmentation 语义分割

语义分割可多通道应用,原理是用颜色把不同类型的对象分割开,让AI能正确识别对象类型和需求生成的区界。
对应ControlNet模型: control_seg。
在这里插入图片描述

Depth 深度检测

通过提取原始图片中的深度信息,生成具有原图同样深度结构的深度图,越白的越靠前,越黑的越靠后。
对应ControlNet模型: control_depth。
在这里插入图片描述

Normal Map 法线贴图

根据图片生成法线贴图,适合CG或游戏美术师。法线贴图能根据原始素材生成一张记录凹凸信息的法线贴图,便于AI给图片内容进行更好的光影处理,它比深度模型对于细节的保留更加的精确。法线贴图在游戏制作领域用的较多,常用于贴在低模上模拟高模的复杂光影效果。
对应ControlNet模型: control_normal。
在这里插入图片描述

Lineart 生成线稿

Lineart 边缘检测预处理器可很好识别出图像内各对象的边缘轮廓,用于生成线稿。
对应ControlNet模型: control_lineart。
在这里插入图片描述

Lineart Anime 生成线稿

Lineart Anime 边缘检测预处理器可很好识别出卡通图像内各对象的边缘轮廓,用于生成线稿。
对应ControlNet模型: control_lineart_anime。
在这里插入图片描述

Content Shuffle 内容打乱

Content Shuffle 图片内容变换位置,打乱次序,配合模型 control_v11e_sd15_shuffle 使用。
对应ControlNet模型: control_shuffle。
在这里插入图片描述

多ControlNet控制

我们可以通过界面看出 ControlNet默认有三个单元选卡(后台可以设置更多单元),我们可以单配不同ControlNet控制类型作为每个单元的设置。比如 OpenPose (姿态)搭配 Depth (深度)类型,可以解决人物手和脚的前后问题,单靠OpenPose 无法区分出图片中人物手和腿靠前还是靠后,假如 Depth (深度)类型的控制,可以实现完美控制。不过,使用的ControlNet单元越多,对显存的要求也高,出图也越慢。

在这里插入图片描述

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

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

相关文章

每次重启完IDEA,application.properties文件里的中文变成?

出现这种情况,在IDEA打开Settings-->Editor-->File Encodings 然后,你需要将问号改为你需要的汉字。 重启IDEA,再次查看你的.properties文件就会发现再没有变成问号了

order by的注入与Insert ,update和delete注入

order by的注入 Insert ,update和delete注入

大二第四周总结——用原生js封装一个分页器

用原生js封装一个分页器 起因:这次项目还是用原生的js来写的,我负责的是后台,分页是后台最常见的一个功能了,于是干脆封装一下,废话少说,直接上代码 这里是基本的样式 .pagination {display: flex;width: 600px;hei…

PCB知识补充

系列文章目录 文章目录 系列文章目录参考文献PCB知识互连线电阻过孔/铜箔电流能力铜箔载流能力过孔载流能力 热设计电磁兼容及部分要求 参考文献 [1]牛森,张敏娟,银子燕.高速PCB多板互联的电源完整性分析[J].单片机与嵌入式系统应用,2023,23(09). [2]陈之秀,刘洋,张涵舒等.高…

提莫的idea的bug是真滴多

问题1:maven reload功能失效 我复制了一段代码到我项目里,这段代码依赖hutool包,于是我用idea快速导入,自动导入的是hutool-all:5.8.4。后来我发现这段还是有个函数报错,需要导入更高版本的hutool包才行,于…

Django中简单的增删改查

用户列表展示 建立列表 views.py def userlist(request):return render(request,userlist.html) urls.py urlpatterns [path(admin/, admin.site.urls),path(userlist/, views.userlist), ]templates----userlist.html <!DOCTYPE html> <html lang"en">…

【Java】反射

1.什么是反射机制? Java 反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类中的所有属性和方法&#xff0c;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 的反射机制…

Django 密码管理:安全实践与技术深入

在 Web 应用的开发中&#xff0c;密码管理是保障用户安全的关键环节。Django 作为一个强大的 Python Web 框架&#xff0c;提供了一套全面的系统来处理密码的存储、验证和安全。本文将详细探讨 Django 中的密码管理机制&#xff0c;包括密码存储、密码验证、密码安全策略以及自…

《软件工程与计算》期末考试真题范例及答案

今天分享一套针对《软件工程与计算》这本书的真题案例&#xff0c;有关《软件工程与计算》23章内容的重点知识整理&#xff0c;已经总结在了博客专栏中&#xff0c;有需要的自行阅读&#xff1a; 《软件工程与计算》啃书总结https://blog.csdn.net/jsl123x/category_12468792.…

2023.11.8 信息学日志

2023.11.7 信息学日志 1. CF33C Wonderful Randomized Sum题目描述题目概况思路点拨 2. CF30C题目描述题目概况思路点拨 3. CF18E Flag 2题目描述题目概况思路点拨 1. CF33C Wonderful Randomized Sum 题目描述 https://www.luogu.com.cn/problem/CF33C 题目概况 来源&…

进程状态和优先级

文章目录 进程状态Linux中具体的进程状态僵尸进程孤儿进程 进程优先级 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站。 进程状态 进程在操…

[LeetCode] 6.N字形变换

一、题目描述 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R之后&#xff0c;你的输出…

每天一点python——day66

#每天一点Python——66 #字符串的分隔 #如图&#xff1a; #方法①split()从左开始分隔&#xff0c;默认空格为分割字符&#xff0c;返回值是一个列表 shello world jisuanji#首先创建一个字符串 list1s.split() print(list1)#输出结果是&#xff1a;[hello, world, jisuanji]注…

Git的原理与使用(一)

目录 Git初始 Git安装 Git基本操作 创建git本地仓库 配置git 工作区,暂存区,版本库 添加文件,提交文件 查看.git文件 修改文件 版本回退 小结 Git初始 git是一个非常强大的版本控制工具.可以快速的将我们的文档和代码等进行版本管理. 下面这个实例看理解下为什么需…

Java 简单实现一个 UDP 回显服务器

文章目录 UDP 服务端UDP 客户端实现效果UDP 服务端(实现字典功能)总结 UDP 服务端 package network;import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;public class UdpEchoServer {private Da…

【开源】基于Vue.js的大学兼职教师管理系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目详细录屏 二、研究内容三、界面展示3.1 登录注册3.2 学生教师管理3.3 课程管理模块3.4 授课管理模块3.5 课程考勤模块3.6 课程评价模块3.7 课程成绩模块3.8 可视化图表 四、免责说明 一、摘要 1.1 项目介绍 大学兼职教师管理系统&#xff0…

Oracle中分区原理

在Oracle数据库中&#xff0c;分区是一种将表或索引数据逻辑上划分为多个部分的技术。每个分区 (Partition) 都像一个独立的小表&#xff0c;并可以单独进行管理和维护。通过使用分区&#xff0c;可以优化查询性能、提高数据加载和删除操作的效率&#xff0c;并提供更好的数据管…

AI:84-基于卷积神经网络的文化遗产保护与修复

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

Java13新增特性

前言 前面的文章&#xff0c;我们对Java9、Java10、Java11、Java12 的特性进行了介绍&#xff0c;对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 今天我们来一起看一下Java13这个版本的一些重要信息 版本介绍 Java 13 是在 2019 年 9 月 17 日…

Technology Strategy Patterns 学习笔记9 - bringing it all together

1 Patterns Map 2 Creating the Strategy 2.1 Ansoff Growth Matrix 和owth-share Matrix 区别参见https://fourweekmba.com/bcg-matrix-vs-ansoff-matrix/ 3 Communicating