前面的篇章已经详细讲解了线条约束、三维关系与空间深度、人体姿态等几类controlnet的功能与应用,本节内容将对通过controlnet对图像的结构理解及控图效果。

序号

分类

Controlnet名称

备注

1

线条约束

Canny(硬边缘)

约束性强,可以识别详细线条

SoftEdge(软边缘)

柔和的线条

MLSD 直线、最小线段检测

主要用于建筑空间

Lineart 线稿提取

粗细不同的线条

Scribble 涂鸦

粗略线条、发挥空间大

2

三维关系、

空间深度

Depth 深度

空间层次关系

Normal 法线贴图

纹理效果常用

3

人体姿态、手势与表情

Openpose 姿态控制

姿势、表情、手势控制

4

图像风格转换

Shuffle 随机

打乱图片元素重新组合

IP-Adapter (图像)风格迁移

参考图像画风、换脸等

T2l-Adapter (文字转图)风格迁移

参考原图画风

Reference 参考图引导

模仿原图绘画

Instant-ID 换脸

人物换脸

5

图片修复与编辑

Recolor 重上色

老照片修复

Inpaint重绘

类似于局部重绘,但融合效果更好

Tile 分块

分块重采样,细节方法

6

结构理解

Seg 语义分割

根据色块代表不同含义

7

其它

InstructP2P 指令式编辑

变换场景、特效

Revision 图像修订

1 seg(Semantic Segmentation 语义分割)

1.1 seg语义分割概述

seg语义分割对图像预处理的结果不是线条,而是在将画面划分为不同颜色的色块,且不同颜色的色块分别被赋予不同的物体含义,由此可以将图像中物体的内容固定住,在生图期间可以根据色块内容性质画出同类型的物体,不会出现内容结构的偏差。

案例图不同区块的物体赋予了不同的颜色,在生成图像时对应色块就会生成特定的对象,从而实现更加准确的内容还原。

1.2 seg的预处理器

seg有4种预处理器:of_ade20k、uf_ade20k和of_coco、以及用于动漫面部识别的anime_face。(mobile_sam用于移动设备)

of代表oneformer算法,uf代表uniformer算法;

ade20k和coco是两种色值数据集;

of_ade20k、uf_ade20k和of_coco是两种算法和两种协议的组合,三款预处理器的识别效果有一定差距,预处理器测试效果对比如下,可以看出oneformer算法优于uniformer算法(uniformer算法中存在色块未识别元素):

原图 of_ade20k of_coco uf_ade20k

anime_face主要用于动漫人物面部的识别,预处理器见本节课课件,下载后安装地址:

根目录\extensions\sd-webui-controlnet\annotator\downloads\anime_face_segment\UNet.pth

下面案例对动漫人物进行识别,采用of_ade20k、uf_ade20k和of_coco三类预处理器仅可以将人物整体识别成一个整体色块,而anime_face则可以更细致地识别动漫人物具体形象。

ade20k和coco是两种色值数据集,不同的色值代表不同的物体,两种数据集所分析的图像和代表的色值数不同,两种色值数据集对应的颜色对照表文件见附件。

1.3 seg应用示例

Seg语义分割在controlnet中常用作以下两种功能:

1.3.1固定色块不改变区域内容,生成不同风格图像

选择一款目标风格的大模型,通过WD1.4反推原图获得提示词,并发送到文生图:

设置出图参数,图片尺寸由controlnet中同步获取。

设置controlnet

色块在线编辑,点击预处理效果图的右下角处的编辑按钮,进入类似在线PS功能界面对效果图进行在线编辑,可以修改色块的范围边界,进而调整原图的元素结构。

将修改后的色块图直接发送到预处理结果预览处,其余参数均无需调整,直接生图即可;也可以下载修改后的色块图,将色块图上传至controlnet,预处理器选择none,点击爆炸按钮预览,再进行生图;

1.3.2通过添加色块,在原图中增加新元素;

可以通过贴图形式将目标物体“贴”到原图中,再进行seg预处理获得色块图;也可以将预处理后的色块图下载下来,通过PS等工具将该区域修改为目标物体的色值,再次生成图像时,该色块即可生成指定的物体;

案例:在卧室中增加人物

先通过贴图方式,将人物图放置到卧室环境图中,获取新的底图。

选择大模型及VAE;通过WD1.4反推修改后的图像获得提示词,发送到文生图,后续操作和上文相同。

