如果你已经用过一键包形式的Stable Diffusion,第一次打开ComfyUI的时候十有八九会懵:没有熟悉的生成按钮,没有整齐的参数面板,只有一张布满节点和连线的“电路图”。很多人试了三次就关掉了,然后默默回到WebUI。但我想认真说一句,ComfyUI这套基于工作流的设计,才是AI绘画真正值得花时间掌握的方案。本文不打算讲什么高深理论,就从一个普通使用者的角度,把Stable Diffusion + ComfyUI从安装、搭建第一个工作流、加载各类模型到处理常见报错,完整讲一遍。目标很明确:让你看完之后能自己动手跑通一张图,并且在后面遇到问题时知道去哪里排查。
这篇教程适合三类人:一是刚入坑AI绘画、想要一个更自由可控工具的新手;二是已经在用WebUI、被复杂工作流和大批量需求卡住的老用户;三是想系统理解模型加载、提示词编码、采样器原理,而不是只会点按钮的好奇型玩家。看完你不需要记住所有细节,只需要跟着操作一遍,ComfyUI的逻辑自然就懂了。
1. 先别急着装,把ComfyUI和WebUI的差别看明白
很多人装ComfyUI的第一动力是“听说它更快、效果更好”,实际上这两点都不算完全正确。它和WebUI的本质区别,不在于速度,也不在于画质,而是组织生成逻辑的方式完全不同。
WebUI把所有功能都封装成了一套固定界面:你填提示词,调步数,按生成,完事。它的优点是简单,代价是你只能在它预设的流程里活动,想调整某个中间环节,比如换一种图像放大策略、在特定位置插入一个重绘过程,只能靠安装各种插件往界面里塞按钮。
ComfyUI的思路则是把生成过程拆成一个一个节点,每个节点做一件具体的事情:加载模型、编码文本、采样、解码图像、保存文件。节点之间用连线连接,数据从左边流向右边,就像搭积木一样。你完全控制这个流程,想在哪里插入一个环节都可以。
1.1 节点化最大的优势不是“酷”,是可复现性
节点化带来的直接好处是工作流可以保存成一份文件,发给别人之后,对方只要把文件拖进ComfyUI窗口,就能还原一模一样的流程。这比WebUI里“分享参数截图”靠谱得多。经常逛AI绘画社区的人应该有体会:很多人分享作品时会附带一堆参数截图,你照着调半天,出来的图还是不一样,因为后台的模型细节、采样器版本、节点设置都有差异。ComfyUI一张工作流文件全带上了。
另一个优势是批量处理的自由度。节点化之后,你可以把一张工作流里的某个输入参数变成批量项:一次生成十个不同的提示词、把一批图片送进放大节点再批量保存。WebUI虽然也有脚本功能,但这种底层级的控制明显更顺滑。
1.2 哪些人应该选择ComfyUI,我为什么用它处理复杂需求
我个人的建议是:如果你只是想随手画张头像发朋友圈,WebUI完全够用;但如果你想认真做内容、批量出图、尝试复杂控制和偏向生产的流程,那选ComfyUI是更合适的方向。用久了你会形成一种肌肉记忆:任何功能都不需要找,而是自己“搭”出来。
| 对比项 | WebUI | ComfyUI |
|---|---|---|
| 上手难度 | 低,界面直观 | 中偏高,需要理解节点逻辑 |
| 流程可控性 | 固定流程,靠插件扩展 | 完全可控,自由连线 |
| 分享复现成本 | 截图+参数,容易有出入 | 工作流文件一键复现 |
| 批量任务 | 支持但灵活性一般 | 天然适合批次操作 |
| 资源占用 | 常有额外开销 | 可以精细化控制显存 |
| 适合人群 | 新手、轻量使用者 | 进阶用户、内容生产者 |
这不代表ComfyUI是神药。它的学习曲线确实陡一点,刚开始很容易被节点种类劝退。但好在你不需要一开始就懂所有节点,掌握最核心的七八个就能跑通主流程,剩下的是遇到需求再学。
2. 环境搭建实测:整合包、官方源码、手动安装三条路
安装ComfyUI在2026年其实不算难事,难的是选对安装路径。当前主流有几种方式:秋叶整合包、官方源码安装、纯手动安装。我三种都试过,下面把实际体验和结论一起说清楚。
2.1 秋叶整合包:适合大多数人的一把梭方案
如果你之前用过秋叶的Stable Diffusion整合包,那ComfyUI整合包的体验基本是延续的:下载一个大压缩包,解压,双击启动器,搞定。
整合包的好处是省去了所有环境配置的麻烦。它内部直接捆绑了Python环境、PyTorch、CUDA依赖以及常用的模型目录结构,你不需要自己装Git、配置虚拟环境、纠结Torch版本。对大多数普通用户来说,这是最不容易出错的上手方式。
启动逻辑也很简单:打开“启动器”之后,它会扫描本机显卡驱动和运行环境,你选择GPU型号,点“一键启动”就行。页面弹出的浏览器窗口就是你熟悉的ComfyUI界面。
不过整合包有两件事需要留意:
第一,版本可能滞后。整合包往往基于某个时间点打包,之后ComfyUI主体更新、核心节点变化,它不会自动跟随。用一段时间如果看到社区工作流加载时报错,先检查是不是版本太旧导致的。
第二,目录别乱动。整合包的结构和官方源码目录略有差异,比如模型文件夹可能在ComfyUI/models内部,也可能被独立放在旁边。手动往里面加文件之前,先看清路径,免得模型放不对位置。
2.2 官方源码安装:命令行控的稳定之选
如果你想长期跟踪更新、自己管理插件和模型,官方源码安装会更省心。提前装好Python 3.10以上版本和Git,然后按下面流程来。
在命令行里执行:
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python -m venv venvWindows环境下激活虚拟环境:
venv\Scripts\activateLinux或macOS用:
source venv/bin/activate然后安装依赖:
pip install -r requirements.txt如果你的网络环境访问PyPI慢,可以加国内镜像源参数:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple最后启动:
python main.py默认会在浏览器打开http://127.0.0.1:8188,这就是ComfyUI的界面。
这整条流程看起来有点麻烦,但换来的是自主控制权。之后每次更新代码只需在目录里执行git pull,然后装新的依赖,版本永远是最新的。社区新出的节点、新模型,基本都能第一时间用上。
2.3 模型目录结构,不解开这个后面没法跑
不管用哪种方式安装,ComfyUI的模型目录结构都是同一套逻辑。默认位置在ComfyUI/models下,你以后所有模型文件都要往对应的子目录里放。
models/ ├── checkpoints/ # 大模型,融合了VAE和不含VAE的类型 ├── loras/ # Lora模型,附加风格或人物特征 ├── vae/ # VAE模型,修复色彩、清晰度 ├── controlnet/ # ControlNet模型 ├── embeddings/ # 文本嵌入模型 ├── upscale_models/ # 放大模型 ├── clip/ # CLIP模型,一般用不到单独放置 └── diffusers/ # Diffusers格式模型很多新手的第一个“装好了跑不起来”的问题,就是因为把模型放错了目录。你的大模型文件必须扔进checkpoints,你下载的LoRA必须扔进loras。ComfyUI不会自动帮你找别的位置。
3. 从零搭建第一个文生图工作流
环境搞定之后,进入ComfyUI界面,第一眼看到的是默认工作流模板:已经摆好了一整条文生图链路。这个模板其实就能直接跑,你只需要做两件事:在Load Checkpoint节点里选择自己的模型,然后在文本框填入提示词,点右下角“队列”按钮。
3.1 工作流界面上的常用节点逐个过一遍
我给你拆一下默认流程里这七个节点分别是干什么的。理解它们,就等于理解了ComfyUI的80%逻辑。
第一个是Load Checkpoint,这是入口节点,加载你放到checkpoints目录下的大模型。它左侧没有输入,右侧会输出三个连线头:MODEL、CLIP、VAE。
第二个和第三个都是CLIP Text Encode,一个负责正向提示词,一个负责负向提示词。它们接收CLIP输入,输出CONDITIONING(条件),这个条件在后面的采样阶段告诉模型“应该生成什么”和“不应该生成什么”。
第四个是Empty Latent Image,相当于初始化画布,设置生成图像的宽度、高度和批次数量。
第五个是KSampler,这是核心采样节点。它接收模型、条件、潜空间图像,把随机噪声一步步去噪成图像。右侧输出的LATENT就是处理后的潜空间数据。
第六个是VAE Decode,把潜空间数据解码成真正的像素图像。之所以要这一步,是因为AI绘画的模型在“潜空间”里工作,这个空间的数据人眼无法直接查看,必须通过VAE解码还原为RGB图片。
第七个是Save Image,把图像保存到ComfyUI/output目录。
你可以先跑通这七个节点的默认链路,再慢慢加东西。我个人建议新手别一上来就导入那些几百个节点的复杂工作流,否则报错的时候你根本不知道断点在哪里。
3.2 参数怎么调:步数、CFG、采样器的体感经验
KSampler节点里的参数是最常调的,这里补充一点自己的实测感受。
步数(steps)决定去噪迭代次数,默认20在多数情况下已经够用。画质不会因为步数无限增加而无限提升,到40步以上收益基本趋近于零。现在主流模型用20到30步就非常稳定。
CFG(cfg)是提示词约束强度,默认7.0是个很稳的值。CFG低于4会让画面偏离提示词,高于12容易出现色彩过饱和、画面发闷的问题。如果你发现图太“糊”且发灰,先检查一下是不是CFG开太高了。
采样器(sampler_name)和调度器(scheduler)的配合影响去噪曲线。新手阶段不纠结,选Euler a搭配normal,或者DPM++ 2M搭配karras都行。前者的图略偏锐利,后者的柔和度和结构稳定性更好。想严谨对比时,可以把这两个参数节点化,用“网格搜索”的思路批量生成,一张工作流就能跑出不同参数组合的对比图,这也是ComfyUI的强项。
4. 把常用模型用起来:checkpoint、LoRA、VAE、ControlNet
刚跑通基础工作流后,你最想做的事大概是:把喜欢的模型加进去。ComfyUI里加载模型的核心逻辑就是“加载对应的节点,然后连线到合适的位置”。一旦理解了这一点,后续加任何模型都是同一套动作。
4.1 大模型和VAE的搭配方式
如果你下载的是常见的checkpoint大模型,它会同时包含模型结构、CLIP和VAE三部分,所以Load Checkpoint节点能输出三个连接头,直接够用了。
但有一部分模型是分离格式,只有模型主体,没有VAE。这时候就需要单独加载VAE文件。具体做法是添加一个Load VAE节点,选择vae目录下的文件,再把它的VAE输出连接到VAE Decode节点的vae输入上。
为什么这个步骤这么重要?VAE影响的是图像的色彩和细节还原质量。如果VAE缺失或版本不匹配,最典型的表现是生成出来的图片灰蒙蒙的,甚至有噪点感。很多人在WebUI里从没单独处理过VAE,因为WebUI会自动套用默认VAE。到了ComfyUI,默认工作流里其实已经帮你接好了Load Checkpoint的VAE输出,只有当你下载了不含VAE的模型时,这个手动接VAE的需求才会出现。
4.2 LoRA怎么接:模型微调的最轻量玩法
LoRA是目前最常用的风格、人物、画风扩展方式。它的特点是文件小、加载灵活,一个主模型可以同时叠加多个LoRA来组合风格。
在ComfyUI里添加LoRA,需要插入一个LoraLoader节点。这个节点有三个输入:model、clip、lora_name。你只要把Load Checkpoint输出的MODEL连到LoraLoader的model,把CLIP连到clip,然后选择LoRA文件,再把LoraLoader输出的新MODEL和CLIP继续往后续节点传递即可。
关键是strength_model和strength_clip两个参数。前者控制LoRA对图像结构的影响程度,后者控制提示词层面的影响。实际使用中,这两个值过高会导致画面畸变、过拟合。常规范围是0.5到0.9,具体数值取决于LoRA质量和模型风格。
多个LoRA叠加使用时,只需要把上一个LoraLoader的输出再接一个LoraLoader。连线顺序会影响最终效果,建议把影响最大的那个放在最靠近主模型的位置。
4.3 ControlNet:让生成结果更可控的“空间条件”
ControlNet解决的是“只靠提示词控制不了构图”的问题。想让生成的图有固定的动作、线条或边缘结构,就需要接入ControlNet。
基本流程是:加载一个ControlNetLoader节点,选择对应的ControlNet模型文件;再接入一个ControlNetApply节点,把MODEL和CONDITIONING以及ControlNet条件图输入它,输出的MODEL继续传递给采样器。
ControlNet的使用里最容易翻车的一点是预处理图与模型类型不匹配。比如你用的是canny类型的ControlNet,就要先在外部工具里把图片处理成边缘线条图再丢进来;用的是depth类型,就输入深度图。所以完整的ControlNet工作流经常包含一个预处理器节点AIO_Preprocessor,它把普通图片转换成对应的条件图。想一步到位,就把预处理器和ControlNet模型都接上,预处理器会自动完成条件图的生成。
5. 插件生态:节点缺失报错、ComfyUI Manager与高人气扩展
ComfyUI现在的生态丰富程度已经不比WebUI差。但很多人第一次加载别人分享的工作流时,会遇到一个特别打击信心的问题:Loading node types时报错,提示缺少某些自定义节点。
5.1 用ComfyUI Manager管理节点,轻松解决缺失报错
遇到缺失节点,最值得装的插件就是ComfyUI-Manager。它的作用相当于一个可视化包管理工具,可以浏览节点库、一键安装缺失项、检查更新。
安装方法不复杂:把仓库克隆到ComfyUI/custom_nodes目录下,或者直接到ComfyUI-Manager的GitHub页面按说明操作。国内网络下载GitHub项目如果慢,记得把下载路径换成可用的镜像加速前缀。装完重启ComfyUI,界面上会多出一个“Manager”入口。
如果你加载别人的工作流时出现红色错误提示,先不要慌,点开Manager的“Install Missing Custom Nodes”,它会根据工作流文件自动扫描缺失的节点库,并列出可安装的清单。一键批量装完,重启之后工作流大概率就能正常显示。
5.2 节点太小装不下、参数面板很难改,试试“CLIP询问机”
搜索“ComfyUI clip 询问机”能看到一个出现频率挺高的求教帖。这个词听起来玄乎,其实它指的是ComfyUI里Primitive节点配合前端参数面板的一种交互方式。
很多人第一次看到那些几百行连接线的复杂工作流时,会觉得在节点里改提示词很痛苦。这时候可以把提示词、步数、CFG这些常用参数用Primitive节点引出来。Primitive节点的作用是给任意输入一个前端控件入口,你可以把它当作一个“旋钮面板”,在节点外部就能改参数,不用展开一串节点。
把CLIP文本编码、模型选择、采样参数一并“询问”到前端,就能形成一个自己顺手使用的控制面板。搜索热度这么高,本质上反映的是新手群体对“直观操作”的强烈需求。
5.3 除了管理器,这几个插件方向最值得装
按照个人实际体验,下面几类插件/扩展的实用性最高:
- 中文翻译类插件:把整个界面和节点名翻译成中文,大幅降低学习成本。
- 提示词辅助类插件:内置大量艺术家、画风标签的自动补全功能,告别记不住提示词。
- 图像放大类插件:如
UltimateSDUpscale,用图生图的方式做切片放大,效果远好于直接拉大尺寸。追加Hires Fix工作流也能大幅改善细节。 - 视频输入输出类插件:接入视频生成、关键帧插值,满足动图需求。
装插件也要注意节制。每装一个,启动时需要加载的库就多一些。有些节点库长期不更新,跟新版本ComfyUI不兼容,反而影响稳定性。装完之后最好记一下自己装了哪些,出问题时能快速定位。
6. 性能优化、显存不够与经典故障排查
ComfyUI的底层优化让它比WebUI更省显存,但这不代表它不吃硬件。真跑起来之后,你依然会遇到一些躲不开的问题。我把最常见的几类故障排查思路整理出来,按这个顺序检查,基本能解决九成问题。
6.1 缺失模型报错的标准排查链路
搜索“comfyui不能下载缺失模型”的朋友,大概率看到过这类报错:红色提示ERROR: Cannot find model file或者Downloading…之后毫无反应。这里需要先明确一点:ComfyUI默认不会自动下载模型。它能做的只是在缺失时给你个提示,真正的下载和放置都得靠你手动完成。
排查链路是这样的:
- 先看
models/checkpoints里有没有.safetensors或.ckpt文件。没有的话,从模型网站手动下载后放进目录。 - 如果文件在但还报错,检查扩展名。有些下载工具会把文件改成
.bak或.txt;改名回.safetensors即可。 - 再检查文件名里是不是有中文、空格或特殊符号。虽然新版ComfyUI对中文路径容忍度提高了,但为了省心,建议全部使用英文字母和数字命名。
- 最后,确认你放模型的位置跟在
Load Checkpoint节点里下拉菜单看到的路径一致。很多整合包会额外挂载一个外部模型目录,你放进models/checkpoints而前端读取的却是别的目录,自然就会提示缺失。
6.2 SageAttention等性能优化方案的实测心得
关于性能优化,最常被提及的是SageAttention。这是一种针对注意力机制的优化实现,核心思路是把计算量大的部分通过稠密和稀疏混合策略来加速。
安装方式是:
pip install sageattention并在启动时加上参数:
python main.py --use-sage-attention实测下来,在NVIDIA显卡且显存带宽较高的情况下,SageAttention能带来明显的生成速度提升,采样阶段尤其明显。但有两个前提必须确认:一是你的系统驱动CUDA版本要足够新,否则编译安装会失败;二是SageAttention和某些旧插件之间可能存在兼容问题,如果装完出现奇怪的崩溃,先把启动参数去掉,看是否恢复。
如果你不想用SageAttention,另一个经典选择是xformers,它的兼容性更稳,但加速幅度略低。显存不够时,可以在启动命令里加:
python main.py --lowvram这会把模型权重分批次加载到显存,牺牲一点速度换取能跑。如果你的显卡只有6G甚至4G显存,这个参数很关键。
6.3 图片发灰、报错一闪而过、界面卡死怎么追根
图片发灰的问题是VAE引起的,解决办法前面已经讲过。这里补充一个常见误导:很多人以为加载模型时越大的VAE越好。实际不然,VAE只是解码器,选和模型匹配的即可,过大或版本不对都可能导致颜色异常。
报错一闪而过时,最有效的办法是不要只盯浏览器页面里的错误,而是去看启动ComfyUI的那个命令行窗口。所有Python层级的报错信息都会打印在那里,包括堆栈、缺失的库、冲突的版本。拿到具体报错文本再搜索,解决速度快很多。
界面卡死或队列不执行时,先检查是否在“队列中”有排队的任务,还有当前选中的节点有没有变成红色。红色节点往往是某个模型没加载成功,点击它看右侧属性栏里的报错信息,比重启软件有效得多。
最后再说几句个人体会
玩ComfyUI这段时间下来,最大的感受是它把我从“靠灵感和抽卡”的状态里拉了出来。一张复杂的工作流建好之后,我可以反复复用,换模型、改参数、跑批量,效率明显提升。刚开始那几天确实难受,每天都在查“这个节点什么意思”“为什么我连不上”,但跨过那个坎之后,再看到别人分享的复杂工作流,你不再是被动点“加载再运行”,而是能看懂每一条连线背后的生产逻辑。希望这篇教程能让你少走几步弯路,把精力留给真正有意思的画面创作本身。