ComfyUI工作流节点/底层逻辑详解 | 附插件补全
上海/插画师/1年前/2915浏览
版权
ComfyUI工作流节点/底层逻辑详解 | 附插件补全

前言
我们所有训练的图形都是512x512是真实空间的图像,也就是Pixel space,是每一个像素生成的图像,同时我们也叫它像素空间,当我们训练时,其实是对图片进行了一次多重多维度的压缩,压缩以后的图片像素只有64x64,机器会在这个空间(潜在空间)里进行训练和运算,再从这个空间(潜在空间)中合成我们所有想要的信息,最后转换成肉眼能看到的真实空间,也就是像素空间的完整图像
一、ComfyUI 基础概念理解
1.1 任何工作流的核心枢纽都是采样器

所以任何工作流的第一步都是创建采样器
e.g.SD中采样方法DPM++2M Karras在ComfyUI中则需要选择采样器:DPM++2M;调度器Karras。两者分开选取
1.2 不同采样器最终结果差别不会太大

lcm采样器通常是配和实时绘画工作流使用
如果想要提高图片质量,通常会使用DPM++采样器,但对于提升图片质量DPM++2M是不如带sde后缀的采样器,sde的效果是增加了图像的发挥性和想象力,对于生成的图像会有更多的变化,出现额外惊喜,Uni PC是后期推出的采样器,优点类似于lcm采样器,可以在十部之内出不错的图像
1.3 调度器和采样器不同,常用的数量并不多

sgm_uniform也是定向性降噪,需要配合lcm实时绘画搭配使用
降噪幅度就是根据我们采样步数来设置降噪多少,默认的文生图降噪就是1即可
1.4 ComfyUI 完整工作流

正负面条件则为关键词,CLIP编码器中的文本都会输入到对应的条件里面去(负面提示词同理)

Tips:创建完之后记得一定要链接对应的线
Ctrl+C和Ctrl+V在ComfyUI界面中同样适用,按住alt拖动条件框同样可以复制;
快速搜索和创建:双击ComfyUI界面左键可以看到搜索界面进行搜索式的快捷创建;
当条件太多时,我们可以右键新建分组,多选按住shift进行一个统一的移动
二、Stable diffusion 工作原理(补充说明)
1.1 SD能在本地快速运行出图训练的原理

最后转换成肉眼能看到的真实空间,也就是像素空间的完整图像
我们所有训练的图形都是512x512是真实空间的图像,也就是Pixel space,是每一个像素生成的图像,同时我们也叫它像素空间;当我们训练时,其实是对图片进行了一次多重多维度的压缩,压缩以后的图片像素只有64x64,机器会在这个空间(潜在空间)里进行训练和运算;再从这个空间(潜在空间)中合成我们所有想要的信息;最后转换成肉眼能看到的真实空间,也就是像素空间的完整图像;但在潜在空间里我们生成的像素非常小,出了潜在空间以后才会进行一个还原;
1.2 基础工作流对应节点【Latent】补充说明(一)

空的潜在空间多大也就直接决定了我们图片的大小
Latent即潜在空间,两个空间的转换;潜在空间Latent space,真实空间Pixel space,在工作流中经常会对空间进行转换;切换英文可能更方便大家理解,也就是Empty Latent Image一个空的潜在空间图像;
1.3 基础工作流对应节点【Latent】补充说明(二)

模型传递后的参数也是处于潜在空间之中
紧接上一篇中,大家知道了采样器,Checkpoint加载器和空Latent是处在潜在空间的;
Tips:最后记得VAE解码器中的VAE需要链接到Checkpoint模型加载器上的VAE
1.4 基础工作流对应节点【VAE解码】补充说明

如果模型没有VAE或者特定的挂载了一些VAE,就需要重新脱出一个VAE加载器(load VAE)单独读取一个VAE模型;
Tips:通常的VAE模型在我们从潜在空间转换为真实空间后,它的色彩、细节、光影都会有一点点变化,这就是VAE进行调整的一个过程;
1.5 基础工作流对应节点【文本编码器】

有了纯文字后我们还需要一个encoding的文本编码再传入采样器才能成立;
文本编码器之所以叫CLIP text encoding而不是直接叫做正/负项提示词是因为节点做了两个操作:比如说我们输入1 girl,1 girl在其中是作为字符串(str)类型的文本,有了这些字符串后不能直接输入给模型;模型需要的是字符串编码以后的数据,因为它处理的信息十分多,从机器的角度它是多模态处理,就是图像和文字是两种不同的处理方式;因此需要把文字编码成能解释如右图中内容的信息,才能将两种不同的信息同时运算;
Tips:这里提到原理是因为接下来,对文字处理时,我们也会遇到两种不同类型的文字信息,一种是encoding编完码以后的,另一种就是string纯文字信息,当我们了解原理后就不会把纯文字节点去链接到采样器上;
1.6 基础工作流

