ComfyUI进阶篇:ControlNet核心节点
前言:
ControlNet_aux库包含大量的图片预处理节点,功能丰富,适用于图像分割、边缘检测、姿势检测、深度图处理等多种预处理方式。掌握这些节点的使用是利用ControlNet的关键,本篇文章将帮助您理解和学会使用这些节点。
目录
一、安装方法
二、模型下载
三、Segmentor节点
四、Lines节点
五、Color Pallete/Content Shuffle节点
六、OpenPose节点
七、Depth节点
八、MeshGraphormer Hand Refiner节点
九、ControlNet示例工作流
一、安装方法
在ComfyUI主目录里面输入CMD回车。
在弹出的命令提示行输入git clone +github下载网址,即可开始下载。
github项目地址:https://github.com/Fannovel16/comfyui_controlnet_aux.git
二、模型下载
ControlNet-SD1.5模型下载地址:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
注意:模型下载需同时下载ControlNet模型和模型对应的配置文件(yaml)文件。
三、Segmentor节点
该节点是用来执行图像分割任务的,并用不同颜色标注出图像区域
添加节点:Anime Face Segmentor/ UniFormer Segmentor/ Semantic Segmentor (legacy, alias for UniFormer)/ OneFormer COCO Segmentor/ OneFormer ADE20K Segmentor
输入:
Image → 需要进行预处理的原始图片
参数:
remove_background_using_abg → 自动生成的二值化字符掩码,从图像中分离对象
resolution → 输出图像的分辨率 此值会影响最终的图像分割结果
输出:
IMAGE → 输出图像分割后的结果
ABG_CHARACTER_MASK(MASK) → 输出蒙版结果
注意:这些节点的使用会自动下载相应的模型,模型存放位置为:
..\ComfyUI\custom_nodes\comfyui_controlnet_aux\ckpts\lllyasviel\Annotators
通过使用 Segmentor 节点,用户可以在 ComfyUI 中方便地进行图像分割任务,从而在不同的应用场景中利用分割结果进行进一步的图像处理和分析。
四、Lines节点
该节点是一种用于检测图像中的线条或边缘的工具。
添加节点:Binary Lines/ Standard Lineart/ HED Soft-Edge Lines/Scribble Lines/ Anime Lineart/ PiDiNet Soft-Edge Lines/ TEEDPreprocessor/ Scribble XDoG Lines/ Canny Edge/ M-LSD Lines/ Fake Scribble Lines (aka scribble_hed)/ Manga Lineart/ Diffusion Edge/ Realistic Lineart/
输入:
image → 需要处理的原始图像
参数:
bin_threshold → 表示阈值 该阈值会影响边缘检测效果,可进行更改尝试效果
safe → 该参数控制着 HED 算法中的行为 比如异常值处理,边缘链接等
guassian_sigma → 表示高斯滤波核 图像边缘检测前一般会进行降噪,此时用到高斯滤波核
patch_batch_size → 表示边缘检测时批次数量 图像一般会被分块进行处理,块成为patch
resolution → 表示输出图像的分辨率 该值会影响最终的检测效果
注意:这些节点的参数较多,上图的对比仅使用默认的参数进行跑图,具体的情况还需要大家进行多次尝试,上图效果仅供参考。
输出:
IMAGE → 输出图像的边缘检测信息结果
通过使用 Lines 节点,用户可以在 ComfyUI 中轻松实现图像中的线条检测,从而为进一步的图像分析和处理提供有价值的信息。
五、Color Pallete/Content Shuffle节点
在ComfyUI中,Color Palette 节点是用来提取图像中的颜色信息并生成一个颜色调色板的工具。Content Shuffle 节点是用来随机化或重排输入数据或图像内容的工具。这两个节点主要作用是保持图像的画风一致,配合shuffle的ControlNet使用。
输入:
image → 加载原始图像
参数:
resolution → 表示输出图像的分辨率 此值的设定会影响最终结果
seed → 随机数种子
control_after_generate → 产生种子之后,以何种方式进行处理 递增,递减,固定
输出:
IMAGE → 输出处理之后的图像
·而通过使用 Content Shuffle 节点,用户可以在 ComfyUI 中轻松实现数据或图像内容的随机化或重排,从而为各种应用场景提供有用的工具和方法。
六、OpenPose节点
该节点是用来进行人体姿态估计的工具。
添加节点: AnimalPose Estimator (AP10K)/MediaPipe Face Mesh/ OpenPose Pose
输入:
image → 接收一幅或多幅包含人体的图像作为输入
参数:
model → 选择进行检测的模型
bbox_detector → 加载探测框识别模型
pose_estimator → 加载姿势识别模型
max_faces → 参数用来指定一张图片最多出现人脸数量
min_confidence → 代表了模型对于检测到的人脸的最小置信度阈值。
注意:当模型检测人脸时会给出一个数值,当值低于min_confidence则认为不是人脸。
输出:
IMAGE → 输出检测后的图像
POSE_KEYPOINT → 参数可能包含姿势检测结果的坐标信息,通常以一个列表或数组的形式呈现。
通过使用 OpenPose 节点,用户可以在 ComfyUI 中轻松实现人体姿态估计,并将检测到的关节点和骨骼信息应用于各种计算机视觉任务和应用场景。
七、Depth节点
该节点是用于生成和处理图像的深度信息的工具。
输入:
image → 输入原始图片
参数:
bg_threshold → 给出背景的阈值,以此值为基准进行背景分离
rm_nearest → 设置像素插值 该值主要针对主体
rm_background → 设置背景阈值 该值过大会使得背景无深度信息
boost → 是否开始深度图增强模式 开启,深度图会进行后处理,使深度信息更明显
resolusion → 输出图像的分辨率
输出:
IMAGE → 输出处理后的深度图像信息
通过使用 Depth 节点,用户可以在 ComfyUI 中轻松生成和处理图像的深度信息,深度图常配合depth的ControlNet使用,如下图所示的工作流,使用原图获得深度图信息,通过ControlNet指导模型进行扩散,最终生成与深度图吻合的图像。
八、MeshGraphormer Hand Refiner节点
该节点是一种用于精细化手部姿态估计的工具。它利用 MeshGraphormer 模型的强大能力,从图像中提取手部的精细3D结构信息。
输入:
images → 接收输入的图像 需要包含手部信息
参数:
mask_bbox_padding → 输出的蒙版大小 该值只有在mask_type=original时起作用
resolution → 输出图像的分辨率
mask_type → 选择输出蒙版的类型
mask_expand → 蒙版区域扩大范围
rand_seed → 给出种子用来生成输出结果
输出:
IMAGE → 输出供ControlNet参考的预处理图像
INPAINTING_MASK → 输出对应手部的蒙版
通过使用 MeshGraphormer Hand Refiner 节点,用户可以在 ComfyUI 中实现高精度的手部姿态估计和精细化处理,为各种应用场景提供准确和详细的手部姿态数据。使用该节点生成对应的深度图信息和手部的蒙版,将深度图信息传入ControlNet用来引导模型扩散出指定的形状。
九、ControlNet示例工作流
熟练使用以上节点,你就可以搭建有关ControlNet的工作流了。
在这里,我们使用SD1.5的大模型,通过手部修复节点生成原图中人物手部的蒙版和修复所需的深度图。接下来,将深度图传入ControlNet以指导模型扩散,并使用Clipinterrogator节点对原始图像进行语义反推,从而修复人物的手部。最终,得到原图和修复后的图像。
孜孜以求,方能超越自我。坚持不懈,乃是成功关键。
ComfyUI进阶篇:ControlNet核心节点的更多相关文章
- 「进阶篇」Vue Router 核心原理解析
前言 此篇为进阶篇,希望读者有 Vue.js,Vue Router 的使用经验,并对 Vue.js 核心原理有简单了解: 不会大篇幅手撕源码,会贴最核心的源码,对应的官方仓库源码地址会放到超上,可以配 ...
- 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)
如约而至,Java 10 正式发布! 3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...
- flink进阶篇
Flink 面试--进阶篇 1.Flink是如何支持批流一体的? 2.Flink是如何做到高效的数据交换的? 3.Flink是如何做容错的? 4.Flink 分布式快照的原理是什么? 5.Flink ...
- MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL
MYSQL(进阶篇)--一篇文章带你深入掌握MYSQL 我们在上篇文章中已经学习了MYSQL的基本语法和概念 在这篇文章中我们将讲解底层结构和一些新的语法帮助你更好的运用MYSQL 温馨提醒:该文章大 ...
- Jmeter(三十九) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 上篇(详解教程)
------------------------------------------------------------------- 转载自:北京-宏哥 https://www.cnblogs.co ...
- Membership三步曲之进阶篇 - 深入剖析Provider Model
Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...
- idea 插件的使用 进阶篇
CSDN 2016博客之星评选结果公布 [系列直播]零基础学习微信小程序! "我的2016"主题征文活动 博客的神秘功能 idea 插件的使用 进阶篇(个人收集 ...
- 最快让你上手ReactiveCocoa之进阶篇
前言 由于时间的问题,暂且只更新这么多了,后续还会持续更新本文<最快让你上手ReactiveCocoa之进阶篇>,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+Rea ...
- SQL Server调优系列进阶篇(查询语句运行几个指标值监测)
前言 上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤.筛选条件分析.索引项优化等信息. 本篇我们分析在我们运行的过程中几个关键指标值的检测. 通过这些指标值来分析语句的运行问 ...
- SQL Server调优系列进阶篇(如何索引调优)
前言 上一篇我们分析了数据库中的统计信息的作用,我们已经了解了数据库如何通过统计信息来掌控数据库中各个表的内容分布.不清楚的童鞋可以点击参考. 作为调优系列的文章,数据库的索引肯定是不能少的了,所以本 ...
随机推荐
- AIRIOT赋能水务行业深度转型,打造智慧水务“四化建设”
水利水务与民生息息相关,随着我国智慧城市建设的推进及科学技术的不断发展,对城市供水管理产生了尤为重要的影响.面对水务行业信息化建设周期长,无统一的技术标准和数据标准,信息孤岛严重,协同工作能力受制 ...
- Spring 面向切面编程AOP 详细讲解
1. Spring 面向切面编程AOP 详细讲解 @ 目录 1. Spring 面向切面编程AOP 详细讲解 每博一文案 2. AOP介绍说明 2.1 AOP的七大术语 2.2 AOP 当中的 切点表 ...
- 14个Flink SQL性能优化实践分享
本文分享自华为云社区<Flink SQL性能优化实践> ,作者:超梦. 在大数据处理领域,Apache Flink以其流处理和批处理一体化的能力,成为许多企业的首选.然而,随着数据量的增长 ...
- SqlServer 死锁查询
use master go create procedure sp_who_lock as begin declare @spid int,@bl int, @intTransactionCountO ...
- P1746 离开中山路
传送锚点:https://www.luogu.com.cn/problem/P1746 题目背景 <爱与愁的故事第三弹·shopping>最终章. 题目描述 爱与愁大神买完东西后,打算坐车 ...
- 7z 命令行压缩解压详解-中文版
1) 简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压软件. 主页:http://www.7-zip.org/ 中文主页:http://7z.sparanoid.com ...
- WPF 中使用附加属性解决 PasswordBox 的数据绑定问题
1.前言 在 WPF 开发中 View 中的数据展示我们常通过 Binding 进行绑定.但是,使用 Binding 有一个前提:绑定的目标只能是依赖属性. 而 PasswordBox 控件中的 Pa ...
- C# JObject.Add方法代码示例
本文整理汇总了C#中Newtonsoft.Json.Linq.JObject.Add方法的典型用法代码示例.如果您正苦于以下问题:C# JObject.Add方法的具体用法?C# JObject.Ad ...
- Win11安装VMware Workstation Pro,Centos,Xshell,Xftp(Linux学习需要)
注意:1.win11不能安装太低版本的VMware Workstation Pro,否则启动linux会出现蓝屏 2.win11是默认没有开虚拟机平台支持的,所以同时也要开启,否则也会出现蓝屏. ...
- 7.13晚考试总结(NOIP模拟14)[队长快跑·影魔·抛硬币]
樱花满地集于我心,楪舞纷飞祈愿相随 前言 终于没有令人头疼的数学了,总感觉这次考试的题目比较良心. 尤其是对于部分分的明细就非常到位(不像上一场的凭感觉给出部分分). 这就令我这种靠部分分暴力的菜鸡选 ...