news 2026/9/7 14:07:03

零基础入门ComfyUI:从节点到工作流,掌握AI出图全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
零基础入门ComfyUI:从节点到工作流,掌握AI出图全流程

很多零基础同学第一次打开 ComfyUI 时,面对满屏的节点和连线,第一反应往往是“我是不是打开了一个编程工具”。这个第一印象并不算错——ComfyUI 本质上就是一个面向 AI 图像生成的可视化编程工具,只不过它不写代码,而是通过拖拽节点、连接线路、调整参数来搭建一套完整的出图流水线。

如果你之前用过 Stable Diffusion WebUI,刚转到 ComfyUI 时可能会有点不适应。文章会围绕 ComfyUI 的使用场景、整合包与手动部署的取舍、节点概念拆解、第一套文生图工作流搭建、图生图与局部重绘进阶思路、常见报错排查,以及工程化的使用习惯展开。零基础的同学可以按顺序读,已经有 WebUI 基础的同学可以直接跳到核心概念和实战部分。

1. ComfyUI 是什么?先理解“工作流”

1.1 从一次出图流程说起

在讲 ComfyUI 之前,不妨先回想一下:用 Stable Diffusion 生成一张图,背后到底发生了什么?

通常要经过这几步:加载一个主模型(Checkpoint),把提示词转化为模型能理解的语义,生成一张初始的噪声图像,然后由采样器逐步降噪还原出清晰图片,最后把潜空间数据解码成正常的图片文件。

WebUI 把这套流程封装成了一个固定界面,你只需要填提示词、选模型、点生成。而 ComfyUI 把整个链条拆开了,每个环节都是一个独立节点,你可以像拼积木一样自由组合整个流程,也可以把中间结果暴露出来做更精细的控制。

1.2 ComfyUI 和 WebUI 的定位差异

很多新手会纠结:我该学 WebUI 还是 ComfyUI?

从实际体验来看,WebUI 的上手门槛更低,所有操作都在表单和按钮之间完成,适合快速体验。但如果你想做复杂的工作流、批量处理、把生成的图片接入自己的自动化流程,或者复现别人的高阶玩法,ComfyUI 的灵活度会高很多。

核心差异可以从几个维度看:

对比维度WebUIComfyUI
操作方式表单化页面节点连线式画布
学习门槛较低有一定曲线
流程可控性依赖页面功能完全可控
适合场景快速出图、简单调整复杂流程、批量生成、二次开发
工作流分享较难复用可保存为 JSON 文件直接分享

有一点值得注意:ComfyUI 并不比 WebUI“更高级”,它们只是面向不同需求。文章后面也会多次强调,ComfyUI 的每个节点都对应一个明确功能,理解了节点,就等于理解了整个模型的生成链路。

1.3 工作流到底是什么

ComfyUI 里的“工作流”不是一个抽象概念,而是一个实实在在的文件。你每拖一个节点、连一根线、改一个参数,ComfyUI 都会把整张画布上的关系和配置记录到一个 JSON 文件里。

这个 JSON 文件就是你的工作流。你可以把它保存下来,随时重新打开;也可以分享给别人,让其他人一键复现同样的流程。这也是 ComfyUI 社区里大量“工作流分享”“工作流模板”在传播的原因。

当你看到一张很精美的 AI 图片时,如果能同时找到作者的工作流文件,基本上就等于拿到了完整的“配方”。后续你只需要补齐对应的模型和插件,就能复现出接近的效果。

2. 环境准备:整合包和手动部署怎么选

2.1 硬件要求

ComfyUI 本身对硬件的要求并不算夸张,但 AI 绘图最终还是依赖显卡算力。

从常见配置来看,NVIDIA 显卡体验最好,因为 CUDA 生态最成熟;AMD 显卡也能用,但配置过程会更折腾;纯 CPU 运行虽然能启动,但出图速度会很慢,只适合测试流程,不适合日常使用。显存方面,4GB 显存可以勉强跑一些小模型和低分辨率出图,8GB 以上会更从容,12GB 以上基本上主流模型都能覆盖。