也可以根据色块对照表采用PS画出色块图,再使用文生图+controlnet的seg功能对应生图,即可提前框定图像不同区域内容,使图像更有可控性。

2 InstructP2P 指令式编辑

2.1 InstructP2P概述

InstructP2P 的全称为 Instruct Pix2Pix 指令式编辑生图,它的原理基本与图生图相同,是直接参考底图内容进行生图,所以使用时无需进行预处理,预处理器选择无即可。

InstructP2P是一种将文字指令转化为图像编辑的功能,它可以识别出底图的内容并根据文字指令对图像进行修改。

control_v11e_sd15_ip2p模型下载后放入:根目录\models\ControlNet文件夹中

huggingface.co/lllyasviel/…

2.2 应用实例

InstructP2P经常被用来给图像增加一些特效、改变环境等,日常使用时用到的频率并不高。提示词中无需描述其它内容,只需要遵守简单的指令格式:

提示词书写格式为:make it XXX

例:让图片中的环境:下雪//变成春天/着火

提示词栏填写:make it XXX

make it snow make it burning

3 Revision 图像修订

3.1 revision概述

Revision是1.1.400及更新版本ControlNet新增的功能,仅适用于SDXL版本的大模型。

Revision主要通过对图像内容进行理解并使用获取到的图片信息进行生图,可以将它看做是一种跳过反推提示词再使用提示词生图步骤,直接使用图片信息进行生图的工具。信息的转译会导致信息流失,比如WD1.4标签器并不能完整概括图片中所有元素,而Revision由图片直接转成embedding,跳过中间文字的转译,可以携带更多的原图信息。

Revision算法可以单独用于图像生成,也可以与提示词Prompt组合使用,对应的也共两款预处理器,revision_clipvision(作为补充)及revision_ignore_prompt(忽略原有提示词)。

3.2应用示例

3.2.1 不填写提示词,仅使用revision:

选择XL版本大模型,正向提示词、反向提示词均不填写,打开controlnet,上传底图,选择revision。

通过出图结果可以看出在不填写提示词的情况下,两款预处理器出图效果几乎没有区别,都可以参考原图中元素进行生图。

3.2.2 有提示词情况下两款预处理器效果对比

我们在正向提示词中填写与原图特征不一致的描述,改变或增加一部分人物关键特征

正向提示词:1 girl,long red hair,blunt bangs,necklace,earrings,

反向提示词:DeepNegative_xl_v1,

clipvision预处理器作为提示词的补充,和提示词一起参与图像生成;

ignore_prompt预处理器则完全忽略提示词的作用,仅使用图片信息进行图片生成;

3.3注意要点

(1)提示词的修改应该基于原参考图基础,变化过大则生成的图像有可能与参考图无关联。

(2)Revision是一种算法,没有额外的训练模型,直接选择预处理器即可使用。

(3)Noise Augmentation噪声增强可以理解为提示词对出图的影响程度,该值越低则controlnet的参考图对出图的影响越大,该值越高则提示词对出图的影响越大,controlnet的参考图影响越小。

4 多个controlnet同时应用

由于图像画面结构和内容复杂,使用单一的controlnet可能无法达到我们预期的效果,此时我们可以同时使用两个或者多个controlnet同时对出图进行控制。

如果你的webUI界面中controlnet功能选项卡中只有1个controlnet,需要先点击“设置”,找到左侧的controlnet,将controlnet单元数量设置为你需要的数量(一般3~4即可),重载webUI即可看到多个controlnet选项。

可以通过调整每个controlnet的控制权重及引导介入/终止时机

案例:生成一张图像,参考图1中的人物姿势,参考图2中的绘图色彩

第一步,选择一款大模型,填入简单提示词,调整出图参数

正向提示词:1 girl,

反向提示词:(无)

第二步:在controlnet 0中上传人物姿势参考图,选择openpose,通过预处理器获取人物姿态,调整权重等参数。

第三步:在controlnet 2中上传参考的风格图,选择IP-Adapter,预处理,调整权重等参数;

生成图像如下,可以看到在没有额外提示词的情况下,很好地遵循了图像1人物的姿势,图像2的画面色彩元素。

        这里分享webUI的本地整合包资源,个人自用的整合包(超全插件及模型,本节课程所有涉及的模型均可在对应文件夹中找到下载)。

     整合包形式,无需安装,Windows系统下载打开即用。

