ComfyUI从零到上手:节点式AI绘画工作流搭建指南

ComfyUI从零到上手:节点式AI绘画工作流搭建指南 学 ComfyUI 最大的门槛往往不是概念难而是“第一步太长”。下载整合包、启动服务、连节点、调参数、排查报错每一步都可能卡住新手。B 站上这类教程很多但不少视频是特定版本的录屏界面一变就对应不上。这篇文章我会从 ComfyUI 是什么讲起带你完成整合包安装、界面操作、第一个文生图工作流搭建、LoRA 与 ControlNet 扩展、常见报错排查这一整套流程。内容更贴近 2026 年当前常见的 ComfyUI 版本具体菜单和参数以你本机实际版本为准。无论你之前是否用过 Stable Diffusion WebUI都可以按下面顺序跟着操作遇到问题也能在对应小节找到排查思路。1. 背景与核心概念1.1 ComfyUI 是什么ComfyUI 是一个基于节点Node的可视化工作流工具。和 Stable Diffusion WebUI 那种“填表单 参数页面”的方式不同ComfyUI 把 AI 出图过程拆成一个个独立节点再通过连线把数据流串起来。通俗地说它更像搭积木文本编码是一个节点采样是另一个节点图片保存又是独立节点。数据从左侧的模型加载开始一路向右流动最终输出图片或视频。这里的“工作流”指的是节点之间的连接关系、每个节点中保存的参数以及整体执行顺序。一套工作流可以保存成文件也可以嵌入到 PNG 图片里。别人把图片发给你你把图片拖进 ComfyUI就能还原整个节点结构。这一点在分享、复现实验、团队协作中非常实用也是 ComfyUI 在社区里越来越流行的重要原因。1.2 ComfyUI 解决了什么问题WebUI 适合快速出图但 ComfyUI 更适合“精确控制”。比如你需要在同一套底模上不同阶段插入 LoRA或者采样后接 ControlNet再或者对中间 latent 做特殊处理ComfyUI 的节点式表达会比填参页面直观得多。更重要的是内存与显存管理ComfyUI 默认在需要时才加载模型支持模型缓存和部分卸载。配合低显存启动参数可以在有限硬件上运行更大的模型。许多进阶用户会把一套复杂流程固定成工作流模板一次搭建、反复使用。例如先用 ControlNet 锁定人物姿态再通过提示词控制画面元素最后批量生成风格一致的图片。这种流程在 WebUI 中可能需要多个扩展配合而在 ComfyUI 里就是一段清晰的数据流。这也是很多团队选择 ComfyUI 作为 AI 绘图服务后端的原因因为它可以用 API 形式被外部程序调用方便做自动化生成。1.3 核心概念先搞懂第一次打开 ComfyUI 时你会看到一堆英文节点名称。先不用害怕核心概念其实并不多。我整理了下面这些高频名词概念作用说明Checkpoint底模用于生成图片的主模型通常包含模型权重决定了整体画风和内容倾向CLIP负责把文本提示词转换成模型能理解的向量条件VAE负责把潜空间latent数据解码成像素图片Latent压缩后的图像表示采样器在 latent 空间里生成图片不能直接预览KSampler采样器通过多步去噪生成 latent 图像CFG提示词引导强度控制生成结果与提示词的一致程度Steps采样步数步数越高通常细节越多但也会更慢Seed随机种子固定后同一套参数下生成结果可复现举个例子CheckpointLoaderSimple节点是工作流中常见的起点它会从models/checkpoints目录加载一个.safetensors模型文件并输出 MODEL、CLIP、VAE 三条数据流。MODEL 去采样器CLIP 去文本编码VAE 去最终解码各司其职。2. 环境准备与版本说明2.1 硬件建议显卡是影响 ComfyUI 体验的关键。NVIDIA 显卡目前兼容性最好显存建议 8GB 以上。如果只有 4GB 或 6GB也能跑一些基础 SD1.5 工作流但需要开启低显存模式并且避免同时加载多个 ControlNet 模型。AMD 显卡和 Apple Silicon 也能运行但安装环境更复杂部分插件不一定有完善适配本文以 Windows NVIDIA 为主要演示环境。内存建议 16GB 以上。生成过程中模型加载、批量处理多张图片都会占用不少内存内存不足容易出现“卡死”或训练中途退出。硬盘优先选固态硬盘一个完整整合包少则几个 GB多则几十 GB大模型文件加载时固态硬盘能明显减少等待时间。2.2 软件环境与 Python 版本如果你使用整合包不需要手动安装 Python因为整合包已经把 Python 便携环境、PyTorch 和常见依赖一起打好了。但如果你打算用 Git 方式手动部署通常需要准备 Python 3.10 或 3.11再安装与本地 CUDA 版本匹配的 PyTorch。具体版本需要根据 ComfyUI 和 PyTorch 官方要求确定不要盲目安装最新版 Python部分依赖库可能尚未完成兼容。手动部署时CUDA 和 PyTorch 的版本匹配最容易出问题。常见做法是先查看设备支持的最高 CUDA 版本再选择对应 PyTorch 安装命令。对于纯新手最稳的方案就是先使用整合版环境等熟悉之后再考虑手动部署和二次开发。2.3 版本说明ComfyUI 更新非常快几乎每周都有功能调整或修复。网上常说的“秋叶整合包”或“一键整合包”本质是社区维护者把 ComfyUI 本体、Python 环境、常用插件和模型统一打包方便新手快速跑通。类似“2026 v10”这样的叫法通常只是发布页的版本代号实际以你下载到的页面标注为准。由于版本差异本文截图中的菜单位置可能会和你的界面不完全一致遇到差异时优先找功能相同的英文节点名而不是死记中文翻译。我会尽量把关键节点的英文名写清楚方便你在新版本界面中按名称搜索。3. 整合包安装新手最快跑通的方式3.1 为什么推荐整合包手动部署 ComfyUI 需要处理 Git、Python 环境、PyTorch 安装、插件克隆、模型文件存放等一堆问题。对第一次接触的人来说任何一步出错都会影响体验。整合包把这些事情提前处理完你只需要解压、双击启动、等待界面出现可以把精力集中在理解工作流本身。不过“方便”也意味着“来源不确定”。下载整合包时尽量选择可信渠道比如作者主页明确标注的发布页或者社区里长期维护的资源帖。下载后确认文件体积一般整合包至少几个 GB如果文件小得离谱要警惕模型缺失或夹带额外脚本。解压前建议先查毒尤其不要直接运行来路不明的.exe启动器。3.2 下载、解压与目录结构一个典型整合包解压后的目录大致如下ComfyUI_Install/ ├── ComfyUI/ │ ├── models/ # 所有模型文件 │ │ ├── checkpoints/ # 底模 │ │ ├── loras/ # LoRA 模型 │ │ ├── controlnet/ # ControlNet 模型 │ │ └── vae/ # VAE 模型 │ ├── custom_nodes/ # 自定义节点插件 │ ├── input/ # 输入图片目录 │ ├── output/ # 生成图片输出目录 │ └── main.py # 入口程序 ├── python/ # 便携版 Python 环境 └── 启动ComfyUI.bat # 启动脚本模型文件位置很容易弄混新手最多的问题就是把底模放错目录。底模放在models/checkpointsLoRA 放models/lorasControlNet 模型放models/controlnetVAE 放models/vae。放错之后节点下拉框里看不到对应文件。解压路径建议不要带中文和空格部分依赖在纯 ASCII 路径下更稳定。也不要放在系统盘需要管理员权限过高的目录否则插件更新或模型写入时可能报权限错误。3.3 启动 ComfyUI一般整合包根目录会有“启动ComfyUI.bat”或run_nvidia_gpu.bat。双击后命令行窗口会开始加载依赖和模型目录当看到类似Starting server ... To see the GUI go to: http://127.0.0.1:8188的日志就说明服务启动成功。在浏览器里打开http://127.0.0.1:8188即可看到 ComfyUI 界面。如果整合包没有提供脚本或者你想手动启动可以在 ComfyUI 根目录执行python main.py --port 8188显存较小的机器可以加低显存参数python main.py --lowvram注意启动后不要关闭命令行窗口否则后端服务会退出浏览器页面也会同时失效。如果页面打开是空白优先查看命令行里有没有报错输出。4. ComfyUI 界面与基础操作4.1 界面布局打开http://127.0.0.1:8188后默认界面并不复杂大多数情况下是一片空白画布。鼠标滚轮可以缩放画布按住鼠标中键或空白区域拖拽可以移动视野。画布是主要工作区节点就像积木一样放在上面。新版 ComfyUI 通常会在左侧显示 Sidebar包含工作流列表、节点列表、图片浏览等入口。顶部菜单有 Workflow、Queue 等选项。Shift Tab 或右键可以呼出节点搜索面板这是添加节点最常用的方式。底部是日志区域显示执行进度、警告和错误信息。4.2 节点操作添加节点在画布空白处双击或点击右键输入节点英文名进行搜索。每个节点都有输入端和输出端从输出端口拖到下一个节点的输入端口就能建立连线。不同数据类型通常用不同颜色区分比如 CLIP、MODEL、VAE、IMAGE、LATENT 各有颜色。只要端口能连通说明数据类型基本匹配。常用的快捷操作包括右键节点删除连线或节点按住键盘 Ctrl 或鼠标框选可以多选选中多个节点后可以整体拖动按 Delete 删除选中节点。连线连错时把线选中删除重新连接即可不需要重做整个工作流。节点右上角的小圆形如果是粉色说明有改动未保存或参数未刷新。4.3 保存与分享工作流ComfyUI 工作流有两种常用格式一种是 workflow 格式适合在编辑器里打开和继续修改另一种是 API 格式主要给程序调用结构上包含更多节点内部参数。新版还支持把工作流导出为 PNG 图片图片像素里会嵌入工作流数据这种格式分享起来最直观。拿到别人的工作流图片时只需要将 PNG 图片直接拖进 ComfyUI 画布系统会自动还原节点结构。不过要提醒一句从网上下载工作流时注意查看它依赖了哪些自定义节点。如果某个工作流要求大量安装来源不明的插件建议先查看插件代码或者在隔离环境测试避免执行恶意脚本。5. 第一个文生图工作流从零搭建5.1 工作流结构与数据流基础文生图工作流需要六个核心节点它们分别是加载模型、正面提示词、负面提示词、采样、解码、保存。我把数据流向画成下面这个简图Load Checkpoint -- CLIP Text Encode(positive) -- | -- KSampler -- VAEDecode -- Save Image -- CLIP Text Encode(negative) --简单解释一下CheckpointLoaderSimple输出 MODEL、CLIP、VAE 三路数据。MODEL 进 KSampler 参与生成过程CLIP 连接两个文本编码节点VAE 则在最后解码时使用。KSampler 输出的 latent 经过 VAE 解码变成像素图片最终交给 SaveImage 保存。5.2 加载模型与提示词在空白画布双击添加一个CheckpointLoaderSimple节点在下拉框里选择底模文件。模型文件需要事先放到ComfyUI/models/checkpoints/目录。选好之后你会看到节点输出 MODEL、CLIP、VAE 三个端口这就是整条工作流的“燃料”。接着添加两个CLIPTextEncode节点一个作为正面提示词节点一个作为负面提示词节点。正面提示词描述你想要的画面内容负面提示词写不希望出现的元素常见的负面词模板例如bad quality, worst quality, low quality, deformed, blurry。文本编码节点会把提示词转换成 CLIP 能使用的向量条件输入给采样器。5.3 采样参数讲解采样是工作流中最核心的节点英文名通常是KSampler。很多新手搞不清楚这些参数我逐个解释seed随机种子。固定种子后相同模型和提示词生成的图片可以复现。测试阶段建议固定一个种子找到满意效果后再放开让每次生成都有变化。steps采样步数。SD1.5 模型常见 20~30 步。步数太高不一定会更好反而会增加等待时间。cfg提示词引导强度一般设置在 5~8。cfg 过低画面可能不听提示词过高会让色彩过于浓烈、画面锐化过度。sampler_name / scheduler采样器和调度器名称。不同组合会影响细节风格和生成速度新手开始用默认组合即可之后再做对比实验。denoise去噪强度。直接文生图时通常是 1图生图或局部重绘时小于 1表示保留多少原图结构。KSampler 还需要一个latent_image输入这个输入通常来自EmptyLatentImage节点。添加该节点后设置宽度、高度和 batch_size。batch_size 表示一次生成几张图数值越大显存占用越高。5.4 解码保存与完整连接采样完成后KSampler 输出的是 latent 数据不能直接作为图片查看。需要把这个 latent 连接到VAEDecode节点同时把 checkpoint 的 VAE 输出也连接给 VAEDecode。VAEDecode会输出 IMAGE 数据最后接SaveImage节点就能把图片保存到ComfyUI/output/目录。完整连线后点击 Queue Prompt 按钮或者使用快捷键任务会进入排队状态。底部日志区域会显示当前执行阶段生成完成后图片会出现在 Output 面板。第一次跑通时不需要追求效果先把流程走通后续再换模型、加 LoRA、调参数。只要图片成功生成你的第一个 ComfyUI 文生图工作流就算正式完成。5.5 通过 API 触发工作流学会界面操作之后可以进一步了解 ComfyUI 的 API 能力。如果你后续要写自动化脚本、做批量出图或者把 ComfyUI 集成到自己的业务系统中通常会把工作流导出成 API 格式然后通过 HTTP 接口提交。ComfyUI 默认启动后会监听8188端口提供了/prompt接口。下面是一个极简示例使用 Python 的 requests 库提交工作流import json import requests SERVER http://127.0.0.1:8188 with open(workflow_api.json, r, encodingutf-8) as f: workflow json.load(f) resp requests.post(f{SERVER}/prompt, json{prompt: workflow}) print(resp.status_code) print(resp.json())示例中的workflow_api.json需要从你的工作流中导出 API 格式。实际运行时要保证服务已经启动同时 JSON 里引用的模型文件路径在当前环境中真实存在。API 方式更适合后端开发新手阶段可以先了解不急着深入。6. 工作流进阶LoRA、ControlNet 与自定义节点6.1 添加 LoRALoRA 是一种轻量模型微调方式可以在比较小的文件体积内改变画风、增加人物特征或强化某种元素。基础工作流里LoRA 节点插在模型加载和文本编码之间。添加LoraLoader节点后将 CheckpointLoaderSimple 的 MODEL 和 CLIP 输出分别连接到它的两个输入端口上它会输出新的 MODEL 和 CLIP 给后续节点。LoRA 模型文件放在ComfyUI/models/loras/目录。选择 LoRA 之后可以设置strength_model和strength_clip两个强度参数一般从 0.5 到 0.8 开始尝试强度太高容易出现画面崩坏或过拟合。不同 LoRA 需要匹配不同底模SD1.5 系列 LoRA 通常不能直接用于 SDXL 模型除非发布者明确说明支持跨架构。加载别人分享的工作流时如果生成结果和示例图片差异很大优先检查底模与 LoRA 是否匹配。6.2 ControlNet 控制生成ControlNet 主要用来控制生成图像的结构常见方向包括使用 OpenPose 控制人物姿态使用 Canny 线稿控制构图边缘使用 Depth 深度图控制空间关系。它并不是画质增强工具而是“约束生成方向”的辅助手段。使用 ControlNet 时一般需要几个节点配合LoadImage加载参考图ControlNetLoader加载 ControlNet 模型再把预处理后的图像信息和 ControlNet 模型条件输入给采样环节。参考图放进ComfyUI/input/目录ControlNet 模型放进ComfyUI/models/controlnet/。预处理器通常由对应插件提供不同预处理器会提取不同信息比如骨架、轮廓或深度图。新手可以先从 Canny 开始因为线稿控制的效果直观最容易理解“模型到底看到了什么”。6.3 安装自定义节点与插件ComfyUI 的自定义节点目录是ComfyUI/custom_nodes/。安装方式有两种第一种是把插件项目直接克隆到该目录例如git clone https://...然后重启 ComfyUI第二种是使用 ComfyUI Manager 在网页端搜索安装。Manager 本质上也是在管理插件依赖但提供了搜索和更新界面对新用户更友好。安装完自定义节点后一般要重启服务才能识别。当你打开别人工作流时如果某个节点显示为红色很可能就是缺少对应自定义节点。先看界面或命令行提示的节点类型名称再到 Manager 中搜索安装。如果插件还依赖第三方 Python 包需要在整合包自带的 Python 环境中手动安装python -m pip install 包名这里的python要确保是整合包内置环境而不是系统 Python否则容易出现“明明装好了却找不到包”的问题。需要注意不要安装来源不明的脚本自定义节点本质上就是本地 Python 代码可以完成很多文件操作。7. 常见问题与排查思路7.1 启动与访问问题问题现象常见原因解决思路双击启动脚本后一闪而过Python 路径异常或依赖损坏打开命令行手动执行启动命令查看报错浏览器无法访问 8188服务未启动或端口被占用查看日志确认启动完成后再访问页面启动很慢或长时间无响应模型目录太大或磁盘性能差使用固态硬盘首次启动耐心等待页面打开但节点全部红名缺少自定义节点或插件依赖按报错提示安装节点和 Python 包比较常见的错误信息是“请安装缺失的包以使用此工作流”。这个提示通常出现在导入工作流时说明当前环境缺少某些 Python 包或插件。处理方法就是看终端日志找到缺失包名再在整合包的 Python 环境中执行python -m pip install 包名。关键一点是激活环境后用python -m pip而不是直接pip可以避免安装到系统环境。7.2 缺少节点或节点执行错误当某个节点显示为红色通常说明它无法被正确解析或执行。常见原因有三种节点类型不存在、依赖包缺失、上游输入数据格式不对。排查顺序建议先看命令行窗口最底部的错误报告里面会标明是哪个节点出错以及具体的异常描述。例如“Cannot find node type: XXX”就说明当前环境没有安装名为 XXX 的自定义节点。遇到这种情况可以把对应插件手动放进custom_nodes目录或者使用 ComfyUI Manager 搜索安装。还有一种思路是“分段验证”先把工作流从中间断开测试前半段是否能生成 latent再测试后半段是否能解码和保存这样可以快速定位断点避免整条链路同时检查。7.3 显存不足与生成慢显存不足通常表现为CUDA out of memory。解决方向很明确降低生成分辨率把 batch_size 改成 1减少同时加载的模型数量尽量关闭其他占用显存的软件。也可以在启动时添加低显存参数例如python main.py --lowvram或--medvram让 ComfyUI 更积极地卸载临时显存数据。生成慢则要从几方面看确认是否使用了 NVIDIA 显卡加速而不是 CPU 推理检查采样步数和分辨率是否设置过高确认 GPU 驱动和 PyTorch 版本是否匹配。生产环境中可以先使用低分辨率快速跑通工作流再在需要最终效果时提高分辨率。7.4 出图质量异常黑图、灰图、绿图通常和 VAE 有关可能是模型加载不完整、VAE 连接错误或者底模与 VAE 不匹配。检查 CheckpointLoaderSimple 的 VAE 输出是否正确连接到 VAEDecode 节点也可以尝试加载匹配的 VAE 文件。画面过浓或过灰还可能与 CFG 设置有关先将 CFG 降低到 7 左右看效果。画面崩坏或结构扭曲常见原因是 LoRA 强度过高、负面提示词缺失、底模与 LoRA 不匹配、采样步数不足。建议固定 seed、降低 LoRA 强度、加长采样步数然后单独调整一个变量来对比避免同时改多个参数导致无法定位问题。8. 最佳实践与工程建议8.1 模型与工作流目录管理模型文件越来越多之后目录管理非常重要。建议给模型统一命名例如包含模型类型、用途和版本不要只保留一串乱码文件名。整理模型时可以在models/checkpoints下建子目录方便下拉框里分类。LoRA 和 ControlNet 同样按用途分目录能明显提升查找效率。工作流文件命名建议包含关键信息例如portrait_openpose_v1.json。一套工作流跑通后定期导出并备份不要只依赖浏览器页面里的未保存状态。如果某个工作流需要特定插件版本可以在工作流描述字段里记下依赖信息方便日后恢复。8.2 提示词与参数控制提示词不是越长越好关键是精准。把常用正面提示词和负面提示词保存成模板可以减少重复输入。批量测试时先固定模型和 seed只调整一组参数这样能清楚看到某个参数对结果的影响。确认满意的效果后再放开 seed 测试随机性。项目开发中最好维护一个参数记录表记录每次实验使用的模型、LoRA、CFG、steps、sampler、seed 和结果截图。这样当效果返工或复盘时能快速找到历史结果不需要重新猜测参数。对 AI 生成项目来说可复现性往往比单次效果更重要。8.3 性能与安全建议不要在一次任务中同时加载过多大模型能复用节点结构就尽量复用。长时间批量生成时可以分批次提交队列避免一次性占用所有显存。output 目录会迅速堆积图片建议定期清理或按日期归档避免磁盘空间耗尽。安全方面要特别重视整合包、插件、别人分享的工作流里都可能存在可执行 Python 代码。不要盲目相信来源不明的文件尽量从可信社区下载。自定义节点中的 Python 节点支持任意代码执行在团队环境或生产服务器上使用前一定要审查逻辑必要时放到隔离环境中运行。9. 总结与下一步学习路线到这里你已经走通了 ComfyUI 从安装到搭建工作流的完整链路。回顾一下核心内容熟悉了节点式工作流的本质学会了整合包安装和启动认识了模型、CLIP、VAE、KSampler 这些关键概念亲手搭建了文生图工作流还了解了 LoRA、ControlNet、自定义节点的扩展方式。文章里涉及的常见报错排查方法回头遇到问题时可以直接对照使用。把第一个工作流跑通之后接下来可以从三个方向继续深入一是学习不同采样器和调度器的区别理解它们对画质和速度的影响二是研究 ControlNet 的多种预处理器做出更精准的结构控制三是尝试把工作流导出成 API 格式与 Python 脚本或后端服务结合实现自动化生成。如果你在 B 站看视频教程建议跟着视频下载同款工作流同时打开 ComfyUI 边看边操作理解效果会好很多。ComfyUI 的学习本质上不是背节点而是理解每一步数据流的来源与去向。只要你能把这篇文章里的六个核心节点连起来再通过替换模型、调整参数、添加插件不断扩展就已经走在正确路上了。动手实践永远是入门最快的方式遇到界面差异和报错是正常过程别被它们拦住。