对于零基础用户,建议不要一开始就追求最高配置。先用现有的电脑跑通一个小流程,理解节点和参数的含义,再考虑升级硬件。

2.2 社区整合包:新手快速上手的选择

很多新手第一次接触 ComfyUI,都是通过整合包。所谓整合包,就是社区开发者把 Python、PyTorch、ComfyUI 本体、常用插件和启动脚本提前打包好的压缩包。解压后双击启动脚本,就能进入 Web 界面,省去了手动安装依赖的流程。

网上流传较广的“秋叶整合包”就属于这类产物。它确实降低了入门的门槛,尤其对不熟悉 Python 环境的用户非常友好。不过要提醒一点:整合包不是官方产品,里面集成的组件版本可能滞后,而且来源渠道复杂。下载时尽量选择可信来源,不要随意点击来路不明的网盘链接,避免下载到捆绑或篡改过的版本。

如果你的目标是快速体验 ComfyUI,或者电脑上有多个 Python 环境担心冲突,整合包是很合适的方案。等熟悉了目录结构,再逐步增加自定义节点和模型即可。

2.3 手动部署:更彻底的掌控方式

手动部署的优点是路径清晰、版本可控、方便后续升级。缺点是需要自己处理 Python 环境、CUDA 驱动和依赖安装。

大致流程如下,这里给出的是一个通用思路:

# 1. 创建独立的 Python 虚拟环境 conda create -n comfyui python=3.11 -y conda activate comfyui # 2. 安装 PyTorch 相关依赖 # 具体命令请以 PyTorch 官网为准,这里不指定 CUDA 版本 pip install torch torchvision torchaudio # 3. 克隆 ComfyUI 项目 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 4. 安装项目依赖 pip install -r requirements.txt # 5. 启动服务 python main.py

启动后,浏览器访问http://127.0.0.1:8188就能看到 ComfyUI 的操作界面。

如果你使用整合包,上面的步骤已经被打包脚本替代了,只要找到启动脚本双击即可。Windows 下常见的启动文件名是run_nvidia_gpu.bat,点击后会在命令行窗口中输出日志,并自动打开浏览器。

2.4 了解模型目录结构

不管使用整合包还是手动部署,你都需要知道模型该放哪里。ComfyUI 默认会在主目录下创建一个models文件夹,里面按用途划分了多个子目录:

models/ ├── checkpoints/ # 主模型,通常是 .safetensors 文件 ├── loras/ # LoRA 模型 ├── vae/ # 独立 VAE 文件 ├── controlnet/ # ControlNet 模型 ├── clip/ # CLIP 文本编码相关文件 └── upscale_models/ # 放大模型

很多新手报错“加载模型失败”,原因往往就是把文件放错了目录。在 ComfyUI 中,选择模型的节点会去对应目录寻找文件,所以文件位置必须与节点预期一致。

3. ComfyUI 核心概念拆解:节点、连线、数据类型

3.1 节点:最小功能单元

ComfyUI 中每一个方块都是一个节点。节点负责一件事,比如加载模型、编码文本、执行采样、保存图片。

你可以把节点想象成工厂车间里的一台机器。这台机器有一个或者多个输入口,也有一个或者多个输出口。原料从输入口进入,经过加工,从输出口流出,然后通过连线进入下一台机器。

一个最简单的文生图流程,至少由这些节点组成:

  • 加载主模型节点:读取 Checkpoint 文件,输出模型、CLIP、VAE 三个关键模块。
  • 文本编码节点:把正面提示词和负面提示词转换成模型能理解的语义向量。
  • 空白图像节点:生成一张指定尺寸的初始噪声图。
  • 采样器节点:按照提示词和参数进行逐步降噪。
  • 解码节点:把潜空间图像解码成普通图片。
  • 保存图片节点:将最终结果保存到输出目录。