「webui全能包(内置超全插件、模型)--100G左右」https://pan.quark.cn/s/3647679a1966

    欢迎正在学习comfyui等ai技术的伙伴V加 huaqs123 进入学习小组。在这里大家共同学习comfyui的基础知识、最新模型与工作流、行业前沿信息等,也可以讨论comfyui商业落地的思路与方向。 欢迎感兴趣的小伙伴,群共享资料会分享博主自用的comfyui整合包(已安装超全节点与必备模型)、基础学习资料、高级工作流等资源……

    致敬每一位在路上的学习者,你我共勉!Ai技术发展迅速,学习comfyUI是紧跟时代的第一步,促进商业落地并创造价值才是学习的实际目标。

——画青山Ai学习专栏———————————————————————————————

零基础学Webui:

https://blog.csdn.net/vip_zgx888/category_13020854.html

Comfyui基础学习与实操:

https://blog.csdn.net/vip_zgx888/category_13006170.html

comfyui功能精进与探索:

https://blog.csdn.net/vip_zgx888/category_13005478.html

系列专栏持续更新中,欢迎订阅关注,共同学习,共同进步!

—————————————————————————————————————

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

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

相关文章

【MFC】对话框属性:Center(居中)

前言 本文介绍对话框属性中的Center(居中),同时给出相关示例便于理解。 目录1 位置2 详解3 示例1 位置 首先介绍一下这个属性在哪里。 在资源视图中双击对话框节点,打开该对话框; 鼠标右键工作区空白处,单击属性; 此时…

SciKit-Learn 全面分析分类任务 breast_cancer 数据集

背景 乳腺癌数据集,569个样本,30个特征,2个类别(良性/恶性) 步骤 加载数据集拆分训练集、测试集数据预处理(标准化)选择模型模型训练(拟合)测试模型效果评估模型 分析方法…

【开题答辩全过程】以 _基于SpringBoot技术的“树洞”心理咨询服务平台的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

R 语法高亮为什么没有,是需要安装专用的编辑软件,R语言自带的R-gui 功能还是比较简单

