ComfyUI新手入门:从零搭建Stable Diffusion节点式工作流 在实际使用 Stable Diffusion 系列模型时很多人一开始接触的是 WebUI 这类图形界面。界面非常友好但遇到复杂需求比如给人物换背景、固定角色特征、批量出图、高清放大后再修细节就会发现在 WebUI 里来回切换选项卡、反复调整参数非常繁琐。ComfyUI 之所以被越来越多人拿来当主力工具是因为它把 AI 绘画的每一步都变成了可视化节点加载模型、写提示词、采样、解码、保存图片全部以节点和连线的方式呈现在画布上。所谓工作流搭建就是把这一整套流程从无到有地组织起来并让它能够被保存、复现和分享。这篇教程面向完全没有接触过 ComfyUI 的新手默认读者会安装软件、能看懂英文节点名称但不要求有 Stable Diffusion 理论基础。文章按一条完整主线推进先解释 ComfyUI 的核心机制再完成本地部署然后从零手搭一个文生图工作流接着说明采样步数、CFG、种子等参数的含义再扩展到图生图、LoRA 和高清放大最后给出常见报错的排查链路和插件使用方法。学完之后你可以自己搭建工作流、看懂别人分享的工作流出现报错时也知道从哪里查起。注意本文讨论的 ComfyUI 工作流指的是面向 Stable Diffusion 系列模型的节点式工作流。搜索时经常看到的 Dify 工作流、智能体图形化工作流属于应用编排类工具目标和运行方式完全不同不要混为一谈。1. ComfyUI 是什么核心机制与适用场景1.1 节点式工作流的本质ComfyUI 是一个基于节点的 Stable Diffusion 图形化界面。与 WebUI 那种填写表单、点击生成的交互不同ComfyUI 把整个出图过程拆成很多个独立节点例如加载模型、文本编码、采样、解码、保存图片。每个节点有输入和输出用户把节点串联起来数据沿着连线从一个节点流向另一个节点最终得到图片。用一句通俗的话说WebUI 是把流程写死在一个界面里用户只能改参数ComfyUI 把流程本身交还给了用户用户可以自己决定先做什么、后做什么、把哪个结果送给哪个节点。这种设计带来的直接好处是可重复、可分享。搭建好一个工作流之后保存成文件别人加载后就能复现同样的流程。需要修改时也不需要从头设置只需要替换模型节点、修改提示词或者插入一个新节点。1.2 与 WebUI 的差异和选型建议ComfyUI 和 WebUI 是当前中文社区里最常见的两套绘图像界面经常被放在一起对比维度WebUIComfyUI交互方式表单式界面选项固定节点连线流程自定义上手难度较低适合新手较高需要理解节点概念流程控制固定流程扩展靠选项卡自由编排适合复杂流程资源占用相对较高相对更轻量工作流分享以参数和脚本为主以 workflow 文件为主如果是第一次接触 AI 绘画先玩 WebUI 没有问题一旦需要组合多个功能、批量出图、复现别人的效果ComfyUI 的优势就会明显起来。这篇教程的定位就是让新手跳过只会点按钮的阶段直接把工作流搭建的思路学会。1.3 ComfyUI 的核心概念速览开始部署之前先记住四个词后面都会反复用到节点Node完成一件具体事情的单元比如加载模型、编码文本、采样。连线Link节点之间传递数据的通道连接时必须类型匹配。工作流Workflow一组节点和连线的整体保存为 JSON 或嵌入 PNG 文件。执行与预览在画布上点击执行后ComfyUI 会按照节点依赖关系逐级运行每一步的中间结果都可以预览。这一节不需要立刻全部理解关键是建立印象ComfyUI 里的每一张图都是由一条数据链路生成出来的。后面所有操作都是围绕这条链路展开。2. 本地部署手动安装与整合包安装2.1 部署前先确认硬件和系统环境ComfyUI 是本地运行的程序出图依赖 Stable Diffusion 模型对硬件有一定要求。新手部署前先确认环境避免装完跑不起来。基础建议操作系统Windows 10/11 用户最多macOS 和 Linux 也可以运行但配置方法略有差异。显卡NVIDIA 显卡体验最好需要安装匹配的显卡驱动A 卡和核显也能跑但需要额外配置和加速插件。显存8GB 以上显存可以比较舒服地出图6GB 能跑但步数、分辨率、放大流程需要克制没有独立显卡只能靠 CPU出图速度会很慢。内存建议 16GB 以上。显存不够时会有一部分数据落到内存内存太小会直接报错。硬盘模型文件通常有几个 GB 到十几个 GB建议预留 50GB 以上空间尽量安装在 SSD。Linux 用户比如 Ubuntu在安装时会遇到依赖冲突、缺少 CUDA 运行库等情况处理思路和其他 Python 项目一致使用虚拟环境、确认 PyTorch 版本与 CUDA 版本匹配、按日志逐个解决依赖。2.2 手动安装 ComfyUI 的完整步骤ComfyUI 本质上是一个 Python 项目安装步骤就是下载源码、创建虚拟环境、安装依赖、启动。以 Windows 为例核心命令如下git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python -m venv venv venv\Scripts\activate pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install -r requirements.txt说明几点这里的 PyTorch 安装命令指定了 CUDA 12.1 版本具体要看你显卡驱动的 CUDA 版本。驱动版本高于 12.1 通常可以兼容驱动较低时要选择匹配的 cu118 或更早版本。如果网络下载慢可以把 pip 源切到国内镜像pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple。git 和 Python 都是前置依赖。Python 版本建议使用 3.10 或 3.11太新的 Python 可能遇到个别依赖没有对应轮子的问题。安装完成后启动命令是venv\Scripts\activate python main.py看到类似Starting server、To see the GUI go to: http://127.0.0.1:8188的输出说明服务启动成功。浏览器打开http://127.0.0.1:8188就能进入 ComfyUI 画布界面。macOS 或 Linux 上激活虚拟环境的命令会变成source venv/bin/activate其他步骤类似。Linux 上如果使用 NVIDIA 显卡还要额外确认驱动和 CUDA 工具链是否正常可以用nvidia-smi检查。2.3 用整合包快速起步手动安装适合想了解底层结构的用户。如果只是想快速把 ComfyUI 用起来中文社区广泛使用的秋叶一键整合包是更省事的方案。这类整合包把 Python、PyTorch、ComfyUI 主体、常用模型目录和启动器都打包好了解压后点启动器即可运行。以这类整合包为例使用流程通常是下载整合包压缩包解压到硬盘。打开启动器选择需要启动的程序ComfyUI 或 WebUI。启动器会自动检查环境、选择显卡设备、启动服务。浏览器打开http://127.0.0.1:8188进入界面。使用整合包时有几个注意点不要重复安装 Python 环境。整合包内置的 Python 和依赖已经配对自己额外装版本容易导致环境混乱。整合包更新方式通常是整体覆盖或使用启动器自带的更新入口不建议手动改内部文件。如果下载的是旧版本整合包里面的 ComfyUI 核心版本可能偏旧使用新版工作流文件时可能提示缺少节点或节点版本升级这是正常现象优先更新整合包或用官方源手动更新。注意无论手动安装还是整合包ComfyUI 版本、PyTorch 版本、显卡驱动版本三者必须匹配。很多人遇到的节点执行错误其实不是节点代码问题而是底层环境版本不匹配。2.4 模型文件放哪里图片能不能生成最终取决于 Stable Diffusion 模型文件是否放在正确目录。ComfyUI 的目录结构如下ComfyUI/ ├─ models/ │ ├─ checkpoints/ # 主模型例如 SD1.5、SDXL 系列 │ ├─ loras/ # LoRA 模型 │ ├─ vae/ # VAE 模型 │ ├─ controlnet/ # ControlNet 模型 │ └─ upscale_models # 放大模型 ├─ custom_nodes/ # 插件目录 ├─ output/ # 出图输出目录 └─ input/ # 图生图等场景的输入目录常见模型目录和用途如下目录放置的文件用途checkpoints.safetensors主模型文生图、图生图的基础模型loras.safetensorsLoRA 文件微调风格、角色特征vae.safetensorsVAE 文件改善色彩和解码效果controlnet.safetensors控制模型姿态、线稿、深度控制custom_nodes插件代码目录扩展节点功能模型下载后要注意把主模型放进 checkpointsLoRA 放进 loras不要放错目录否则节点里找不到模型。下载时优先选择.safetensors格式不要使用.ckpt这类旧格式安全性和加载速度都差一些。3. 从零搭建一个文生图工作流3.1 工作流文件的保存方式ComfyUI 的工作流有两种保存方式单独保存为 JSON 文件或者在生成图片时把工作流信息嵌入 PNG。从 PNG 加载回 ComfyUI 的入口在界面右侧把图片拖到画布上也能恢复工作流。这个特性对新手特别有用网上分享的图片只要拖进 ComfyUI 就能看到对方的流程如果只想看成品图使用不带工作流的普通图片查看器即可。看懂一张分享图的完整链路往往比看十篇文字教程更有效。3.2 在画布上添加第一个节点打开 ComfyUI 界面后通常会看到一个默认的示例工作流。建议先清空画布从零添加节点这样能理解每个节点从哪里来。右键空白处弹出菜单可以搜索节点。搭建一个最小文生图工作流需要以下节点节点作用搜索关键词Load Checkpoint加载主模型checkpointCLIP Text Encode编码正向/负向提示词clipEmpty Latent Image设定画布尺寸latentKSampler执行采样samplerVAE Decode解码潜空间到图片vaeSave Image保存图片save初学者最容易忽略的一点是节点名只在搜索时使用画布上真正决定数据流向的是节点的输入输出接口。例如Load Checkpoint会输出MODEL、CLIP、VAE三个接口分别代表模型、文本编码器和 VAE三条数据流要各接各的接错位置会直接报错。3.3 最小文生图链路详解一个标准的最小文生图链路如下Load Checkpoint ├─ MODEL - KSampler.model ├─ CLIP - CLIP Text Encode.clip正向 ├─ CLIP - CLIP Text Encode.clip负向 └─ VAE - VAE Decode.vae CLIP Text Encode正向 - KSampler.positive CLIP Text Encode负向 - KSampler.negative Empty Latent Image - KSampler.latent_image KSampler - VAE Decode.samples VAE Decode - Save Image.images逐段理解Load Checkpoint加载主模型输出三个关键通道。MODEL 负责采样计算CLIP 负责把文字变成向量VAE 负责把潜空间数据解码成图片。CLIP Text Encode把提示词转换成模型理解的向量。正向提示词描述想要的内容负向提示词描述不想要的内容。Empty Latent Image定义生成图片的宽、高和 batch 数量。生成是先生成潜空间数据再解码为图片所以先有这个节点。KSampler整个链路的核心。采样步数、CFG、采样器和种子这些影响出图质量的关键参数都在这个节点上。VAE Decode把采样得到的潜空间数组翻译成像素图片。Save Image保存图片到output目录并在界面显示预览。搭建完成后正向提示词先随便写一个测试内容比如a beautiful girl, detailed face, soft lighting, masterpiece负向提示词可以先用固定模板lowres, bad anatomy, bad hands, extra fingers, blurry点击执行按钮后如果一切正常会在几秒到几十秒内看到生成结果。第一次跑通这个最小链路比记忆任何参数都重要。3.4 常见坑连线类型不匹配与节点缺失新手搭建工作流最常见的两个报错第一连线类型不匹配。每个节点的接口都有类型标识例如MODEL、CLIP、LATENT。不能把CLIP接到需要MODEL的输入上。连接时留意接口颜色和类型名称颜色不同通常意味着不能连接。第二加载别人分享的工作流后提示缺少节点。原因可能是对方用了自定义插件而你没有安装对应插件界面上缺失节点会显示为节点类型不存在等字样。解决方式是安装对应插件后再加载如果只是少了不太重要的节点也可以在保持链路完整的前提下手动替换成内置节点但风险是参数丢失。4. 采样参数详解steps、sampler、CFG、seed4.1 采样器和调度器是什么采样器决定模型每一步如何从噪声中恢复图像。KSampler 节点里包含sampler_name和scheduler两个下拉选项。sampler_name表示采样算法例如 Euler、DPM 2M、UniPC 等。不同采样器在细节、速度和稳定性上表现不同。scheduler表示调度方式例如 normal、karras、exponential。调度器影响每一步的步长分配策略。新手不需要把所有采样器都试一遍。以 SD1.5 为例比较稳妥的入门选择是DPM 2M搭配karras出图质量和速度比较均衡。SDXL 场景中Euler或DPM 2M同样常见。调整采样器时留意同一个种子、同一个模型选择不同采样器得到的结果会明显不同这不是 bug而是算法的默认行为。4.2 采样步数与 CFG 的含义采样步数steps表示从纯噪声到最终图像之间迭代的次数。步数越少采样越粗糙步数越多细节越充分但也不是越多越好。步数过高时图像基本收敛继续增加只会增加耗时还可能引入噪点。CFGClassifier-Free Guidance提示词对结果的引导强度。CFG 数值越大图像越贴合提示词但过高会导致色彩过饱和、边缘发硬、画面过锐CFG 数值过小图像会偏离提示词画面显得松散。常见取值范围如下参数常见范围默认习惯调大影响调小影响steps20 到 40SD1.5 常用 20 到 30细节更充分耗时增加细节不足图像粗糙CFG3 到 12SD1.5 常用 7 左右更贴合提示词可能过饱和更像随机图偏离提示词分辨率512x512 或 1024x1024取决于模型细节更多显存占用更高细节减少可能结构错误新手建议先固定一个组合steps25、CFG7、分辨率按模型能力设置。先跑通一组图再单独调整一个变量观察变化。一次只改一个变量是调参的基本方法。4.3 种子值的作用种子seed是采样的随机初始化值。同一个模型、同一个提示词、同样的参数和 seed生成结果可以基本复现。seed 的作用有两个固定 seed方便做对照实验。想验证 CFG 或 steps 的影响时保持 seed 不变才能看出是参数导致的差异。随机 seed用于不断尝试新画面。想生成完全不同的构图就把 seed 改成随机。KSampler 节点里的control_after_generate选项可以选择固定、随机或递增。新手容易忽略这个选项如果你发现连续几次生成结果一模一样很可能是因为 seed 被固定了如果想每次都不一样需要把它设为随机。4.4 参数与模型的关系不同底座模型对参数的敏感度不同。SD1.5 模型用 CFG7 比较常见而 SDXL 模型常常把 CFG 设置在 5 到 7 左右步数也可以降低到 25 以内。新下载的模型作者一般在模型页面给出推荐参数优先按推荐参数测试再根据自己的画面需求微调。记不住参数没有关系关键是理解三个原则步数和分辨率影响显存与耗时。CFG 影响提示词与画面的贴合程度。seed 影响复现和对照实验。5. 进阶工作流图生图、LoRA 与高清放大5.1 图生图工作流图生图的意思是把一张已有图片作为输入在保持整体构图的前提下重新生成。核心做法是在文生图链路上增加一个Load Image节点并在采样前加入VAE EncodeLoad Image - VAE Encode - KSampler.latent_image Load Checkpoint.VAE - VAE Encode.vae关键参数是denoise。它表示重绘强度取值范围 0 到 1denoise 接近 0几乎保留原图只做细微润色。denoise 接近 1基本抛弃原图内容只参考构图相当于重新生成。常见用法固定场景重绘用 0.4 到 0.6风格转换用 0.6 到 0.8。需要注意图生图的输入图片尺寸和 Empty Latent Image 的尺寸最好一致否则会出现拉伸、裁切或构图错乱的问题。5.2 添加 LoRA 模型LoRA 是一种轻量微调模型用来给基础模型附加特定风格或角色特征。使用 LoRA 的通常做法在链路上加载Load LoRA节点。把Load Checkpoint的MODEL输出接到Load LoRA的model输入。把Load Checkpoint的CLIP输出接到Load LoRA的clip输入。Load LoRA再输出MODEL和CLIP接到后续的 KSampler 和文本编码节点。LoRA 节点里有strength_model和strength_clip两个权重参数通常都设成 0.7 到 1.0。权重太高会导致脸部崩坏或风格过度太低则效果不明显。不同 LoRA 的最优权重差别很大下载页有说明就按说明来没有说明从 0.8 开始测试。一个容易犯的错误是加载了 LoRA却在提示词里完全不写对应触发词。部分 LoRA 需要特定的触发词才会激活效果需要查看模型页面说明。5.3 高清放大工作流基础分辨率生成的图往往细节不足需要放大。ComfyUI 常见的高清放大思路是先按小分辨率生成再用放大模型放大最后对放大的图做一次低强度重绘。一个朴素的实现方式文生图链路生成一张 512x512 或 768x768 的图。使用Upscale Image节点把图片放大到目标尺寸。把放大后的图通过VAE Encode重新编码进潜空间。再经过一次 KSamplerdenoise 设为 0.4 到 0.5补充细节同时避免构图漂移。这种先小图生成、再放大重绘的方式能有效减少显存压力。生产环境中还可以使用专门的放大模型和脚本但这套流程是理解高清放大的基础。5.4 使用和复用别人分享的工作流学习阶段最有效的方法是找一份公开工作流加载后逐节点拆解。加载别人工作流时建议先备份自己的默认工作流文件。把工作流文件拖入浏览器窗口确认提示缺少哪些节点。逐个补齐缺少的模型文件、插件和 LoRA。对照每个节点理解输入输出试着修改提示词、种子和参数观察变化。看到报错不要急着删除节点可以先保存一份原始未修改版再开始裁剪。这样既能随时回到正确版本也不会把对方流程中隐藏的重要设置弄丢。6. 常见报错与排查链路6.1 节点在执行过程中发生错误怎么查这是新手最常见的错误提示。界面会弹出红字并附有一段 error report。错误本身并不复杂关键是不要只看发生错误四个字而要往下看具体异常类型和节点名称。处理顺序看 error report 顶部找到出错节点名称确认是哪一个节点。看异常类型例如CUDA out of memory、FileNotFoundError、AttributeError。打开控制台日志找到第一条红字报错而不是最后一行。根据异常类型走对应排查路径。常见错误对照表错误现象常见原因检查方式处理建议CUDA out of memory显存不足或 batch 过大查看显存占用、任务管理器降低分辨率、减少 batch、关闭其他占显存程序FileNotFoundError模型文件不存在或路径错误检查 models 目录下载模型并放到正确目录AttributeError、ImportError依赖版本不匹配或插件缺失查看插件安装状态更新依赖重装对应插件中文路径报错项目放在中文目录检查安装路径改成纯英文路径生成结果全黑或花屏VAE 缺失或节点接错检查 VAE 是否加载单独加载 VAE 模型6.2 显存不足与虚拟内存显存不足的表现通常是运行到一半报CUDA out of memory或者界面卡顿、直接闪退。处理方向降低分辨率例如从 1024x1024 降到 768x768。减少 batch size一次只生成一张。关闭浏览器其他标签页和后台占用显存的程序。更新显卡驱动和 PyTorch 版本新版本的显存管理通常更好。如果显存很小还可以调整虚拟内存大小。Windows 上可以通过系统属性-高级-性能设置-高级-虚拟内存提高页面文件容量。这里要正确理解虚拟内存的作用它不能替代显存只是让显存不足时不至于立即崩溃速度会明显下降属于兜底方案。6.3 模型加载失败和节点不显示模型加载失败常见原因模型文件没有放到models/checkpoints目录。模型文件后缀名不被识别例如.gguf、.pt等特殊格式需要对应插件。文件名包含特殊字符导致解析异常建议改成简单英文名。节点不显示通常是插件问题。安装插件后需要重启 ComfyUI 才能生效。如果重启后仍然看不到检查插件目录是否在custom_nodes下以及插件依赖是否完整安装。插件安装失败的常见表现是启动日志里出现该插件路径下的红色报错。6.4 日志关键字与排查顺序ComfyUI 的控制台会输出大量日志。排查时不要无脑翻日志按优先级顺序检查输入检查提示词是否为空、图片路径是否存在、模型是否在目录里。路径与命名安装路径是否为纯英文模型文件名是否有空格或中文。依赖版本PyTorch、ComfyUI 版本是否与节点要求匹配插件与 ComfyUI 主版本是否兼容。配置生效模型首次启动后需要重新加载修改配置后必须重启。资源限制显存、内存、虚拟内存是否够用。日志异常找到第一条异常栈查看是哪个模块抛出的。版本限制有些模型或插件依赖特定 ComfyUI 版本需要升级主程序或回退版本。注意不要只在图形界面上看报错。大部分有效线索在命令行终端里。启动 ComfyUI 的窗口不要最小化到看不到报错发生时先到终端里复制完整堆栈。7. 插件生态与下一步学习方向7.1 常用插件类型与安装方式ComfyUI 的插件扩展了节点能力。目前社区里常见插件按用途分为几类插件类型典型用途安装入口管理器插件管理节点和插件安装、更新Git clone 到 custom_nodes提示词增强中文翻译、标签补全、风格预设管理器或 Git 安装ControlNet 增强姿态、线稿、深度控制Git 安装高清放大辅助集成放大算法和脚本Git 安装视频生成图生视频、文生视频流程Git 安装并下载对应模型安装插件最省事的方式是安装管理器插件然后在管理器里搜索、安装、更新节点。手动安装的方式是把插件仓库放到custom_nodes目录然后在 ComfyUI 根目录执行pip install -r custom_nodes/插件目录/requirements.txt安装完成后重启 ComfyUI在节点搜索框里输入插件提供的节点名确认是否生效。7.2 插件冲突的预防插件装多了会带来几个麻烦插件依赖的库版本互相冲突启动时某个插件报错。插件更新后与旧工作流不兼容提示节点类型改变。插件占用资源过高拖慢出图速度。预防措施只装实际需要的插件不提前囤一堆。记录每个插件的安装时间和版本出问题时方便回退。插件更新前先看更新说明确认兼容性。重要工作流导出前附带记录所用插件列表。新手阶段可以把插件控制在两三个以内先熟练使用核心节点的连接逻辑再逐步引入扩展。插件不是越多越好工作流能否稳定复现比界面看起来是否满屏节点更重要。7.3 学习环境与稳定生产的区别学习环境可以随意尝试但打算把 ComfyUI 用于日常稳定出图或团队协作时处理方式要有明显区别学习环境模型随便下载、插件随意安装、工作流随时改出现问题直接重装环境。生产环境固定 ComfyUI 和 PyTorch 版本记录每个模型和插件的版本清单重要工作流做备份出图输出按日期和用途归档。每次复现成功时把 ComfyUI 版本、PyTorch 版本、模型文件名、插件列表和关键参数一起记录下来。AI 绘画相关组件更新非常快今天能跑的工作流三个月后可能因为插件升级而失效。对新手来说最好的练习不是照抄一份完整工作流而是从最小文生图链路开始手动添加一个节点、理解一个接口的作用再逐步增加 LoRA、放大、ControlNet。把每个节点的输入输出都弄明白再复杂的开源工作流在你眼里也会变成一条清晰的数据管道。下一步可以朝这些方向继续深入ControlNet 姿态和线稿控制、批量出图与队列自动化、视频生成流程、以及把常用流程整理成团队模板。工作流搭建不是把节点堆出来就行真正有价值的是知道每个节点为什么存在、每条连线为什么这样接以及出问题时从哪里下手。