这些节点单独拿出来都不复杂,但连在一起就是一套完整的 Stable Diffusion 生成链路。

3.2 连线与数据类型

ComfyUI 的节点之间有不同颜色的接口,不同颜色代表不同类型的数据。

比如 MODEL 类型的接口通常对应模型数据,CLIP 对应文本编码器,VAE 对应变分自编码器,LATENT 对应潜空间图像,IMAGE 对应普通图像。你在画布上连线时,只有相同类型或者能互相转换的数据才能连接,这在一定程度上避免了很多参数错误。

对于新手来说,理解颜色的意义比记住每个类型更重要。当你看到一条线连不上,先检查是不是把不同类型的输出接到了不匹配的输入上。

3.3 保存与加载工作流

ComfyUI 界面右上角通常有保存工作流的功能,点击后会把当前画布保存为 JSON 文件。加载时,直接拖入 JSON 文件或通过菜单导入就能恢复。

建议你在完成一套有效流程后,马上保存一份初始工作流。后续调试时,即使把节点改乱了,也可以随时回到可用版本。

4. 第一套文生图工作流搭建

4.1 从空白画布开始

打开 ComfyUI 后,默认界面上可能已经加载了一套示例流程。你可以先把它清空,从零开始搭建,这样对每个节点的作用会更清晰。

ComfyUI 的界面结构比较直观:左侧是节点列表或工具栏,中间是可以自由拖动画布的大区域,底部是执行队列区域。右键空白区域可以在弹出的菜单中查找和添加节点。

为了便于理解,下面用箭头表示节点间的连接关系:

Load Checkpoint → KSampler → VAE Decode → Save Image CLIP Text Encode → KSampler Empty Latent Image → KSampler

这个图看起来很抽象,把它展开成完整的节点配置,就是一套标准文生图流程。

4.2 添加并连接核心节点

第一步,添加“Load Checkpoint”节点。这个节点会读取你放在models/checkpoints目录下的模型文件。点击节点上的模型名称下拉框,选择一个已经下载好的主模型。

第二步,添加“CLIP Text Encode (Prompt)”节点。每个节点上有一个文本输入框,正面提示词节点填写你希望生成的内容,负面提示词节点填写你不希望出现的内容。

第三步,添加“Empty Latent Image”节点。这里设置生成图片的宽高和批量数。对于零基础用户,建议先用 512×512 或 768×512 这类常见尺寸测试,不要一开始就拉满 1024×1024,否则显存会吃紧。

第四步,添加“KSampler”节点。这是整个流程的核心。把所有关键输入都连到这里:模型、正面条件、负面条件、潜空间图像。KSampler 的输出就是降噪完成后的潜空间图像。

第五步,添加“VAE Decode”节点。由于采样器输出的是潜空间数据,不能直接保存成图片,需要通过 VAE 解码成普通图片。

第六步,添加“Save Image”节点。把解码后的图片保存到本地。ComfyUI 默认会把图片保存到output目录。

4.3 核心参数说明

KSampler 里的参数决定了一张图的风格和质量,下面逐个说明作用。

seed 是随机种子。同样的种子加上相同的参数,理论上会生成同一张图。如果你喜欢某次生成结果,可以把 seed 固定下来,方便复现。steps 是采样步数。步数太少会导致画面不完整,太多则会拖慢速度。常见范围在 20 到 30 步之间,具体取决于模型和采样器。cfg 是提示词相关性参数,一般在 4 到 10 之间。值太小时图像容易偏离文本描述,值太大时可能会造成色彩过饱和或构图扭曲。

sampler_name 是采样器名称,常见的有 euler、euler_ancestral、dpmpp_2m、dpmpp_sde 等。不同的采样器对细节和速度的影响不同。scheduler 是调度器,常见的有 normal、karras、exponential 等,它控制噪声降噪的节奏。denoise 是重绘幅度,在文生图时通常保持 1,在图生图时用来控制与原始图片的接近程度。

