WebUI采用传统的网页交互模式,通过固定格式的参数输入框和调节滑块进行操作,这种设计对新手十分友好,能够满足大多数基础创作需求。而ComfyUI则采用节点式工作流界面,每个功能模块都以独立节点呈现,通过可视化连线建立数据处理流程。这种架构虽然初期学习曲线较陡,但更符合人类处理复杂任务的思维模式——就像大脑会将不同功能分配给特定区域处理一样。ComfyUI其核心价值在于通过节点化工作流实现精准的图像生成控制。当用户熟悉基本操作后,会发现这种模块化设计在处理高级需求时展现出更强的灵活性和控制精度。
两种界面各具优势:WebUI胜在入门简单,ComfyUI则长于专业级创作。调试生成效果、快速排查系统问题的核心能力。
接下来尽量用白话说明整个的流程。
ComfyUI基础流程搭建
如果是win系统,现在网上有很多大佬已经打包好了comfyUI的压缩包,只要下载下来解压就能直接进入这个界面;如果是mac,可能会遇到挺多莫名其妙的bug,比较麻烦一些。这里不多说如何进入界面了,直接从流程搭建开始。
ComfyUI界面
一般进入界面后,默认就会有这样的一套工作流,我们可以清除后尝试自己把这套东西搭建出来。就像电脑装机一样,只要自己装了一遍,基本上也就明白基础的原理了。
1. 选择模型
新建加载模型的节点
因为是模型生图,那么最开始肯定是要选择用什么模型了,所以首先右键选择新建一个节点,用来加载一个模型,也就是Load Checkpoints,也可以点击选择不同的模型。我下载的压缩包里只有两个模型,如果需要更多的模型,可以自己另外下载,这里先不多说。
2. 设置生图条件
新建输入正向、负向Prompt的节点
有了模型后,接下来就是输入我们的提示词prompt了,要告诉AI我们需要它们生成什么样的图片,也就是我们的“条件”,所以右键选择conditioning,让用户输入prompt,节点叫CLIP Text Encode。
我们知道一般有正向和负向提示词,webUI里也是会有两个输入框,所以这里也要复制两个出来。但是这里的节点只相当于是输入框,自身并不会区分是正向还是负向。
但是为了方便我们自己辨认和修改,可以把负责输入正向的prompt节点背景设置为绿色,负向prompt节点设置为红色。
3. 采样器
连接采样器节点
有了模型和prompt,接下来就是各种细节参数的设置,都可以在K Sampler这个节点中设置,比如seed种子数、采样方法等。
上一步里我们有两个一模一样的Prompt输入框,这时候分别把它们连接到节点前面的正向和负向,即可区分正负向提示器。
我们可以把采样器这个节点当做真正生成图片的步骤,也因此工作流的加载时间大多都停留在这个节点上。
ComfyUI中随机种子数设置
关于Seed种子数,我们可以把它当做每次生成图片的一个编号,比如模型和其他参数相同时,选用相同的种子数,生成的图像也就一样。如果我们设置为每次生成的种子数是随机的,也就相当于设置成每次生成的图像是不重复的。
webUI里通过把种子数设置为“-1”当做把种子数设置为随机,但是在comfyUI里如果把种子数设置为-1,就相当于该图片编号是-1。在comfyUI里要设置随机种子数有专门的控制选项。
控制生成图片大小的节点
提一嘴默认工作流里的这个节点,就是用来控制生成图像大小的。
4. VAE
添加VAE节点
到目前为止,我们工作流里生成的内容还都是latent格式的数据,可以当做还是一行行代码,还不能直接输出。
什么是latent格式数据呢?它并不是那种精确描述哪个坐标是哪个颜色像素点的精确代码,而是一种比较抽象描述图像特征的代码。也就是说,同样的latent代码,也是有可能生成细节上不同的图像的,但是图像大体上的特征是相同的。
所以通过选择模型、输入prompt、采样过程后,我们得到了我们期望的图像特征代码,也就是latent代码,最后一步就是用VAE节点把latent代码转化成我们看得见的图片了。
VAE节点可以理解成图片和latent格式数据的转化器,当然是可以双向转化的。VAE Decode(解码)就是把latent数据变成图片,还有一个VAE Encode(加码)就是把图片转化成latent特征代码,这个节点可以用于图生图。
加载图片,并用VAE节点转成Latent数据
因为能处理的是latent数据,所以如果是要在图片基础上生图的话,我们要把图片转变成latent数据。那么在我们默认的工作流基础上,在开头添加上相应的节点即可。
这里要注意的是把图片转成latent数据,要用VAE Encode,把latent数据转成图片,要用VAE Decode。
这时候已经能初步的看出comfyUI符合我们人脑直觉的方面了。相比webUI黑盒一样的图片处理过程,comfyUI的过程更加透明直观。
只要你知道了所谓生图就是处理一系列的latent数据,再去想进一步完成“以图生图”的流程,自然就会想到把要喂的图作为输入数据,通过VAE节点转化成latent数据,再连接在处理器的输入接口前。而且每个节点也会有****相应的颜色作为暗示,都简化了我们的记忆负担。
以上就是基础的如何搭建一个comfyUI的工作流,有了这样的逻辑基础,comfyUI就像给了我们一套乐高积木一样,知道什么样的积木间可以拼接,我们就可以不断个性化的组装。
SD模型原理
那么接下来再大概讲一下Stable Diffusion生图的原理,Diffusion不是公司的名字,而是扩散模型Diffusion Model的名字。
对图像逐步添加高斯噪声,图源网络
模型训练的过程首先是在一张现有的图片上,一步步添加**“高斯噪声”**,每步添加一点,最后再让机器一步步去除噪声,还原图片,这个过程中机器就可以学习到图片的特征,以后就可以生成相似的图片了。让模型以这样的步骤处理大量的图片,就是训练模型的过程了。
这其中的“高斯噪声”,就是符合正态分布的随机噪声。比如图像像素的原rgb为(100,100,100),噪声就会让它变成(108,92,102)之类的颜色。而正态分布就是大多数的像素点变化后还是和原色相差不大,只有少数会变得极大。
总之对图像先加噪声,再让机器逐步还原的过程,就是让机器学习图像特征的过程。
训练模型的过程
在模型训练完成后,用户通过输入prompt,影响生成的噪声(具体过程不多说),从而影响机器复原图像的过程,也就实现了“文本控制机器生图”的过程。
注意,前面说的先对图像逐步添加高斯噪声,再逐步复原的过程,是**“训练模型”**的过程。当模型训练完毕后,就只用后半段复原的过程即可。
所以,真正的复原过程是:
完成训练的模型,生图的流程示意
用户输入prompt,模型用CLIP节点把文字转换成一种语义向量,这个向量是作为模型逐步复原图像的引导。
模型先生成一个全部随机的高斯噪声图像,由于复原的过程是需要重复很多遍的,每次逐步减少噪声数量,所以语义向量在每一步都会引导噪声的复原,从而让模型逐步从0开始,生成一个符合prompt语义的latent代码,再经过VAE解码,变成我们看得见的图片。
我整理了一份完整版的comfyui整合包已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
为了帮助大家更好地掌握 ComfyUI,我在去年花了几个月的时间,撰写并录制了一套ComfyUI的基础教程,共六篇。这套教程详细介绍了选择ComfyUI的理由、其优缺点、下载安装方法、模型与插件的安装、工作流节点和底层逻辑详解、遮罩修改重绘/Inpenting模块以及SDXL工作流手把手搭建。
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取
一、ComfyUI配置指南
- 报错指南
- 环境配置
- 脚本更新
- 后记
- …
二、ComfyUI基础入门
- 软件安装篇
- 插件安装篇
- …
三、 ComfyUI工作流节点/底层逻辑详解
- ComfyUI 基础概念理解
- Stable diffusion 工作原理
- 工作流底层逻辑
- 必备插件补全
- …
四、ComfyUI节点技巧进阶/多模型串联
- 节点进阶详解
- 提词技巧精通
- 多模型节点串联
- …
五、ComfyUI遮罩修改重绘/Inpenting模块详解
- 图像分辨率
- 姿势
- …
六、ComfyUI超实用SDXL工作流手把手搭建
- Refined模型
- SDXL风格化提示词
- SDXL工作流搭建
- …
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取