基础工作流
Tips:到这里我们一套基础的工作流就搭建完成了,最后记得要把CLIP文本编辑器的CLIP点与Checkpoint加载器的CLIP点相连接
三、工作流底层逻辑
1.1 ComfyUI工作流(图生图)底层逻辑

在了解完一个基础工作流后,我们就可以尝试用自己的理解去复刻SD当中的图生图工作流;基于上一篇章的学习,这里我们就知道了图生图应该在(空Latent)中做文章;这里我们图生图给采样器输入的就不能是一个空的图像,而变为一个指定图像,用指定图像去采样生成新图像,因此要把图像给到浅空间;输出有图像(IMAGR)输出和遮罩(MASK)输出,图像输出就是Pixel的真实空间的像素输出;遮罩输出一般不用管,是作为黑白蒙版的信息输出,在一些control net中才会偶尔用到
1.2 ComfyUI工作流(图生图)底层逻辑

注意:此处是VAE编码器,与之前的VAE解码不同
紧接上一篇image是无法直接链接到latent上的;因为此处是真实空间,所以需要把此处的图片进行编码再与采样器链接;相当于之前的文本编码;编码好之后自然就可以与采样器Latent相链接,也就是把我们需要图生图的图片通过VAE编码器编码后再传入潜在空间采样;此处VAE也可以采用主模型的VAE来进行一个输入(将VAE编码器上VAE点与模型加载器上VAE点相连接);
1.3 ComfyUI工作流(图生图)底层逻辑

再K采样器中底部的降噪之前默认是1,也就是完全根据我们的步数进行百分百降噪;
我们是图生图工作流,既然有了图像的输入降噪就不是100%,我们可以给少一些改成0.4,也就是40%的重绘幅度,就会更像我们给出的图像(我们给出的图像是需要有具体分辨率,尽量与我们输出的分辨率相等,图像过大内存会崩溃,当然如果使用第三方插件来缩小/裁切也是可行的);到这里我门就可以点击添加提示词队列来进行我们的图生图工作流程
1.4 ComfyUI工作流(图生图)底层逻辑

当我们一切就绪开始运行这个工作流后可以发现生成的图片与原图是十分接近的
这就是我们了解了空间问题以后,就能很容易的通过节点的自由链接实现图生图的简单功能,当然这个工作流还不是太完善,通常图生图工作流在SD中还需要进行一个提示词的反推和图片的修剪,再加一个impanting(图像的重绘)其实这些功能最后在ComfyUI中都会整合成一个一个的模块
四、必备插件补全
1.1 ComfyUI工作流插件安装

第一个呢就是提示词汉化插件,这与我们之间manager的翻译插件不同。类似于我们再web-UI中的补齐汉化和各种实时翻译大全的自定义节点;第二个呢就是一个自定义脚本,也就是大家常称呼的瑞士军刀。集合了很多WebUI中实用的小功能,非常全面:embedding补全、二级菜单、以及网络对齐、模型资料查看等等
1.2 安装步骤

接下来给大家演示 下安装步骤:
插件下载操作可参考我之前发的Stable Diffusion的报错指南链接,其中下载步骤相同,下载完两个压缩包之后直接拖入comfyUI根目录下并分别解压,此时我们就可以直接云运行,重新打开comfyUI
1.3 更新提示

Tips:如果一只卡在检测界面就是网络配置问题,需要科学上网
只是后就需要用到之前的手动下载;但依旧有一些节点文件再解压以后还是需要二次在网上配置下载,这时候就必须要用到科学上网了
1.4 结尾

当然也可以在manager中安装,在manager中安装就简单的多,只需要直接搜索即可,之前有提过,也可以直接复制完整的github地址,通过URL安装,在弹出的窗口中输入链接,点击确定就可拉取(注意两种方法都需要配置网络)
五、结尾
在了解完一个基础工作流后,我们就可以尝试用自己的理解去复刻SD当中的图生图工作流;
记得关注,我会持续为大家带来最新的ComfyUI教程哦。
16
Report
声明
35
Share
in to comment
Add emoji
喜欢TA的作品吗?喜欢就快来夸夸TA吧!

Be the first to comment
Log in
16Log in and synchronize recommended records
35Log in and add to My Favorites
评论Log in and comment your thoughts
分享Share