对于新手,建议先固定一套设置跑通流程,再逐步尝试不同的组合。需要注意的是,不同模型适配的参数差异很大,实际效果以你的出图结果为准。

4.4 运行与验证

节点全部连接好后,点击界面上的“执行”按钮或者“Queue Prompt”按钮,ComfyUI 就会按照节点顺序开始运行。

如果节点连接正确,会看到图片从采样器一路传递到保存节点,最终出现在右侧预览区域。如果某个节点报错,节点会变成红色,并且控制台会输出错误信息。

第一张图生成之后,你才算真正迈入了 ComfyUI 的门槛。接下来要做的就是保存工作流文件,给它起一个容易识别的名字,比如文生图基础版_512x512.json

5. 进阶实战:图生图、LoRA、ControlNet 与局部重绘

5.1 图生图工作流

文生图的基础流程跑通后,图生图理解起来就非常简单。图生图就是在一张已有图片的基础上继续生成,它关心的是如何把初始图片转换成潜空间数据,然后带入采样器。

实现思路是:用“Load Image”节点加载本地图片,再通过 VAE Encoder 把它编码成潜空间图像,然后接入 KSampler。此时 denoise 参数会变得非常关键。

如果 denoise 设为 1,相当于完全忽略原图;设为 0.5 时,会保留一半的原始特征;设为 0.1 时,基本只是在原图上做轻微调整。实际项目中,最常用的重绘幅度在 0.4 到 0.7 之间。

5.2 LoRA 与 ControlNet

LoRA 是一种轻量化的模型微调方法,用于在不改变主模型的前提下,为图片注入特定的风格、角色或画风。

使用 LoRA 时,需要把 LoRA 文件放到models/loras目录,然后在流程中加入“Load LoRA”节点。LoRA 节点接收来自主模型的 MODEL 和 CLIP,再输出给后续节点。LoRA 的权重参数通常设置在 0.6 到 1.2 之间,过高的权重可能导致画面过拟合。

ControlNet 则用于控制生成图片的结构。例如,通过姿势骨架控制人物姿态,通过线稿控制构图。使用时需要把 ControlNet 模型放到models/controlnet目录,然后通过专用节点把控制条件合并到文本条件中。ControlNet 能极大提升构图可控性,但也会明显增加显存占用,建议在基础流程稳定后再上手。

5.3 局部重绘

局部重绘的本质是图生图的一种变体,只不过它输入的不只是原图,还包含一张蒙版。蒙版中白色区域表示需要重新绘制的部分,黑色区域表示保持原样。

ComfyUI 中可以用“Load Image”节点加载图片,并在图片预览区域右键打开遮罩编辑器,用画笔圈出需要重绘的区域,然后通过蒙版相关节点将原图和蒙版一起送入采样器处理。

局部重绘适合修补图片瑕疵、替换背景中的一个物体、修改人物表情等场景。相比整图重绘,它对非目标区域的影响更小,因此在图像微调中非常实用。

6. 常见报错与排查思路

6.1 报错汇总表

在 ComfyUI 的使用过程中,报错几乎无法避免。下面是实际使用中比较高频的几类问题:

问题现象常见原因解决思路
节点变红,控制台输出错误信息某个节点执行失败查看错误日志,定位到具体节点和缺失模块
提示需安装缺失的包自定义节点缺少 Python 依赖在环境中安装对应依赖包
加载模型失败模型文件位置不对或文件损坏检查文件路径和模型文件完整性
显存不足图片尺寸过大或批量数过高降低分辨率,减少 batch size
出图速度很慢没有正确启用 GPU检查 CUDA 和 PyTorch 版本是否匹配

6.2 节点执行错误

当你使用别人分享的工作流时,最常见的错误是“节点在执行过程中发生错误”。这种提示通常意味着某个节点缺少必要的输入、插件版本不兼容,或者当前环境缺少对应库。