R 语法高亮为什么没有,是需要安装专用的编辑软件,R语言自带的R-gui 功能还是比较简单 以下是一些主流的 R 编辑软件(IDE / 编辑器),适用于不同需求的用户: ✅ 最推荐:RStudio(免费/…

使用UniApp实现下拉框和表格组件页面

使用UniApp实现下拉框和表格组件页面UniApp提供了一套完整的跨平台开发框架&#xff0c;支持在多个平台上运行。下拉框和表格是常见的UI组件&#xff0c;可以通过UniApp内置组件或第三方插件实现。下拉框组件的实现UniApp内置的<picker>组件可以实现下拉选择功能。以下是…

JavaScript 对象说明

JavaScript 对象说明 1. 对象的基本概念 在 JavaScript 中&#xff0c;对象是一种复合数据类型&#xff0c;用于存储相关联的属性和方法。对象可以看作是属性的集合&#xff0c;其中每个属性都由一个键&#xff08;key&#xff09;和一个值&#xff08;value&#xff09;组成。…

【竞赛系列】机器学习实操项目04——客户信用评估模型开发全流程(baseline)

上一章&#xff1a;机器学习实操项目03——Scikit-learn介绍及简单分类案例 下一章&#xff1a; 机器学习核心知识点目录&#xff1a;机器学习核心知识点目录 机器学习实战项目目录&#xff1a;【从 0 到 1 落地】机器学习实操项目目录&#xff1a;覆盖入门到进阶&#xff0c;大…

C++中的单例模式的实现

1 什么是单例模式单例模式 是一种创建型设计模式&#xff0c;确保一个类在整个程序生命周期中只有一个实例&#xff0c;并提供一个全局访问点。核心要求&#xff1a;类不能被外部随意创建&#xff08;禁止 public 构造函数或限制实例数量&#xff09;。不能被复制或移动。提供一…

汇编基础1

1.格式伪操作&#xff1a;它们不是ARM处理器实际的指令&#xff08;如MOV&#xff0c; ADD等&#xff09;&#xff0c;而是写给汇编器看的命令&#xff0c;用于指导汇编器如何工作area reset, code, readonlycode32entry内容 endarea: 这是最重要的一个伪操作&#xff0c;用…

设计模式(C++)详解—单例模式(2)

<摘要> 单例模式是创建型设计模式中最简单但应用最广泛的模式之一&#xff0c;它确保一个类只有一个实例并提供全局访问点。本文从历史背景和核心概念出发&#xff0c;系统阐述了单例模式的产生缘由和演进脉络&#xff0c;深入剖析了其在资源管理、状态一致性和访问控制方…

kafka如何保证消息的顺序性

kafka如何保证消息的顺序性 Kafka只能在分区&#xff08;Partition&#xff09;级别保证消息的顺序性&#xff0c;而不能在主题&#xff08;Topic&#xff09;级别保证全局顺序。 核心原理&#xff1a;分区和偏移量分区&#xff08;Partition&#xff09;是顺序性的基础&#x…

传输层:UDP/TCP协议

网络协议图 一.UDP 特点: 无连接&#xff0c;不可靠&#xff0c;面向数据报&#xff0c;全双工&#xff08;前面网络编程中介绍过&#xff09; 格式: 服务器的端口号一般都是程序员指定的(这样你才能访问到),客户端的端口号是系统自动分配的(如果提前指定好, 可能会与其他程…

A/B测试全解析:原理、流程与实战案例

A/B测试&#xff08;AB Testing&#xff09;原理与实践全解析 在数据驱动的时代&#xff0c;A/B测试几乎是每一个互联网公司都会使用的实验方法。无论是电商平台优化转化率&#xff0c;还是内容平台提升点击率&#xff0c;抑或是游戏公司提升留存&#xff0c;A/B测试都是最常见…

循环神经网络(三):小练习

RNN小练习 要求&#xff1a; 假设有 4 个字 吃 了 没 &#xff1f;&#xff0c;请使用 torch.nn.RNN 完成以下任务 将每个进行 one-hot 编码请使用 吃 了 没 作为输入序列&#xff0c;了 没 &#xff1f; 作为输出序列RNN 的 hidden_size 64请将 RNN 的输出使用全连接转换成 4…

ESPIDF官方文档,启用dhcp会禁用对应的STA或AP的静态IP,我测试STA确实是,但是AP不是,为什么

1. STA 模式下的 DHCP&#xff08;客户端角色&#xff09;ESP32 当 Station&#xff08;STA&#xff09; 时&#xff0c;它的行为就跟你的手机/笔记本连 Wi-Fi 一样&#xff1a;DHCP 客户端 → 去路由器&#xff08;DHCP 服务器&#xff09;要一个 IP。特点启用 DHCP&#xff0…

cocos2d. 3.17.2 c++如何实现下载断点续传zip压缩包带进度条

新建类CurlDown #include “curl/curl.h” #include using namespace std; USING_NS_CC; /** 资源下载curl */ class CurlDown { public: CurlDown(); ~CurlDown(); void StartDownResZip(string downLoadUrl, int64_t totalSize); //下载控制 void downloadControler(); //下…

MySQL 整型数据类型:选对数字类型,让存储效率翻倍

MySQL 整型数据类型&#xff1a;选对数字类型&#xff0c;让存储效率翻倍 在 MySQL 中&#xff0c;整型&#xff08;整数类型&#xff09;是最常用的数据类型之一&#xff0c;从用户 ID 到商品数量&#xff0c;几乎所有涉及数字的场景都离不开它。但你知道吗&#xff1f;选对整…

公司电脑监控软件有哪些?公司电脑监控软件应该怎么选择

大家好呀&#xff0c;电竞直播运营团队常常面临 “直播脚本被抄袭、用户付费数据篡改、主播话术外泄” 的问题&#xff01;尤其是独家直播流程脚本、用户充值记录、主播互动话术库、赛事解说手稿&#xff0c;一旦泄露可能导致竞品跟风、用户信任下降、直播竞争力减弱&#xff5…

ARM裸机开发:链接脚本、进阶Makefile(bsp)、编译过程、beep实验

一、链接脚本的作用&#xff1f;各个段存放什么数据类型&#xff08;一&#xff09;链接脚本内容SECTIONS {. 0x87800000;.text : {obj/start.o*(.text)}.rodata ALIGN(4) : {*(.rodata*)}.data ALIGN(4) : {*(.data)}__bss_start .;.bss ALIGN(4) : {*(.bss) *(COMMON)}__bs…

Linux驱动开发(1)概念、环境与代码框架

一、驱动概念驱动与底层硬件直接打交道&#xff0c;充当了硬件与应用软件中间的桥梁。1、具体任务&#xff08;1&#xff09;读写设备寄存器&#xff08;实现控制的方式&#xff09;&#xff08;2&#xff09;完成设备的轮询、中断处理、DMA通信&#xff08;CPU与外设通信的方式…