2026 年的这版官方初学者教程,第一讲就把 ComfyUI 最核心的东西摆到了台面上:完整节点图基础。这个主题不是花哨概念,而是你在 ComfyUI 里做的每一张图、每一条工作流都要踩过去的地基。如果你刚接触 ComfyUI,看到满屏的方框和连线觉得头大,这一讲就是专门用来解决这个问题的。
ComfyUI 是什么?一句话:一个开源的、基于节点图的 Stable Diffusion 前端界面。它由 comfyanonymous 开发并开源在 GitHub。它和传统 WebUI 的最大区别在于:WebUI 把流程藏在按钮后面,ComfyUI 则把所有处理步骤拆成一个一个节点,摆在画布上。文本提示词是节点,模型加载是节点,采样是节点,解码保存也是节点。节点与节点之间通过连线传递数据,整个生成过程完全可视化。
对新手来说,这种界面第一眼确实有门槛。但官方教程专门把“节点图基础”放在第一讲,就说明这条路是可以系统走通的。本文按这条主线展开:先认识节点图的组成,再搭一个最小闭环工作流,然后跑通它。同时补齐本地部署环境准备、启动方式、接口调用和批量任务的内容,让你看完不只懂概念,还能动手复现。
1. ComfyUI 核心能力速览
先给结论,再看细节。ComfyUI 的核心能力集中在“流程可视化”和“流程复用”这两件事上,下面是容易帮助新手建立整体认知的能力清单。
| 能力项 | 说明 |
|---|---|
| 项目类型 | 开源节点式 AI 绘画工作流界面,面向 Stable Diffusion 生态 |
| 开源情况 | GitHub 开源项目,官方教程持续更新,社区工作流资源丰富 |
| 主要功能 | 文生图、图生图、局部重绘、ControlNet、LoRA、视频生成等,均可通过节点组合实现 |
| 硬件要求 | NVIDIA GPU + CUDA 体验最佳;无独显或显存较小时可尝试 CPU 模式,速度会明显下降 |
| 显存占用 | 取决于模型和分辨率;以 SD1.5 和 SDXL 这类常见模型为例,显存 6GB 起步更稳妥,实际占用以本机测试为准 |
| 支持平台 | Windows / Linux / macOS |
| 启动方式 | 便携一键包、命令行启动、Docker 启动均可 |
| 默认访问地址 | http://127.0.0.1:8188,浏览器打开即图形界面 |
| 接口能力 | 默认提供 HTTP API,可提交工作流 JSON、查询队列和历史记录 |
| 批量任务 | 支持节点内批量生成、队列排队以及 API 循环提交 |
| 适合场景 | 本地绘图、工作流实验、批量出图、二次开发集成 |
从这张表可以确定一件事:ComfyUI 不只适合做单张图,它的接口和队列机制天然适合批处理和自动化。对新手来说,第一步不用追求复杂功能,先把完整节点图跑通,后续所有扩展都是在这个基础上加节点。
2. 适用场景与使用边界
ComfyUI 适合谁?首先是愿意花一点时间理解流程的人。节点图把每个步骤都摊开,好处是控制力强,坏处是学习曲线比“填表式”WebUI 陡一些。如果你愿意按官方教程把最小闭环过一遍,后面组合 LoRA、ControlNet、视频生成这些节点时,思路会顺得多。
适合解决的问题有三类:
第一类是工作流复现。把一张图的完整参数保存成 JSON,发给别人就能原样加载,这对技术博客、教程分享、团队协作都很友好。
第二类是批量和自动化。通过 API 提交工作流,可以批量生成、批量重绘,也能接到自己的脚本或业务系统里。
第三类是实验和调试。某个参数到底怎么影响画面,在节点图里可以直接改 widget 重新排队,对比效果非常直观。
使用边界也很明确。如果你追求“开箱即用、一个按钮全自动”,ComfyUI 初始状态并不合适,它需要你先搭好工作流,或者去社区导入别人做好的流程。如果机器没有独立显卡且不能接受较慢速度,本地部署的体验会受限,可以考虑云端 GPU 环境。
合规方面多说一句:下载模型时先看许可协议,商业用途的模型要确认授权范围。涉及人脸、肖像、声音、版权素材时,必须确认有合法授权再动手。生成内容也要遵守平台规则,不用于违法、仿冒或误导场景。
3. ComfyUI 本地部署环境准备
准备环境之前,先确认三件事:操作系统、显卡、磁盘空间。
操作系统方面,Windows 10/11 是最大众的选择,Linux 和 macOS 也可以跑。需要说明的是,macOS 通常走 CPU 或 MPS 方案,速度与 NVIDIA 显卡有明显差距。
显卡方面,NVIDIA 显卡 + CUDA 是社区里最常见的组合。20 系、30 系、40 系老显卡在更新驱动后通常可以正常使用;50 系新一代显卡则需要配套较新的 NVIDIA 驱动和对应版本的 PyTorch/CUDA,具体以官方文档和本机实测为准。如果电脑只有核显或显存很小,可以走 CPU 模式,先跑通流程,但采样速度会比较慢。
磁盘空间建议预留充足。模型文件是体积大头,常见的 SD1.5 checkpoint 约 2 到 4GB,SDXL 约 6 到 7GB,更大规模的模型还需要更多空间。除了放模型,输出图片、临时缓存、Python 虚拟环境也会占用空间,建议至少留出 20GB 以上空余,具体按模型数量决定。
动手前可以按下面这份清单做一次检查:
| 检查项 | 建议值 | 备注 |
|---|---|---|
| 操作系统 | Windows 10/11、Linux、macOS | 以官方支持为准 |
| Python | 3.10 至 3.12 的 64 位版本 | 具体版本按官方 requirements 校验 |
| NVIDIA 驱动 | 保持较新版本 | 驱动过老会导致 CUDA 报错 |
| GPU 显存 | 6GB 起步更稳 | 显存不足可降低分辨率和批量数 |
| 磁盘空间 | 20GB 以上 | 模型文件大小差异大 |
| 端口 | 8188 未被占用 | 被占用时用--port换端口 |
这些不是固定数字,而是降低踩坑概率的经验区间。最终能跑到什么程度,取决于你使用的模型版本、采样步数和生成分辨率。
4. 安装部署与启动方式
ComfyUI 的安装方式主要分两种:官方便携包和手动安装。对新手来说,便携包最省事,依赖已经被打包好,不需要自己配 Python 环境。手动安装则适合有开发需求、想改代码源码追踪的读者。
便携包启动流程一般是:解压到本地目录,里面会看到run_nvidia_gpu.bat和run_cpu.bat这类脚本。NVIDIA 显卡双击运行 GPU 版脚本,没有 NVIDIA 显卡则运行 CPU 版脚本。启动后终端会输出访问地址,默认是http://127.0.0.1:8188,用浏览器打开即可进入画布界面。
如果选择手动安装,可以参考下面这套通用步骤,路径和版本需要按实际环境替换:
# 1. 克隆源码,目录名按实际需要修改 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 2. 创建并激活虚拟环境 python -m venv venv # Windows 激活命令 venv\Scripts\activate # Linux/macOS 激活命令 # source venv/bin/activate # 3. 安装依赖 pip install -r requirements.txt # 4. 启动服务 python main.py启动成功后,浏览器访问http://127.0.0.1:8188。第一次打开画布,官方默认模板工作流会直接展示完整节点图,这正好是本讲内容的实物参照。
如果默认端口被占用,或者想降低显存占用,可以通过启动参数调整:
# 更换端口启动 python main.py --port 8189 # 低显存模式启动 python main.py --lowvram # CPU 模式启动 python main.py --cpu需要提醒的是,这些参数的确切名称和支持范围要以你下载版本的官方文档为准,不同版本的 ComfyUI 在参数细节上可能会有调整。
5. 完整节点图基础:六类节点组成最小闭环
这一节是本讲的核心。所谓“完整节点图”,并不是说节点越多越好,而是指一张图从输入到输出,每个必要环节都有对应的节点,链路完整、数据通畅。
5.1 节点图的基本概念
每个节点就是一个处理单元。节点通常有输入接口、输出接口和参数控件。比如“加载 Checkpoint”节点负责读取大模型文件,“KSampler”节点负责执行去噪采样。节点之间用连线传递数据,数据只能在类型匹配的接口之间流动。
ComfyUI 的节点图采用“数据流驱动”模式:你从最前面的模型加载节点开始,顺着连线往右推进,到最后的保存节点结束。每一步处理的数据类型都不一定相同,但链路必须闭合。
新手最容易犯的错误是“只加节点不连线”,或者“把线连到了不匹配的接口”。理解每个节点输入输出的数据类型,比背节点名称更重要。
5.2 最小闭环工作流
官方默认模板展示的,通常就是文生图的最小闭环,它由六类关键节点组成:
| 节点 | 作用 | 关键输出 |
|---|---|---|
| Load Checkpoint | 加载大模型文件 | MODEL、CLIP、VAE |
| CLIP Text Encode(正向) | 编码正向提示词 | CONDITIONING |
| CLIP Text Encode(负向) | 编码负向提示词 | CONDITIONING |
| Empty Latent Image | 设置潜空间画布尺寸和批量数 | LATENT |
| KSampler | 执行采样去噪,核心参数最多 | LATENT |
| VAE Decode | 把潜空间解码为像素图像 | IMAGE |
| Save Image | 保存图片到输出目录 | 无 |
下面是这套闭环的数据流向,按顺序理解即可:
大模型节点加载 checkpoint 后,输出 MODEL、CLIP、VAE 三条线。MODEL 送到 KSampler,作为采样用的模型权重;CLIP 送到正向和负向提示词节点,把文本变成条件数据;正向条件、负向条件再进入 KSampler。
采样需要一张“画布”,Empty Latent Image 就是干这个的,它输出一张指定宽高的空潜空间图,也输入到 KSampler。KSampler 拿到模型、正负条件、初始潜空间之后,根据步数和参数执行去噪,输出处理过的 LATENT。最后 VAE Decode 把潜空间还原成图像,Save Image 写入磁盘。
整个过程只有一条主线,这就是“完整节点图基础”的真正含义:先把这条主线跑通,之后再谈 ControlNet、LoRA、局部重绘这些分支节点。
5.3 连线类型与匹配规则
ComfyUI 用不同颜色的连线来区分数据类型。模型权重、文本条件、潜空间、图像是四类主流数据流,颜色上各有区分。比如模型权重类和条件类通常是紫色系,文本编码类为绿色系,潜空间类也是绿色系,图像类偏向红粉色系。
实际使用中不需要死记颜色,只需要遵守一个原则:连不上的接口,类型一定不匹配;颜色明显对不上,就说明插错了口。鼠标放在接口上时,ComfyUI 通常会提示当前接口的数据类型,照着提示连线即可。
如果看到连线是红色或断开的,通常意味着类型不匹配,或者源节点没有成功输出数据。
5.4 画布操作与快捷键
新手在画布上先掌握四个操作:
第一,在空白处双击或右键搜索节点名称,快速添加节点。第二,从输出接口拖拽到输入接口,创建连线。第三,选中节点后右键,可以 Mute(静音)、Bypass(旁路)或删除节点。第四,调整 KSampler 等节点的参数控件,直接改步数、CFG、Seed 等值。
还有一个很实用的操作:把模型文件直接拖到画布上,ComfyUI 会自动创建对应的 Load Checkpoint 节点。这个操作在需要快速切换模型时非常方便。
界面底部的 Queue Prompt 按钮负责提交当前工作流。点击之后,任务进入执行队列,节点画布上会高亮显示当前正在运行的节点。
6. 功能测试与效果验证
环境装好、节点图理解到位之后,接下来就是实际跑一次。第一次测试建议先用默认模板,或者手动搭一个最小闭环,不要一上来就堆几十个节点。
测试步骤可以按下面这套流程走:
第一步,准备模型。把 checkpoint 文件放到ComfyUI/models/checkpoints/目录下。放好后回到界面,在 Load Checkpoint 节点的模型列表里重新选择,或者刷新节点。正常情况下,模型名应该出现在下拉列表中。
第二步,填写提示词。正向提示词填画面内容,例如:
a cute cat sitting on a wooden table, natural lighting, high detail负向提示词填不想出现的内容,新手阶段可以先填通用负面词,例如:
blurry, low quality, watermark, text第三步,设置采样参数。KSampler 中比较关键的几个参数是:Seed(随机种子)、Steps(采样步数)、CFG(提示词引导强度)、Sampler Name(采样器名称)、Scheduler(调度器)、Denoise(去噪强度)。第一次测试建议用小步数快速验证流程,比如 20 步,分辨率先用 512x512 或 768x768 这类常规尺寸。
第四步,点击 Queue Prompt 提交任务。执行后可以观察几个现象:画布上节点逐个高亮,任务进度在队列中显示;ComfyUI/output/目录下出现新生成的 PNG 文件;界面预览区展示生成结果。
判断成功的标准是:队列执行完毕,没有报错,输出目录里出现了非空图片文件。如果图片生成成功但画面发灰、发黑,优先检查 VAE 是否正常;如果采样时报 CUDA 错误,检查驱动和 PyTorch 环境;如果执行到一半提示显存不足,就把分辨率调低,或者减少 batch 数量,再重试一次。
这套验证流程同样适用图生图、局部重绘等后续教程,区别只是输入侧多了一些图像节点,输出链路不变。
7. 接口 API 与批量任务
ComfyUI 默认启动时就会开启 HTTP API 服务,端口和 Web 界面一致。这意味着同一个服务既能打开网页操作,也能用脚本提交任务,这一点对批量出图和二次开发特别有用。
常用接口主要有三个:GET /system_stats查看服务状态和系统信息,POST /prompt提交工作流 JSON,GET /history/{prompt_id}查询某个任务的执行结果。
先看一个最简单的服务状态检查:
curl http://127.0.0.1:8188/system_stats提交任务时,需要把画布上的工作流导出为 API 格式 JSON。在 ComfyUI 界面菜单里使用 Save(API Format)功能可以导出这个文件。拿到 JSON 之后,用 Python 调用接口的参考写法如下:
import json import requests # 1. 读取从 ComfyUI 导出的 API 格式工作流 with open("workflow_api.json", "r", encoding="utf-8") as f: workflow = json.load(f) # 2. 提交到本地服务 url = "http://127.0.0.1:8188/prompt" resp = requests.post(url, json={"prompt": workflow}, timeout=30) print(resp.status_code) print(resp.json()) # 3. 用返回的 prompt_id 查询执行结果 prompt_id = resp.json().get("prompt_id") history_url = f"http://127.0.0.1:8188/history/{prompt_id}" history = requests.get(history_url, timeout=30) print(history.json())接口调用能跑通之后,批量任务就有两种实现思路。
第一种是节点内批量。在 Empty Latent Image 节点里把 batch_size 调大,一次队列任务生成多张图。适合固定提示词、固定参数,只需要量产数量变化的场景。
第二种是 API 循环批量。在 Python 脚本里循环修改提示词或 Seed,反复调用/prompt提交工作流。这种方式适合每张图参数都要变化的批量任务,比如多组提示词测试、多分辨率输出。
做批量任务时,建议在脚本里记录每个 prompt_id 的提交时间、执行状态和输出文件路径。任务失败时,可以先查/history拿错误信息,确认是显存不足还是模型加载失败,再决定降分辨率还是加延时重试。本地批量不要一次性把所有任务压进队列,防止显存瞬间打满导致整批失败。
8. 资源占用与性能观察
在本地跑 ComfyUI,重点观察两类资源:显存占用和采样耗时。
显存占用可以在浏览器里打开系统任务管理器,或者使用 NVIDIA 显卡自带的监控工具查看。更直接的办法是观察 ComfyUI 执行过程中是否报 CUDA out of memory。如果报错,说明当前模型、分辨率和 batch 的组合超出了显卡能力。
影响资源占用的主要因素是分辨率、步数、batch 数和模型大小。分辨率越大,潜空间张量越大,显存占用越高;batch 数把单张图的占用直接翻倍;大模型本身也占更多显存。CPU 推理和 GPU 推理的差异非常明显,GPU 模式下一步采样可能只要几秒到几十秒,CPU 模式下同一个任务可能要按分钟计算。
降低显存占用的常用手段有三个:把分辨率调小,例如从 1024x1024 降到 768x768;把 batch_size 调回 1;使用低显存启动参数启动服务。需要注意,低显存模式牺牲的是速度,换来的是显存占用下降,具体是否启用要按实际跑任务的表现来决定。
另外,服务长时间开着、反复切换模型,内存可能缓慢上涨。如果跑大型批量任务后觉得系统变慢,重启一次服务是最快的清理方式。端口冲突也是常见问题,换端口启动前先确认旧进程已经退出。
9. 常见问题与排查方法
新手阶段遇到的大部分问题,都集中在模型文件、显卡环境、端口和节点连线这几类。这里整理成一张排查表,可以直接对照处理。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 浏览器打不开服务地址 | 服务未启动或端口被占用 | 查看终端日志,检查端口占用 | 重启服务,或用--port更换端口 |
| 模型列表为空 | checkpoint 文件未放对目录 | 检查models/checkpoints/路径 | 把模型放入目录,刷新界面 |
| 采样报 CUDA out of memory | 分辨率或 batch 过大 | 缩小参数重试 | 降低分辨率,batch 调回 1,必要时用低显存模式 |
| 报错找不到 CUDA | 驱动或 PyTorch 版本不匹配 | 检查nvidia-smi和 torch 版本 | 更新驱动,按官方要求重装 PyTorch |
| 依赖安装失败 | Python 版本不对或网络问题 | 查看 pip 报错信息 | 更换 Python 版本,使用国内镜像源 |
| 节点连线报错 | 接口数据类型不匹配 | 观察连线颜色和类型提示 | 断开重连,确认输入端类型一致 |
| 生成的图片全黑或发灰 | VAE 解码异常 | 换模型内 VAE 或单独加载 VAE 节点 | 在模型节点后手动接 VAE Decoder 测试 |
| 批量任务中途卡住 | 显存打满或任务异常 | 查询/history拿错误信息 | 减小批量并发,任务脚本加强制重试 |
表格之外再补一个建议:日志信息是最直接的排查入口。启动服务的终端窗口会打印执行日志、错误堆栈和接口请求记录,报错时先看最后几十行,大多数问题都能找到明确线索。
10. 最佳实践与使用建议
跑通最小闭环之后,尽量养成下面几个工程化习惯,后续做复杂工作流会顺畅很多。
第一次调整参数时,先小参数测试。比如步数先用 20,分辨率先用常规尺寸,确认链路通畅再逐步加大,不要一上来就拉满,避免排错时难以定位问题。
保留一套最小可运行配置。把自己的基础文生图工作流保存成 JSON 文件,分门别类存放。模型出问题时,用最小配置快速验证环境是否正常,能省下大量排查时间。
目录管理要清晰。模型文件、LoRA、输入素材、输出图片、工作流备份分目录存放,尤其是批量任务,输出目录要按任务和时间分文件夹,避免文件堆积后难以管理。
批量任务一定要加日志和失败重试。提交每个任务时记录 prompt_id,完成后记录输出路径,失败时通过/history查询原因。批量循环里加适量延时,给显存释放留出时间。
接口服务默认监听本地地址,如果只是本机使用,不要轻易改成对外监听。需要暴露给其他机器访问时,要评估访问控制和数据安全,不要把本地服务直接裸奔到公网。
涉及人脸、声音、版权素材时,务必确认授权。AI 绘图和编辑能力越强,越要遵守这条底线。生成结果在发布或商用前要做效果复核,避免因模型幻觉或内容误判产生风险。
更新 ComfyUI 时先备份重要工作流和配置,升级前看官方更新说明,确认兼容性。Python 环境中依赖版本和模型版本也可能是兼容性问题的来源,固定版本比盲目升级更稳。
11. 总结与下一步
这一讲的落点非常清晰:在 ComfyUI 里,任何复杂能力都是从一个完整节点图出发的。先看懂 Load Checkpoint、CLIP Text Encode、Empty Latent Image、KSampler、VAE Decode、Save Image 这条主线,再谈加节点、换模型、做自动化。
值得首先验证的是:默认模板工作流能不能跑通。这一步验证的不只是环境,还有你对“节点图”这个概念的体感。最容易踩的坑是模型文件缺失、端口冲突和显卡驱动不对,这三类问题对照第 9 节排查表基本都能解决。
完成最小闭环之后,扩展方向就很明确了。下一步可以深入研究 KSampler 的采样器和步数差异,理解 Seed 和 CFG 对画面的影响;再往后是给工作流加 LoRA 模型、ControlNet 控制节点,以及用 API 把批量出图接到自己的脚本工具里。每个方向都是在这次打好的节点图地基上继续搭,把“完整节点图基础”吃透,后续所有官方教程章节都会顺很多。