排查时,先看控制台最下方的错误堆栈。ComfyUI 会把报错节点的名称和错误类型打印出来。新手可能会被大段英文日志吓到,但其实只需关注几个关键词:

  • ModuleNotFoundError:缺少 Python 依赖包。
  • ValueError:参数不符合要求,可能有连接错误。
  • RuntimeError 且提到 CUDA:显存或显卡驱动问题。
  • FileNotFoundError:模型文件不存在。

6.3 缺少自定义节点与依赖包

从社区下载工作流时,如果里面引用了你没有安装的自定义节点,ComfyUI 通常会提示“请安装缺失的包以使用此工作流”,并要求你在 Python 环境中运行安装命令。

解决思路有两种。第一种是使用 ComfyUI Manager 插件,它可以在界面中搜索并安装缺失的自定义节点。第二种是手动进入custom_nodes对应的节点目录,查找requirements.txt文件,然后在命令行中执行:

cd ComfyUI/custom_nodes/某个节点目录 pip install -r requirements.txt

另一种常见情况是,节点文件存在,但运行时报错ModuleNotFoundError。这说明节点依赖的 Python 库没有安装。此时可以先看报错中缺少哪个包,再手动安装:

pip install 缺少的包名

安装完成后,重启 ComfyUI 再重新执行工作流即可。需要提醒的是,不要一次性安装太多来源不明的依赖包,尽量在独立虚拟环境中操作,避免污染系统 Python 环境。

6.4 显存不足与崩溃

显存不足通常表现为中途出图失败、界面卡死,或者控制台报 CUDA out of memory。解决办法是降低图片尺寸、降低 batch size、关闭后台占显存的应用,也可以尝试在采样器中选择更省显存的参数组合。如果你同时加载了多个 ControlNet,也会大幅增加显存占用,可以先临时禁用不用的节点。

6.5 排查清单

遇到问题时,按下面的顺序排查会更高效:

  • 确认使用的是不是你预期的 Python 环境。
  • 确认模型文件放在了正确的目录。
  • 确认工作流中所有自定义节点都已安装。
  • 确认插件版本与 ComfyUI 主版本兼容。
  • 查看控制台日志中的第一个报错关键词,而不是整段日志。
  • 如果是别人的工作流,先尝试用默认参数完整运行一次。
  • 保存一份能正常运行的备份工作流,便于定位差异。

7. 最佳实践与工程建议

7.1 工作流管理习惯

ComfyUI 的学习过程会和写代码有些相似,写好一套流程不难,难的是让它可维护、可复用、可排查。

建议从一开始就养成保存版本的习惯。每跑通一个有意义的功能,就把工作流另存为一个文件,并在文件名或节点备注中写清楚用途。比如文生图_SD15_512x512_v1.json文生图_SD15_512x512_v2_karras.json这种命名方式,比未命名11要实用得多。

另外,ComfyUI 支持给节点重命名。对于复杂工作流,把节点名称从默认的“KSampler”“CLIP Text Encode”改成更具体的“主模型输出”“角色LoRA”等,能极大提高阅读效率。

7.2 模型与文件组织

模型文件通常会占据大量磁盘空间,建议按用途规划目录,不要把所有文件堆在同一个文件夹里。下载模型时,优先选择社区验证过的来源,并检查文件大小和文件类型是否正常。.safetensors文件比.ckpt文件更安全,因为前者不包含可执行代码。

对于 LoRA、ControlNet 这类附加模型,要记录它们的触发词或适用版本。很多出图效果不理想,并不是参数问题,而是模型版本和主模型不匹配,或者漏写了触发词。

7.3 参数调试建议

调试参数时,建议每次只改一个变量。很多新手喜欢同时调整 seed、cfg、采样器、步数和 LoRA 权重,结果出图异常时根本不知道问题出在哪。

