点赞 + 关注 + 收藏 = 学会了
本文简介
学习 ComfyUI 就必须了解什么是工作流。
什么是工作流?
在 WebUI 中,我们是通过"填写表单"的方式让 Stable Diffusion 去生成图像的。在 ComfyUI 中用了更灵活的方式:工作流。
「工作流」 是指一系列节点的排列和连接方式,用来实现特定的图像生成或处理任务。
这么说还是有点晦涩难懂,举个例子。
你去餐厅吃饭,一般是找服务员或者自己扫码点菜,后厨接到任务就开始做菜,菜做好了服务员就端到你餐桌上。这个流程就和 WebUI 一样。你点餐的动作就是在填写表单,至于厨师做菜的流程是怎样的你不需要了解。
餐厅不止一个类型,现在还有很多自助火锅、自助烤肉的店。在这些店里,你除了要下单选择食材,还需要自己动手去做菜。在做菜的过程中,你需要自己设定什么时候放肉进去烤,是先刷了酱再烤还是烤完再刷酱,这些流程都能自己掌控。这就好比 ComfyUI 的工作流。
ComfyUI 是一个基于节点的用户界面,在这个界面中,"工作流" 包括以下几个主要部分:
- 节点(Node):每个节点代表一个特定的功能或操作,比如图像生成、图像处理、噪声添加、模型加载等。
- 连接(Connection):节点之间通过连接线连接,定义数据流的方向和顺序。输入数据从一个节点流向下一个节点。
- 参数(Parameters):每个节点可以有多个参数,你可以调整这些参数以改变节点的行为,从而影响最终输出。
- 输入和输出(Inputs and Outputs):节点可以有一个或多个输入和输出端口,用于接收和发送数据。
在这个界面中,每个框都是一个节点,节点和节点之间都有一根根线连接起来。
每个节点都有「输入端口」和「输出端口」,通常节点左侧的端口是输入端口,节点右侧的端口是输出端口。
整个工作流看起来其实和工厂的流水线一样,A节点完成一道工序后就把物料交给B节点处理,B节点完成自己的任务后又交给下一个节点,直至原材料变成成品或者废品为止。
从「默认工作流模板」学起
在 ComfyUI 新建工作流通常会在工作区自动创建好一个默认的工作流。如果没默认创建工作流的话也可以手动加载出来。
工作流 - 浏览模板 - Image Generation
这个「默认工作流模板」包含「输入」、「潜空间」、「输出」三大部分。
ComfyUI 每个节点都有不同颜色的端口,通常节点右侧的是输出端口,左侧是输入端口。节点和节点之间通过连接线连接起来,上一个节点的输出端口会连到下一个节点的输入端口。
每一个端口的颜色要相互匹配上才行,不同颜色的端口是无法连接起来的。
在 ComfyUI 中,一个输出端口是可以连接多个不同节点的,但所有节点的输入端口都只能连一根线。
也就是说,输出端口可以一对多,输入端口只能一对一。起码在写本文时我还没遇到输入端口可以一对多的情况(可能我见识少)。这和现在流行的智能体工作流有点不一样。比如前面介绍过Dify的工作流的某些节点的输入端口可以接受接个输入源。
了解了节点的连接方式后,接下来看看输入模块的内容。
第一个节点是 「Checkpoint加载器」,在这个节点底部的选择器里选择大模型。
我通常会在这几个平台下载大模型。
- huggingface(需要魔法):huggingface.co/
- C站(需要魔法):civitai.com/models
- 哩布哩布(国内平台,部分模型要充会员才能下载):www.liblib.art/
「Checkpoint加载器」右侧有几个输出端口:
-
模型 端口是将你选择好的大模型输出给K采样器 ,K采样器的配置等下再讲解。
-
CLIP的全称是 Contrastive Language Image Pre-trainingtraining,它是Open AI 在2021年发布的一款多模态预训练神经网络模型。它的主要作用是理解我们输入的文字,然后再把它理解好的内容转换成 Stable Diffusion 能理解的信息,再加载到潜空间去。
-
VAE的全称是 Variational Auto Encoder,中文名叫"变分自编码器"。它是一种深度学习模型,主要用于无监督学习任务。简单来讲,它就是个"图片翻译器"。它可以将 Stable Diffusion 处理好的内容转换成我们肉眼能看的图片,也可以在「图生图」时将我们上传的图片转换成 Stable Diffusion 能理解的内容。
所以,在这个 Demo 里,Checkpoint加载器 的模型是给K采样器用的,然后再分2条线出来连接「正面提示词」和「负面提示词」。正面提示词输入的内容是你想要生成的图像信息,而负面提示词则输入你不想让 AI 生成的信息。
VAE 端口则是连接到VAE节点,在 Stable Diffusion 生成完图像后转换成我们能理解的图片时会用到。
接下来看看这个「空Latent」是什么东东。
这个「空Latent」有3个参数,分别用来控制需要生成图像的宽和高,以及要执行多少次任务。
批次大小如果输入2,那么点击"执行"后,就会生成2张图片。
接下来看看最核心的区域,K采样器。
K采样器 左侧的输入端口有4个,分别接入前面「输入模块」的内容。右侧只有一个输出端口Latent。
Latent(潜空间)可以理解为 Stable Diffusion 内部工作流程中的图像格式。这个节点里的所有参数都是告诉 Stable Diffusion 要怎么去生成图像。
随机种:图片的种子值,每张图都有自己的种子值,可以理解为图像的专属id。如果所有输入条件和参数相同,随机种也相同,那么每次生成的图像都会一样。
运行后操作:这项一共有4个选项,分别是固定、增加、减少、随机。如果选择"固定",则生成图片后,种子值保持不变,方便你进行其他参数的调整和操作。选择"随机"则每次生成图片后种子植都会随机变化,"增加"则每次生成图片后种子植会自动加1,减少就减1。
在 WebUI 中种子植叫Seed ,它是可以填 -1
的(-1就是随机)。而在 ComfyUI 里"随机种"是不能填 -1
的,该值必须大于0。
步数:采样步数,这个值影响我们生成图片的质量。数值越大,计算步数越多,运行时间越长,在一定范围内生成的图像质量越好。
但采样步数并不是越大越好,这个值是有边际效应的,当数值超过一定程度后,生成图片的差距就会减少,但绘图耗时却大大增加。大多数情况保持在20-30即可。
看看这两组图,步数超过30之后变化就不明显了,但生成图片所花费的时间却大了很多。
CFG:提示词引导系数。CFG 值越高,图像与提示词越吻合。CFG 值越低,图像与提示词越无关,AI 就越放飞。
过高或过低的 CFG 值都会给图像带来不好的影响,图片可能会产生奇怪的变形或者拟合,通常设置为5-8即可。
采样器和调度器:图像的生成方式。如果把其他参数当成食材,那么这两个参数就是烹饪方法,不同的烹饪方法做出来的菜式也不一样。
降噪参数:这个参数主要是用来减少图像生成过程中的噪点或失真,在「图生图」中更为有效,因为「图生图」通常涉及局部的编辑或修复,可能会引入不自然的噪点或边缘,因此降噪可以帮助得到更平滑、更自然的效果。在这个基础的「文生图」工作流里不需要关注这个参数。
最后看看输出模块。
输出包块包含「VAE解码」和「保存图像」两个节点。
「VAE解码」前面已经介绍过了,它就是个翻译员,将潜空间的低像素图像转成最终的高像素图像,转换后再丢给「保存图像」这个节点,此时图像就已经保存到你计算机本地了。
小狐狸
最后介绍一下每个节点右上角这个"小狐狸"图标。
只有 ComfyUI 官方节点才有这个小狐狸图标,你在节点管理器里下载的第三方节点是没有这个图标的。
如果你的界面没有这个图标,可以在这个位置开启:
设置 - Lite Graph - 节点源徽章模式 - 显示全部
以上就是本文的全部内容啦,想了解更多 ComfyUI 使用方法的工友,欢迎关注 👉 ComfyUI 中文教程