上个帖子已经分享了如何在润云进入ComfyUI界面。下面我来具体分享ComfyUI的使用方法
一、文生图
界面上的节点和整个画布都可以拖动,也可以放大缩小。
ComfyUI 为我们提供了一个默认的文生图工作流。直接点击右边的 Queue Prompt 就能够触发生图流程,你可以看到有个绿色的边框会随着流程的进展在不同的节点上显示。
整个工作流由两个基本的部分组成:节点(Nodes)和边(Edges)。
• 每一个矩形块就是一个节点,比如 Load Checkpoint CLIP Text Encoder 等。可以把每个节点看成是函数,它们都具有输入、输出和参数三个属性。
• 连接每个节点的输入和输出的线就是边。
其他还有很多的细节和概念,我将会在接下来的内容中逐步解释。
我们直接从这个默认工作流开始,它包含了下面这些步骤。
1.1 选择模型
首先需要在 Load Checkpoint 这个节点中选择一个模型,这里的模型选项就是在上文中下载的那些模型文件。比如我这里就放置了多个可选的模型,我可以根据自己的需求选择我想要使用的模型。
1.2 构造提示词
选择完模型,下一步就是构造提示语了。
在界面上,有两个 CLIP Text Encode (Prompt) 节点,这两个节点都是用来构造我们的提示语的。
其中,上面一个节点用来输入正向提示语(Positive Prompt),即告诉模型做什么,而下面一个节点则用来输入负面提示语(Negative Prompt),即告诉模型不要做什么。
如果觉得容易混淆,可以像我这样直接双击节点名称改成它对应的功能的名称,就像下面这样。
下面的节点也可以看出哪个是正向哪个是负向
CLIP Text Encode 节点的作用是将提示语转换为标记,然后通过文本编码器将它们处理为嵌入(Embeddings)。
你可以使用 (关键词:权重) 的这样的语法来控制关键词的权重。
比如,使用 (keyword:1.4) 来增强效果,或 (keyword:0.9) 来减弱效果。
1.3 生成图像
点击下方的 Run,等待一会儿就能够看到有一张图像生成完成了。
二、ComfyUI 的工作机制
ComfyUI 的强大之处就在于它的高度可配置性。熟悉每个节点的功能之后可以让我们轻易地根据需求来定制化操作。
在介绍图生图工作流之前,我需要先向你详细介绍一下 ComfyUI 的工作机制。
Stable Diffusion 的生图过程可以总结为以下三个主要步骤:
-
文本编码:用户输入的提示语通过一个称为文本编码器(Text Encoder) 的组件编译成各个单词的特征向量。这一步将文本转换为模型可以理解和处理的格式;
-
潜在空间(Latent space)转换:来自文本编码器的特征向量与一个随机噪声图像一起被转换到潜在空间。在这个空间中,随机图像根据特征向量进行去噪处理,得到一个中间产物。这一步生图过程的是关键所在,因为模型会在这里学习将文本特征与视觉表现相联系。
-
图像解码:最后,潜在空间中的中间产物由图像解码器(Image Decoder) 进行解码,转换为我们可以看到的实际图像。
了解了 Stable Diffusion 层面的生图流程之后,接下来我们深入了解一下 ComfyUI 在实现这个过程中的关键组件和节点。
2.1 Load Checkpoint 节点
Load Checkpoint 节点会加载一个模型,一个 Stable Diffusion 模型主要包含以下三个部分:
- MODEL
MODEL 组件是一个在潜在空间(Latent Space)中运行的噪声预测模型。
这句话的意思是 Stable Diffusion 模型在潜在空间中对图像的生成过程进行建模,并通过预测和去除噪声逐渐还原图像的过程。
具体来说就是,在 Stable Diffusion 中,图像生成首先在潜在空间中引入随机噪声,然后模型通过一系列步骤逐渐去除这些噪声,生成符合提示语的图像。
这种逐步去噪的过程由噪声预测模型来完成。潜在空间是图像的一个简化、高度抽象化的表示,可以降低模型的计算复杂度,可以让模型在生成图像时更高效。
在 ComfyUI 中,Load Checkpoint 节点的 MODEL 输出连接到 KSampler 节点,KSampler 节点执行反向扩散过程。
KSampler 节点利用 MODEL 在潜在表示中进行迭代去噪,逐步优化图像,直到它符合给定的提示语。
-
CLIP (Contrastive Language-Image Pre-training)
CLIP 其实是一个负责预处理用户提供的正向和负面提示语的语言模型。它将文本提示转换为 MODEL 可以理解的格式,指导图像生成过程。
在 ComfyUI 中,Load Checkpoint 节点的 CLIP 输出连接到 CLIP Text Encode 节点。CLIP Text Encode 节点获取用户提供的提示语,并将它们输入到 CLIP 语言模型中,转换为向量嵌入。
这些向量嵌入可以捕捉单词的语义,为 MODEL 生成符合提示语的图像提供更多的指导。
-
VAE (Variational AutoEncoder)
它包含一个编码器和一个解码器,其中,编码器用于将图像压缩为低维的潜在表示,而解码器用于从潜在表示中重建图像。
在文生图的过程中,VAE 仅在最后一步使用,它的作用就是将生成的图像从潜在空间转换回像素空间。
ComfyUI 中的 VAE Decode 节点获取 KSampler 节点的输出,并利用 VAE 的解码器部分将潜在表示转换为最终的像素空间图像。
VAE 与 CLIP 语言模型是独立的组件。CLIP 主要处理文本提示语,而 VAE 负责在像素空间和潜在空间之间进行转换。
2.2 CLIP Text Encode 节点
在上文中有提到,在 CLIP Text Encode 节点中我们可以输入生成图像的提示语,而这个节点的作用就是获取我们提供的提示语,并将其输入到 CLIP 语言模型中。
CLIP 是一个强大的语言模型,能够理解单词的语义并将其与视觉概念相关联。当提示语输入到 CLIP Text Encode 节点后,它会将每个单词转换为向量嵌入。向量嵌入是高维的数字表示,包含了单词的语义信息,模型能够根据这些信息生成符合提示语的图像。
2.3 Empty Latent Image 节点
在 ComfyUI 的文生图的过程中,它首先会在潜在空间中生成一个随机图像,这个图像会作为模型处理的初始状态,它的大小与实际像素空间中的图像尺寸成比例。
在 ComfyUI 中,我们可以调整潜在图像的高度和宽度来控制生成图像的大小。此外,我们还可以设置批处理大小来确定每次运行生成的图像数量(batch_size)。
潜在图像的最佳尺寸取决于所使用的 Stable Diffusion 模型版本。
对于 v1.5 模型,推荐的尺寸是 512x512 或 768x768;对于 SDXL 模型,最佳尺寸是 1024x1024。ComfyUI 提供了多种常见的宽高比可供选择,但是需要注意的是,潜在图像的宽度和高度必须是 8 的倍数,这样才能确保与模型架构的兼容性。
2.4 VAE 节点
在界面中我们能看到 Load Checkpoint 节点的 VAE 属性就直接连接到了 VAE 节点。所以,这里的 VAE 节点其实就是上文中所提到的负责在像素空间和潜在空间之间转换图像的 VAE。
2.5 KSampler 节点
在 ComfyUI 中,生图过程的核心节点就是 KSampler 节点。它负责在潜在空间中对随机图像进行去噪,让生成的图像符合我们提供的提示语。KSampler 使用的是一种称为反向扩散的技术,可以迭代地去除噪声,并根据 CLIP 向量嵌入添加有意义的细节。
KSampler 节点提供了多个参数,让我们可以微调图像的生成过程:
-
Seed
Seed 值控制了初始噪声和最终图像的构图。设置特定的 Seed 值,我们可以获得可重复的结果,可以保持多次生成的一致性。
-
Control_after_generate
这个参数决定了每次生成后 Seed 值的变化方式,可以设置为随机化(每次运行生成新的随机 Seed)、递增、递减或者固定不变。
-
Step
采样步数决定了优化过程的强度。如果设置步数较大,则会产生更少的伪影和更精细的图像,但也会增加生成时间。
-
Sampler_name
这个参数用于选择 KSampler 所使用的特定采样算法。不同的采样算法可能会产生略有不同的结果,且生成速度也会有所不同。
-
Scheduler
这个参数用于控制在去噪过程中的每一步中噪声水平的变化速率,它决定了从潜在表示中去除噪声的速度。
-
Denoise
这个参数用于设置去噪过程应消除的初始噪声量。值为 1 表示去除所有噪声,从而生成干净且细节丰富的图像。
通过调整这些参数,我们可以微调图像的生成过程,从而获得理想的图像。
至此,我花了大量篇幅向你介绍了 ComfyUI 中的所有节点以及其对应的功能,希望到目前为止能够帮助你对 ComfyUI 有一个较为全面的认知和理解。
文章参考:超详细!ComfyUI 全方位入门指南(附ComfyUI整合包),初学者必看,多个实践操作-CSDN博客
下面我会更新如何使用图生图、图片扩展等流程。点点关注,之后会持续更新哦~~~