正确做法是:固定其他参数,只修改一个变量,观察它对结果的影响。比如这一轮固定采样器为 dpmpp_2m,只测试不同 cfg 值;下一轮固定 cfg,只测试不同采样器。这样积累下来的经验,比盲目试错有效得多。

seed 虽然是随机种子,但在调试构图时很有用。当你找到一张构图喜欢的图,但想调整细节时,可以固定 seed 和大部分参数,只调整提示词或 LoRA 权重,这样可以较大概率保持原有构图。

7.4 安全与分享

在工作流分享和下载过程中,安全问题不能忽视。除了模型文件,自定义节点也属于代码。如果你没有足够经验,建议优先安装知名作者的节点,而不是随意下载来源不明的仓库。对于刚接触的新手,先从 ComfyUI 官方内置节点和社区头部插件开始,风险会小很多。

7.5 向 API 和自动化延伸

当你已经能熟练搭建工作流后,会发现 ComfyUI 还有一个很适合工程化的能力:API 模式。ComfyUI 启动后默认就是一个本地服务,你可以通过 HTTP 请求把工作流提交给它执行,这意味着可以把 ComfyUI 集成到自己的脚本、网站或自动化工具中。

这也是 ComfyUI 和 WebUI 的一个明显区别。工作流不只是给人在界面里点击用的,它也能成为后端流程的一部分。当你理解了节点和参数之间的关系,再去看官方提供的 API 示例,会发现前面所有操作都没有白学。

8. 总结与下一步

ComfyUI 的学习曲线确实比 WebUI 陡一些,但它的核心逻辑并不复杂。只要抓住“模型从哪来、数据流经过哪些节点、最后输出在哪里”这条主线,就不会被满屏的连线吓住。

完成后建议你把第一套文生图流程保存下来,然后亲手尝试改一个参数,观察画面变化。等这个流程完全跑通,再去尝试图生图、LoRA、ControlNet 和局部重绘,逐步搭建起自己的出图方案。如果这篇文章对你有帮助,可以收藏备用,后续折腾工作流时随时翻出来对照。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 14:02:42

线上视频怎么存到本地?猫抓浏览器资源嗅探扩展完整指南

线上视频怎么存到本地?猫抓浏览器资源嗅探扩展完整指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为"能播放、存不下&qu…

作者头像 李华
网站建设 2026/9/7 14:01:19

Quartz 实战详解:JobExecutionContext 参数从入门到精通

JobExecutionContext 参数详解JobExecutionContext 是 Quartz 调度框架中封装任务执行上下文的核心对象,它在每次任务触发时由调度器自动创建并传递给 Job 的 execute() 方法。通过该参数,开发者可以获取任务运行所需的全部上下文信息,包括任…

作者头像 李华
网站建设 2026/9/7 14:00:57

.NET分库分表实战:从分片键设计到ShardingCore落地全指南

很多 .NET 开发者在业务体量涨到一定阶段后,都会遇到同一个问题:数据库成了整个系统的短板。不是 SQL 写得不好,不是索引没建对,而是在数据量达到千万级、亿级之后,单库单表已经承载不住读写压力。这时候,分…

作者头像 李华
网站建设 2026/9/7 14:00:34

SpringBoot整合MQTT:物联网设备接入与报文解析实战

去年我接手一个环境监测平台的后端改造,硬件端是几十台温湿度、空气质量采集网关,每台网关下面挂着若干传感器节点。旧方案是设备通过HTTP POST每30秒上报一次JSON,后端用SpringBoot接口接收再写入MySQL。设备规模到两百台左右时问题集中爆发…

作者头像 李华
网站建设 2026/9/7 14:00:23

让AI Coding Agent真正懂你:规则文件与记忆库构建实战

同一个Agent,为什么在别人手里像并肩作战多年的搭子,到你手里就成了一个记性差得要命的新实习生?这是我在好几个团队里反复观察到的问题。很多人以为AI Coding Agent的能力差距来自于模型本身,其实大部分时候,瓶颈出在…

作者头像 李华