尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ComfyUI入门教程:从节点工作流到实战搭建

ComfyUI入门教程:从节点工作流到实战搭建 很多第一次接触 AI 绘画的同学都是从 Stable Diffusion WebUI 入门的。输入提示词点一下生成一张图就出来了体验确实友好。但当你想要更精细地控制图片风格、想换一个最新的模型架构、想在 8GB 显存上跑更大的图或者想研究 AI 绘画背后的完整流程时大概率会有人告诉你去用 ComfyUI。然后你打开 ComfyUI看到的不是漂亮的按钮和功能区而是一个空白画布、一堆节点和密密麻麻的连线。这个时候很多人会直接退出去心里想这根本不是给人用的。这篇教程想解决的正是这个问题。它不是把 ComfyUI 从菜单到按钮念一遍说明书而是按照新手最容易卡住的路径从零开始带你理解 ComfyUI 的工作方式为什么是节点、为什么要连线、工作流怎么从无到有搭出来、报错之后该先看哪里。整个篇幅会把核心概念、安装部署、文生图工作流、常规排查放在一起讲清楚建议先收藏再往下读。1. ComfyUI 到底是什么为什么新手总觉得它难先给一个结论ComfyUI 不是 Stable Diffusion WebUI 的替代品而是一种更接近 AI 绘画底层逻辑的操作方式。WebUI 把生成图片的整个过程封装成了一个表单页面你只需要填词、调参数、点按钮。ComfyUI 则把这个过程拆成了一个个独立的节点然后通过连线把数据一步一步传递下去。可以这样理解。WebUI 就像一个自动挡的汽车你只管踩油门剩下交给系统。ComfyUI 则像一个能够自定义改装的手动挡汽车你能看到发动机是怎么喷油、变速箱是怎么换挡的。当然你也可以什么都不改直接开原厂配置。ComfyUI 解决的最大痛点是生成流程的可见性和可控性。以前在 WebUI 里你想知道某一步参数为什么导致图片长这样只能反复调参、反复猜测。在 ComfyUI 里每个节点负责一件事每个输入输出都能看到。提示词进入文本编码器变成了条件向量潜空间图像经过采样器逐步去噪VAE 解码器把潜变量还原成像素图。每一步都摆在你面前。这带来的直接好处有三个。第一灵活性高。你可以随意组合节点在任意位置插入自定义处理逻辑比如给图像加 LoRA、做局部重绘、拼接多张图、做 ControlNet 控制。新模型一出ComfyUI 往往能靠社区节点很快适配。第二显存利用更高效。WebUI 默认流程会产生很多临时的大张量数据ComfyUI 则按需计算很多场景下能在更小显存内完成大图生成。这也是很多人说 ComfyUI “省显存” 的原因。第三学习价值高。把 ComfyUI 的默认工作流完整跑通一遍等于亲手把 Stable Diffusion 生成图片的完整流程复习了一遍。以后再听到 Checkpoint、CLIP、VAE、Latent、采样器这些概念你不会再觉得它们只是设置面板里的陌生名词。那为什么新手会觉得难呢因为 ComfyUI 默认是英文界面节点很多没有一个明确的“新手引导”。打开软件之后面对空白画布第一反应往往是我该做什么这种挫败感是真实存在的但它和学习门槛是两回事。只要你理解了一个核心工作流由哪些节点组成后面所有复杂工作流都是在这个基础上做增删改。2. 节点、连线、工作流先理解这三个词在进入安装和环境配置之前先用最小的篇幅把 ComfyUI 的底层概念讲清楚。因为后面所有操作都在和这三样东西打交道。2.1 节点Node节点是 ComfyUI 的最小功能单元。一个节点完成一件事然后输出结果。举例来说Load Checkpoint加载一个底模文件输出模型相关的一组数据。CLIP Text Encode把提示词变成模型能理解的条件向量。KSampler执行采样去噪这是生成图像的核心步骤。VAE Decode把潜空间数据还原成普通图片数据。Save Image把最终图像保存到磁盘。每个节点有输入接口和输出接口。有的接口需要连数据有的接口是可选参数也有的节点没有输入、只有输出比如加载模型节点。2.2 连线连线把两个节点的接口连接起来。数据从 A 节点的输出端流到 B 节点的输入端。这种数据流就是 ComfyUI 工作流的基本运转方式。新手最常见的错误是把线性连线和因果关系搞混。在 ComfyUI 里连线代表的是“数据从哪来到哪去”不只是“执行顺序”。你连接的路径决定了整个流程的数据传递关系。2.3 工作流工作流就是一组节点和一组连线的整体组合。它可以很简单比如只有文生图那几件套也可以很复杂比如带多个 ControlNet、二次重绘、动画帧序列处理等。你可以把一个工作流保存为 JSON 文件发给其他人或者从网上下载别人的工作流 JSON。双击 .json 文件ComfyUI 会在画布上把整个节点图还原出来。现在网络上有大量 ComfyUI 工作流分享很多做视频生成、电商设计、游戏角色设定的同学都是在别人工作流的基础上修改出来的。所以学会看懂工作流比从零创造工作流更重要。3. 环境准备显卡、显存和安装方式的选择3.1 硬件要求ComfyUI 本身不是一个重型软件真正消耗资源的是底模和采样过程。显卡方面NVIDIA 显卡体验最好因为 CUDA 生态成熟很多加速方案都优先支持 N 卡。AMD 显卡和 Intel 显卡也能用但需要处理兼容层新手不建议一上来就挑战。显存方面4GB 显存能跑基础小尺寸图但限制很大8GB 显存是比盒里的配置大多数人选这个档位12GB 以上显存体验会好很多可以轻松跑 1024x1024 甚至更大分辨率。如果显存不够有两个临时解决办法生成尺寸不要开太大先用 512x768 这类中低分辨率出图后再用放大节点处理。调整系统虚拟内存。Windows 默认虚拟内存可能不够ComfyUI 在使用过程中会频繁读写临时数据虚拟内存过小容易出现“CUDA out of memory”或者直接崩溃。建议把虚拟内存设置为物理内存的 1.5 到 2 倍。内存条方面建议 16GB 起步32GB 更稳妥。毕竟除了 ComfyUI你还要开浏览器、可能还要挂一个图片查看器。3.2 安装方式整合包 vs 官方源码ComfyUI 的安装方式大致有两种社区整合包和官方源码安装。先说整合包。国内社区常见的“秋叶整合包”是专门给新手准备的它把 Python 依赖、ComfyUI 本体、常用插件、默认模型存放目录都打包好下载解压后双击启动脚本就能用。对刚接触 AI 绘画、不想跟环境变量和依赖库搏斗的同学来说整合包是最快跑通流程的方式。整合包的优点安装简单解压即用。自带加速补丁和常用插件比如中文化界面、常用的模型下载管理工具。社区用户多遇到问题容易搜到相同案例。整合包的缺点版本可能不是最新的部分进阶功能需要手动更新。打包的插件比较多不用的插件反而可能导致启动变慢或冲突。如果你以后想深度定制还是要重新理解官方目录结构。官方源码安装更灵活也更能跟上社区最新版本但对新手来说光配置 Python 虚拟环境和依赖项就可能卡住一晚上。所以这篇教程的建议是先用整合包跑通再决定要不要切源码安装。3.3 官方源码安装的大致步骤如果你决定走官方源码安装可以按这个思路来。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启动python main.py启动成功后浏览器访问http://127.0.0.1:8188这里注意不要机械地把上述命令当成万能步骤。具体安装要求请以官方仓库当时的 README 为准尤其是 PyTorch 的安装方式。如果你用整合包这一步可以整体跳过。4. 第一次启动 ComfyUI界面结构和初始化设置整合包解压后通常会有一个启动脚本Windows 上一般是run_nvidia_gpu.bat。双击运行等浏览器自动打开地址http://127.0.0.1:8188。第一次打开 ComfyUI 界面不要慌。整个界面可以分成几个区域。画布中央是工作区你的节点和连线都在这里。最上方是菜单栏可以加载工作流、保存工作流、调整设置。界面上默认会加载一个最简单的文生图工作流如果画布空白也可以在菜单里找到“Load Default”加载默认工作流。这里需要提一个很多新手会忽略的问题模型目录。ComfyUI 默认会从models/checkpoints目录加载底模。如果你把模型放到了别的位置节点里是看不到的。整合包通常已经把目录结构建好你只需要把下载的模型放进对应目录然后在 ComfyUI 界面里点击节点名称旁边的刷新按钮就能看到新模型。以文生图举例你至少需要一个底模文件。底模一般可以从 Hugging Face 或国内社区下载文件后缀通常是.safetensors或.ckpt。下载好之后放到models/checkpoints目录。这一步放好后你的工作流搭建才算真正有了原材料。5. 手把手搭一个文生图工作流现在进入核心实操环节。我们从零搭建一个最简单的文生图工作流。即使你已经从默认模板里见过它也建议跟着连一遍因为你以后所有复杂操作都会从这个基础结构上长出来。5.1 开始前的准备先确认界面是空白画布。不是空白也没关系可以先鼠标框选全部节点按删除键清空。需要添加的第一个节点是“Load Checkpoint”。在画布空白处双击会弹出节点搜索框输入Checkpoint选择Load Checkpoint。这个节点负责加载底模。它的输出有三个接口MODEL采样时使用的扩散模型。CLIP文本编码器用于处理提示词。VAE图像的变分自编码器负责解码。这三个接口会分别连接到后续不同节点这是 ComfyUI 工作流最基本的数据分发逻辑。5.2 添加提示词编码节点接下来添加两个“CLIP Text Encode”节点分别用于正向提示词和负向提示词。双击画布搜索CLIP Text Encode添加两个。一个把它当作正向提示词输入另一个当作负向提示词。把 Load Checkpoint 的 CLIP 输出接口分别连接到两个 CLIP Text Encode 的 CLIP 输入接口。在正向节点里输入类似masterpiece, best quality, a girl standing in a sunflower field, soft lighting, detailed face, 8k wallpaper在负向节点里输入lowres, bad anatomy, bad hands, worst quality, blurry, extra fingers, watermark负向提示词的作用就是告诉模型“你不要生成这些东西”。早期模型对负向提示词更敏感现在很多新模型即使不写负向词也能出干净图但养成良好的填写习惯仍然很重要。5.3 添加采样器节点采样器是整条工作流的心脏。双击搜索KSampler添加这个节点。KSampler 的输入接口中model 连接 Load Checkpoint 的 MODEL 输出positive 和 negative 分别连接两个提示词编码节点的输出latent_image 需要连接一个“Empty Latent Image”节点输出的空潜空间图像。先添加Empty Latent Image节点它用来设定生成图片的尺寸和批次大小。双击搜索Empty Latent Image添加后设置width512height768batch_size1KSampler 里的关键参数seed随机种子。固定 seed 后在同样的参数和提示词下生成结果保持一致。想换一批新图就点 seed 旁边的骰子按钮随机变化。steps采样步数。步数越多细节越充分但并不是越大越好。大部分场景下 20 到 30 步已经足够超过 40 步收益会变得很低。cfg提示词引导强度默认 7。CFG 越高图片越贴近提示词但太高会导致颜色过饱和、图像失真CFG 太低模型可能忽略你的提示词。sampler_name采样器算法。新手直接选择euler或者dpmpp_2m即可先不用纠结不同采样器的数学差异。scheduler调度器选择normal或karras都可以后续熟悉了再根据需要调整。denoise重绘幅度。文生图时保持 1图生图时降低这个值会保留更多原图内容。5.4 添加解码和保存节点模型生成的是一张“潜空间图像”需要解码成我们能看懂的普通图片。双击搜索VAE Decode添加节点。把 VAE Decode 的 samples 输入接口连接到 KSampler 的 LATENT 输出接口。再把 Load Checkpoint 的 VAE 输出接口连接到 VAE Decode 的 vae 输入接口。最后添加Save Image节点把它连接到 VAE Decode 的 IMAGE 输出接口。完整逻辑链路是这样的Load Checkpoint ├─ MODEL ────────────── KSampler ├─ CLIP ── 正片词编码 ── KSampler.positive ├─ CLIP ── 负向词编码 ── KSampler.negative └─ VAE ─────────────── VAE Decode Empty Latent Image ── KSampler.latent_image KSampler.LATENT ── VAE Decode.samples VAE Decode.IMAGE ── Save Image5.5 运行与验证确认所有连线正确后点击右侧面板的“执行”按钮ComfyUI 会按照数据流关系自动运行。如果一切正常你会看到几个节点依次变为绿色然后 Save Image 节点上出现预览图。如果某个节点变成红色说明这一步执行出错。先不要慌把鼠标移动到红色节点上会看到错误提示。最常见的错误包括找不到模型检查 Checkpoint 文件是否放到了models/checkpoints目录。没有连接某个输入接口检查节点输入接口是否全部接好。显存不足降低分辨率或者关闭其他占用显存的程序。6. 核心节点逐个拆解为什么它们是工作流的地基默认文生图工作流里这五个节点不只是五个按钮它们分别对应了 Stable Diffusion 生成过程的完整链路。下面逐个展开讲。6.1 Load Checkpoint模型全家桶Checkpoint 文件之所以体积大通常几个 GB是因为它内部打包了多个模型组件。在 ComfyUI 里当你加载一个 Checkpoint 时它一次性输出 MODEL、CLIP、VAE 三个接口分别给不同节点使用。这解释了一个新手常见的困惑为什么 WebUI 里看不懂模型文件内部结构而 ComfyUI 要把一个模型拆成三份用因为在实际生成过程中这三个组件确实各司其职。MODEL 负责扩散去噪CLIP 负责理解文字VAE 负责图像编码和解码。ComfyUI 把它们显式地暴露出来意味着你可以随时更换其中一个部分比如用更高质量的 VAE 文件替换 Checkpoint 自带的 VAE。这些节点也解释了为什么有时候明明模型加载了结果生成出来是黑图或者噪点图。很可能就是 VAE 部分出了问题比如 VAE 文件没放对、被替换成了不兼容的版本。6.2 CLIP Text Encode提示词在这里变成条件CLIP Text Encode 节点接收普通文本输出的是模型推理时需要用到的条件向量。两个 CLIP Text Encode 节点一个生成正向条件一个生成负向条件。在采样过程中模型会同时参考正向条件和负向条件来逐步去噪。正向条件告诉它“朝哪个方向走”负向条件告诉它“避开哪些区域”。新手容易忽略的是CLIP 节点输出的数据只能连接到对应类型的输入接口。你不能把一个 CLIP 输出直接接到 VAE 解码器的 vae 输入接口上。接口类型不匹配时ComfyUI 不会允许你连线这就是为什么节点接口会显示不同颜色。6.3 Empty Latent Image潜空间画布在扩散模型生成图像时图像不是直接以像素形式生成的而是以压缩后的“潜空间”形式生成。Empty Latent Image 节点创建的就是一张初始的潜空间空白画布。宽高比的选择会影响构图。默认 1:1 用 512x512竖屏用 512x768横屏用 768x512。如果你需要 1024x1024 的图也可以直接设置但显存占用会显著增加。这里有个进阶建议不要一开始就把尺寸拉满。先低分辨率快速出图确认构图和色调都满意之后再用放大工作流做高分辨率细节增强这样效率高很多。6.4 KSampler核心采样引擎KSampler 是整个工作流中参数最多的节点也是决定图片“风格”和“质量”的关键节点。拿 CFG 来举例。CFG 中文一般叫“提示词引导系数”它控制图像与提示词的贴合程度。当 CFG 为 1 时模型几乎不看提示词图片基本是随机内容当 CFG 为 7 时模型的生成内容会和提示词高度相关当 CFG 达到 16 以上图像可能会出现明显的颜色过饱和和边缘伪影。Steps 和 Denoise 也需要一起理解。Steps 是扩散去噪的总步数Denoise 是实际执行的去噪比例。文生图时 Denoise 为 1表示完整执行全部去噪流程。图生图时 Denoise 为 0.5表示只做一半去噪流程这样既能改变风格又保留原图大致轮廓。6.5 VAE Decode从潜空间回到像素潜空间图像是一堆数值张量人类看不懂。VAE Decode 的角色是把这个张量还原成一张 RGB 图像。这个节点本身没有太多参数但它与图像质量直接相关。如果 Checkpoint 自带的 VAE 效果不佳你可以下载经过优化的 VAE 文件放到models/vae目录然后单独添加 Load VAE 节点加载它再接入 VAE Decode。很多老玩家都遇到过“脸部模糊”或者“颜色灰暗”的图片换一个更清晰的 VAE 往往能明显改善。7. 常见问题排查节点报错与运行失败怎么办下面把新手阶段最容易遇到的报错场景列成一张排查表。这张表不覆盖所有错误但覆盖了 90% 的新手问题。问题现象可能原因排查方式解决方案导入工作流后节点全部红色使用了你本地未安装的自定义节点看红色节点名称检查是否缺失插件用 ComfyUI Manager 安装缺失节点或安装工作流作者指定插件提示 Prompt outputs failed validation某个节点输入输出连接不完整检查每个节点的输入端是否全部接线按报错提示找到对应节点补齐缺失连接节点提示 CUDA out of memory显存不足观察任务管理器显存占用降低分辨率、减小 batch_size、关闭后台程序或调大虚拟内存生成图片是全黑VAE 缺失或加载了不兼容 VAE检查 VAE 连线尝试更换 Checkpoint 内置 VAE单独加载一个正常的 VAE 文件接入 VAE Decode模型在节点下拉框中不显示模型没有放到正确目录打开 models/checkpoints 查看文件是否存在把模型文件放到 models/checkpoints 后点击刷新生成速度特别慢采样步数过高或未启用 GPU 加速查看启动日志中的 device 信息确认 PyTorch 启用了 CUDA降低 steps 和分辨率提示 node ... failed to execute节点内部执行异常点击红色节点阅读底部报错堆栈根据堆栈找具体原因通常和输入类型不匹配或模型缺失有关这里要特别强调一个习惯学会看日志。ComfyUI 启动后终端窗口里会持续输出运行日志。遇到任何问题第一件事就是把终端滚动到最底部看红色的 ERROR 或 Traceback 信息。很多你在界面里看不到的细节日志里都有。另一个实用习惯是加载别人分享的工作流 JSON 时如果大量节点提示错误先别急着删除。多数情况下这是因为缺失了某个自定义节点包。安装 ComfyUI Manager一个管理自定义节点的插件后可以在界面上自动检测并安装缺失节点这个操作对新手非常友好。如果使用了整合包注意不要随意升级核心依赖。整合包作者在打包时做了大量兼容性测试你单独升级 PyTorch 或某个 Python 库很可能导致整个环境跑不起来。想更新 ComfyUI 本体优先使用整合包自带的更新脚本。8. 从文生图到复杂工作流插件、模型和进阶方向基础文生图工作流跑通之后你可能会觉得这个流程和 WebUI 也没差太多为什么要用 ComfyUI这个问题的答案在工作流稍微变复杂一点之后才会显现。8.1 学会改别人做好的工作流现在社区里已经有非常多高质量工作流覆盖电商模特换装、头像定制、室内设计、IP 形象生成、视频风格化等垂类场景。下载一个 JSON 文件在 ComfyUI 里打开你会发现里面可能有三四十个节点。但不管多复杂的工作流拆开看核心仍然是你刚才学的那些基础节点。剩下的各种节点要么是在生成前做图像预处理要么是在生成后做细节增强要么是并行生成了多份结果再合成。所以新手进阶的第一阶段不是自己从零造工作流而是下载一个别人制作的工作流 JSON。逐个节点查看观察它的模型路径和参数设置。用 ComfyUI Manager 补全缺失的自定义节点。改提示词、改模型、调采样器参数看看每个节点对结果的影响。把改动后的工作流另存为一份自己的 JSON。这个流程走完五六个工作流之后你对节点的理解会超过大多数只用 WebUI 的用户。8.2 插件生态值得关注什么ComfyUI 之所以扩展能力强靠的是自定义节点生态。比较常见的扩展方向包括ControlNet 相关节点用于姿态控制、边缘控制、深度图控制。做 AI 摄影、角色一致性非常有用。LoRA 加载器单独加载 LoRA 模型用来调整风格或人物特征。底模搭配 LoRA 已经是现在的主流玩法。Upscale 放大模型节点比如 ESRGAN 系列用低分辨率出图后做清晰度增强。视频生成相关节点社区已经出现不少在 ComfyUI 里直接跑视频生成模型的方案。对新手来说不建议一上来就装几十个插件。插件越多启动越慢节点搜索越乱出错概率也越高。建议先用官方默认节点把流程跑熟练再根据实际需求逐步添加。8.3 显存不够怎么办显存焦虑是新手最普遍的问题。先说结论如果你暂时只有 6GB 或 8GB 显存也能做大部分文生图和图生图但不要追求大尺寸直出。最常用的方案是“小图生成 放大工作流”先用 512 或 768 的尺寸生成再用放大节点成倍提升分辨率。这种方案的逻辑是小尺寸下模型不容易出错细节结构也更稳定放大节点只负责补充高清细节不会改变你的构图。最终效果甚至比直接大尺寸生成更好因为直接大尺寸生成对小显存机器来说很容易爆显存或速度极慢。9. 最后给新手的实在建议这篇内容写到这里没有推荐你去记几百个节点的功能也没有让你背各种采样器参数表。对新手来说最重要的就是先把下面这条链路刻在脑海里加载底模 - 编码提示词 - 创建潜空间画布 - 采样去噪 - 解码像素图 - 保存图片只要这条链路清晰ComfyUI 对你就不再是一堆乱糟糟的节点而是一条可以自由改装的流水线。你在这个基础之上加一个 LoRA就是风格增强加一个 ControlNet就是姿态控制替换成图生图节点就是局部重绘。如果你的朋友也想学 ComfyUI可以请他先在自己电脑上把“加载模型、写提示词、点执行”这个最短路径跑通再回头理解节点之间的关系。很多看起来复杂的报错往往只是模型路径不对、插件没装、连线没接完整这三类问题。下一步的实践路径也很简单打开 ComfyUI加载默认工作流改动几个参数看看结果有什么变化。找一个你感兴趣的工作流把它拆开一个一个节点地看。剩下的一切都可以在一次次生成和报错中慢慢学会。
返回列表