1. 项目概述为什么选择ComfyUI作为你的AI绘画主力工具如果你已经玩过一段时间的Stable Diffusion大概率已经对WebUI也就是大家常说的AUTOMATIC1111非常熟悉了。它像一间装修好的精装房所有功能都摆在明面上点几下鼠标就能出图上手确实快。但当你想要更精细地控制画面的每一个细节或者想复现某个大神的神奇效果时是不是常常感到力不从心参数调来调去总感觉隔着一层纱无法真正“掌控”AI。这时你就需要一个更强大、更底层的工具——ComfyUI。ComfyUI是什么简单说它是一个基于节点Node和流程Workflow的Stable Diffusion图形化界面。它把AI绘画的整个生成过程从读取模型、输入提示词、到采样、放大、后期处理都拆解成一个个可视化的功能模块。你需要像搭积木一样用连线把这些模块按逻辑连接起来形成一个完整的“工作流”。这种方式初看可能有点复杂但它带来的好处是革命性的流程完全透明、控制极度精细、效果高度可复现。任何一个复杂的特效只要保存了工作流文件你或别人就能100%还原。这对于学习原理、商业出图、乃至二次开发都是WebUI难以比拟的优势。网上很多教程一上来就教你怎么安装、怎么点按钮但我觉得在动手之前先理解“为什么”更重要。ComfyUI的核心价值在于它解构了“黑箱”。在WebUI里你点一下“生成”后台发生了什么你并不完全清楚。而在ComfyUI里数据潜空间图像、条件信息如何从模型流向VAE如何被采样器一步步去噪都清晰可见。这不仅能帮你排查问题比如为什么画面糊了更能让你真正理解Stable Diffusion的工作原理从而从“抽卡玩家”进阶为“导演”。所以这篇教程的目标读者是那些不满足于简单抽卡希望深入理解并掌控AI绘画流程的创作者、技术爱好者甚至是希望将AI绘画流程产品化的开发者。我会从最基础的安装部署讲起带你一步步搭建第一个工作流并深入核心模块最终让你能自由地搭建、调试甚至创造属于自己的复杂工作流。准备好了吗我们开始搭积木。2. 环境部署与整合包选择避开初学者的第一个大坑万事开头难而ComfyUI的“开头”就是安装。官方提供了最纯净的Git克隆安装方式但这对于大多数国内用户尤其是新手来说充满了挑战需要配置Python环境、处理各种依赖冲突、解决网络问题下载模型……一个环节出错就可能卡住半天。因此对于绝大多数初学者我强烈推荐使用整合包。它帮你打包好了所有环境、依赖甚至预置了常用插件和模型解压即用。2.1 主流整合包横向对比与选择目前市面上最主流的整合包是“秋叶大佬”制作的ComfyUI整合包。它更新及时对中文用户友好预置了大量实用插件和中文翻译是入门首选。但除了秋叶包你也应该知道其他选择官方Git源码最纯净适合开发者或追求极致干净环境的用户。你需要自行安装Python推荐3.10-3.11版本、Git并熟悉命令行操作。优点是能第一时间体验最新特性缺点是所有东西都要自己来。秋叶ComfyUI整合包国内用户的“瑞士军刀”。它通常包含一个启动器可以一键更新、管理插件、切换版本。预置了如ComfyUI-Manager插件管理器、Impact Pack功能增强节点包等核心插件省去了大量配置时间。对于99%的初学者我的建议是无脑选这个。你可以在秋叶的B站主页或相关社群找到下载链接。其他社区整合包例如一些针对特定显卡优化如AMD显卡或预置了特定工作流的整合包。如果你有特殊需求比如使用AMD RX 6000/7000系列显卡可以寻找对应的版本。注意无论选择哪个整合包请务必从可信的来源下载。一些来路不明的整合包可能捆绑恶意软件或挖矿程序。秋叶等知名作者的发布渠道相对安全。2.2 详细安装步骤与首次启动假设你选择了秋叶整合包安装步骤如下下载与解压下载整合包的压缩文件通常是一个几GB的.7z或.zip文件。将其解压到一个英文路径的文件夹中例如D:\AI_Tools\ComfyUI。路径中绝对不能有中文或特殊字符这是避免许多奇怪错误的第一步。放置基础模型ComfyUI本身不包含任何模型。你需要将已有的Stable Diffusion模型文件放入指定文件夹。打开解压后的目录找到models/checkpoints文件夹。将你的.safetensors或.ckpt模型文件如sd_xl_base_1.0.safetensors复制到这里。首次启动找到目录中的run_nvidia_gpu.batN卡用户或run_cpu.bat无显卡或A卡用户尝试文件。双击运行。首次启动会相对较慢因为需要初始化环境并可能下载一些必要的依赖文件。命令行窗口会滚动大量信息只要没有出现红色的ERROR并最终停止显示类似“To see the GUI go to: http://127.0.0.1:8188”的提示就表示启动成功。访问界面打开浏览器推荐Chrome或Edge在地址栏输入http://127.0.0.1:8188回车。你应该能看到ComfyUI的界面一个灰色的画布右侧是节点选择菜单。实操心得第一次启动时命令行可能会卡在下载clip-vit-large-patch14等文本编码器模型的地方。这是因为网络问题。解决方法有两种一是使用科学上网工具此处不展开二是手动下载你可以去Hugging Face等模型站找到这些文件放入models/clip目录。整合包通常已经预下载了部分所以这个问题可能不会遇到。2.3 目录结构扫盲你的模型和插件该放哪里理解ComfyUI的目录结构能让你在未来管理资源时得心应手。核心文件夹如下models/所有模型的家。checkpoints/大模型存放处。就是你的SD 1.5, SDXL, Flux等核心模型。loras/LoRA模型存放处。那些文件大小通常在几十到几百MB的微调模型。vae/VAE模型存放处。用于改善颜色和细节。embeddings/Textual Inversion文本反转模型存放处通常是.pt或.safetensors文件。controlnet/ControlNet模型存放处。upscale_models/放大模型存放处如ESRGAN、Real-ESRGAN。output/默认的图片输出目录。你生成的所有图片都会按日期存放在这里。comfyui/WebUI目录里面是前端页面文件。custom_nodes/自定义插件节点目录。这是ComfyUI生态的灵魂。所有你通过ComfyUI-Manager安装或手动下载的插件都会放在这里。每个插件一个文件夹。input/你可以把需要处理的图片放在这里方便工作流读取。记住这个结构以后下载了任何新模型或插件都知道该往哪里扔而不是一脸茫然。3. 核心界面与第一个工作流从“Hello World”开始理解节点启动ComfyUI面对空白的画布和右侧密密麻麻的节点列表新手很容易懵。别怕我们一步步来。核心界面主要分为三块左侧是节点图工作流画布右侧是节点列表节点选择器上方是菜单栏。3.1 界面元素快速上手画布你的主要工作区。在这里拖拽、连接节点。右键点击画布可以打开节点菜单等同于点击右侧的“Add Node”。按住鼠标中键可以拖动画布滚轮缩放。节点列表按功能分类了所有可用的节点。最常用的是Load Checkpoint加载模型、CLIP Text Encode编码提示词、KSampler采样器等。菜单栏几个关键按钮Queue Prompt运行当前工作流。Save/Load保存或加载工作流.json或.png文件。ComfyUI的神奇之处在于它可以把整个工作流嵌入到生成的图片中。加载一张带嵌入工作流的图片就能完全复现生成过程。Clear清空画布。Extra Options一些额外设置如设置输出目录。3.2 搭建最基础的文生图工作流让我们手动搭建一个最基础的工作流这比直接加载现成的更能帮你理解逻辑链条。添加模型加载器在右侧节点列表找到Load Checkpoint点击它画布上会出现一个节点。这个节点负责载入我们放在checkpoints文件夹里的大模型。添加提示词编码器找到CLIP Text Encode点击添加。注意这个节点有两个输入框clip和text。我们需要两个这样的节点一个用于正向提示词positive一个用于负向提示词negative。连接模型与编码器点击Load Checkpoint节点上的CLIP输出端口一个圆圈拖出一条线连接到两个CLIP Text Encode节点的clip输入端口。这样编码器就知道使用哪个模型的CLIP来理解你的文字。输入提示词在两个CLIP Text Encode节点的text输入框里分别输入你的正向和负向提示词。例如正向“masterpiece, best quality, 1girl, beautiful, detailed eyes”负向“worst quality, low quality, blurry”。添加采样器找到KSampler节点添加。这是核心中的核心负责图像的迭代去噪生成。我们需要连接它的几个关键输入model连接到Load Checkpoint节点的MODEL输出。positive连接到正向CLIP Text Encode节点的CONDITIONING输出。negative连接到负向CLIP Text Encode节点的CONDITIONING输出。latent_image这里需要一张初始的“噪声图”。找到Empty Latent Image节点添加并设置你想要的图片宽高如512x512。将其LATENT输出连接到KSampler的latent_image。添加VAE解码器采样器输出的是“潜空间”图像人眼看不懂。需要VAE将其解码为像素图。找到VAE Decode节点添加。samples连接到KSampler节点的LATENT输出。vae连接到Load Checkpoint节点的VAE输出。添加图像保存/预览最后找到Save Image节点添加将其image输入连接到VAE Decode节点的IMAGE输出。你也可以同时添加一个Preview Image节点并联到同一输出用于在界面内快速预览。现在你的画布上应该有一个完整链路了Load Checkpoint-CLIP Text Encode(x2) -KSampler-Empty Latent Image-VAE Decode-Save Image。点击顶部的Queue Prompt如果一切正常你将在output文件夹和Preview Image节点上看到生成的图片。踩坑实录第一次搭建最常见的错误是“连线连错了”。ComfyUI的端口有类型比如MODEL,CONDITIONING,LATENT,IMAGE类型不匹配的端口是无法连接的连线会显示红色。如果运行报错首先检查所有连线是否正确特别是KSampler的model,positive,negative,latent_image这四个输入是否都接对了。4. 核心节点深度解析掌控图像生成的每一个齿轮搭建了第一个工作流你可能觉得和WebUI点一下生成区别不大。别急ComfyUI的威力在于对每个“齿轮”的精细控制。我们来深入几个核心节点。4.1 KSampler采样器的艺术与科学KSampler是工作流的心脏。它的参数直接决定了图像的质量、速度和风格。steps采样步数通俗讲AI从一团噪声“想象”出最终图片需要走多少步。步数越多细节可能越丰富但耗时越长且收益递减。对于SDXL模型20-30步通常是质量和效率的平衡点。实操技巧不要无脑拉高步数。先用20步测试构图和内容满意后再提高到30-40步精修。cfg分类器自由引导尺度控制AI“听从”你提示词的程度。值越低如1-3创意自由度越高画面可能更艺术但偏离提示值越高如7-10越严格遵循提示词但过高15可能导致颜色过饱和、画面僵硬。SDXL推荐范围在5-8之间。这是一个需要反复调试的关键参数。sampler_name采样器不同的数学求解方法。新手可以记住几个常用选择Euler a创意性强出图快适合探索性生成但可能不稳定。DPM 2M Karras当前的主流推荐在速度和质量上取得了很好的平衡细节扎实。DDIM较老的采样器速度慢但稳定适合需要高度确定性复现的场景。scheduler调度器控制噪声在每一步减少的节奏。Normal是线性Karras在开始和结束时步长变化更激进通常能带来更好的细节。DPM系列的采样器通常搭配Karras调度器。参数设置示例对于一张希望细节丰富的风景图我常用的配置是sampler: DPM 2M Karras,scheduler: Karras,steps: 30,cfg: 7。这是一个非常稳健的起点。4.2 CLIP Text Encode提示词的精炼与组合在ComfyUI里提示词的处理更灵活。你可以使用多个CLIP Text Encode节点然后通过Conditioning Combine或Conditioning Set Area等节点来混合不同的提示词实现区域化控制或风格融合。进阶技巧提示词权重与交替权重语法和WebUI类似(word:1.2)表示将该词权重提高至1.2倍。ComfyUI也支持(word),[word]等语法。交替使用AND关键字例如“a cat AND a dog”CLIP会尝试同时满足两个概念可能生成猫狗混合的奇幻生物。这在需要融合多个明确概念时非常有用。分区域编码这是ComfyUI的高级玩法。你可以用两个编码器一个编码“a beautiful girl”另一个编码“a detailed background”然后通过Conditioning Set Area节点指定前一个条件作用于画面中央通过set_area设置坐标和宽高后一个作用于整个画面或四周从而实现人物和背景的分离控制。这为精准构图打开了大门。4.3 Load Checkpoint 与 VAE模型与“显像液”Load Checkpoint除了加载基础模型它还能自动加载与之同名的VAE。如果你有专门的VAE文件如vae-ft-mse-840000-ema-pruned.safetensors可以将其放入models/vae文件夹并在节点上手动选择这通常能获得更好的色彩和细节。VAE的作用你可以把VAE理解为“显像液”。采样器在潜空间一个压缩的、人眼无法理解的空间里绘制好了图像VAE负责将其“冲洗”成我们能看到的RGB像素图。一个好的VAE能改善画面灰暗、细节模糊的问题。对于SD 1.5模型加载一个优质的VAE是画质提升的捷径。4.4 Latent 与 Image 的转换潜空间操作ComfyUI允许你直接操作“潜空间”图像这是实现很多高级效果的基础。VAE Encode将一张普通的像素图IMAGE编码为潜空间表示LATENT。这常用于图生图img2img工作流。VAE Decode将潜空间图像解码为像素图我们之前用过。Latent Composite可以在潜空间里进行图像的混合、遮罩操作比在像素空间操作更高效且能更好地保持风格一致性。例如你可以将一张图的潜空间背景和另一张图的潜空间人物合成。理解这些节点你就掌握了ComfyUI最核心的生成引擎。接下来我们要用插件来武装它。5. 生态扩展必装插件与工作流管理ComfyUI的强大一半在于其节点化的工作流设计另一半则在于其蓬勃发展的插件Custom Nodes生态。没有插件ComfyUI只是一个精致的玩具有了插件它才是生产力怪兽。5.1 插件安装与管理ComfyUI-Manager手动安装插件需要下载代码、处理依赖非常麻烦。因此安装完ComfyUI后第一件事就是确保ComfyUI-Manager插件已经就绪。秋叶整合包通常已预装。界面启动ComfyUI后你应该能在右侧节点列表看到一个单独的Manager分类或者在画布空白处右键菜单里也有Manager选项。功能Install Custom Nodes浏览和安装海量社区插件。你可以搜索插件名查看描述、更新日期和安装量。点击安装管理器会自动处理一切。Update All一键更新所有已安装的插件和ComfyUI本体如果整合包支持。Model/Node List管理已下载的模型和已安装的节点列表。实操心得安装插件时偶尔会因网络问题失败。如果遇到可以尝试多次点击或者去插件的GitHub页面按照README中的手动安装说明操作通常就是克隆到custom_nodes文件夹。安装后必须重启ComfyUI关闭命令行窗口再重新运行.bat文件新节点才会生效。5.2 新手必装插件推荐插件成千上万新手容易眼花缭乱。我为你筛选了几个几乎必备的插件能极大提升体验和效率ComfyUI-Manager刚才说了插件管理器必装。Impact Pack由impact大佬制作的功能巨无霸包。它集成了人脸修复ADetailer的ComfyUI版本、分段SAM、遮罩处理、图像批量处理、节点工具链等无数实用功能。很多高级工作流都依赖这个包。强烈建议安装。Efficiency Nodes效率节点包。提供了一些能优化工作流、减少显存占用、提升生成速度的节点比如KSampler (Efficient)。WAS Node Suite另一个功能强大的扩展包提供了大量图像处理、文本处理、逻辑判断节点是构建复杂条件工作流的利器。ControlNet Preprocessors如果你想在ComfyUI里使用ControlNet你肯定想需要安装这个包来获取Canny、Depth、OpenPose等预处理节点。通常和ComfyUI-Impact-Pack一起安装。安装完这些你的节点列表会丰富很多。别怕不用一下子全学会用到一个学一个。5.3 工作流的加载、保存与分享这是ComfyUI最迷人的特性之一。保存工作流点击菜单栏Save会保存一个.json文件。这个文件完整记录了所有节点、连线、参数。加载工作流点击Load选择.json文件即可完全还原。嵌入工作流到图片当你生成图片时如果工作流中有Save Image节点ComfyUI默认会将完整工作流数据以元数据形式嵌入到PNG图片中。你可以用Load按钮旁边的Load Image按钮直接上传一张由ComfyUI生成的图片它就能自动读取并重建出整个工作流这对于学习、分享和复现效果至关重要。分享工作流你可以将.json文件分享给别人。更酷的是很多社区如Civitai、OpenArt支持直接上传.png图片其他人下载后就能一键加载你的工作流和所有参数。注意事项工作流文件.json只记录节点和参数不包含模型。如果你分享的工作流用到了某个特定的LoRA或ControlNet模型对方也需要有相同的模型放在正确目录下否则会加载失败。通常在分享工作流时最好注明所需模型。6. 构建进阶工作流从文生图到可控生成掌握了基础我们来搭建几个更实用、更强大的工作流体验ComfyUI的模块化威力。6.1 图生图img2img与潜空间噪声重绘图生图的核心思想是将一张现有图片编码到潜空间并加入一定噪声然后让采样器从这个“带噪的潜空间图像”开始去噪从而在保留原图大致构图和内容的基础上进行变化。工作流搭建步骤在基础文生图工作流上修改。删除Empty Latent Image节点。添加Load Image节点加载你的输入图片。添加VAE Encode节点将Load Image输出的IMAGE连接到VAE Encode的pixels将Load Checkpoint输出的VAE连接到vae。输出是LATENT。添加VAE Encode For Inpainting节点如果有这是对图生图的优化或直接使用上一步的LATENT。关键一步添加Add Noise节点。将上一步的LATENT连接到latent并设置noise_seed一个随机种子和strength强度0-1之间。strength决定了加入多少噪声也就是“改变”的程度。1.0等于完全重画等同于文生图0.1则只做微调。将Add Noise节点输出的LATENT连接到KSampler的latent_image。调整KSampler的steps和denoise参数。denoise去噪强度通常与Add Noise的strength联动控制最终保留多少原图信息。这个工作流让你可以基于一张草图、一张照片进行AI再创作是实用性极强的功能。6.2 使用LoRA与Embedding注入特定风格与概念LoRA和Textual InversionEmbedding是微调模型、实现特定风格或人物的轻量级方法。在ComfyUI中使用它们非常直观。使用LoRA确保你的LoRA模型文件.safetensors放在models/loras目录。在节点列表中找到LoraLoader节点添加到画布。连接方式将Load Checkpoint节点的MODEL和CLIP输出分别连接到LoraLoader的model和clip输入。在LoraLoader节点上选择你的LoRA文件名并设置strength强度通常0.5-1.0。将LoraLoader输出的MODEL和CLIP连接到后续的CLIP Text Encode和KSampler。注意一个工作流可以串联多个LoraLoader来混合多个LoRA的效果但需要注意强度叠加可能引发冲突。使用Embedding确保你的Embedding文件.pt或.safetensors放在models/embeddings目录。在CLIP Text Encode节点的提示词中直接使用Embedding的文件名不带后缀作为触发词即可例如“embedding:EasyNegative”。ComfyUI会自动加载并应用它。6.3 集成ControlNet精准控制构图与姿态ControlNet是进行可控生成的神器。在ComfyUI中它被节点化控制逻辑更清晰。以Canny边缘检测为例预处理添加Load Image节点加载参考图。添加Canny节点通常在ControlNet Preprocessors类别下连接图片调整low_threshold和high_threshold参数获取理想的边缘图。输出是IMAGE。加载ControlNet模型添加ControlNetLoader节点从models/controlnet目录选择对应的Canny模型如control_v11p_sd15_canny.pth。应用ControlNet添加Apply ControlNet节点。这个节点需要三个输入conditioning连接你的正向CLIP Text Encode节点的CONDITIONING输出。control_net连接ControlNetLoader的输出。image连接Canny预处理节点输出的边缘图。连接采样器将Apply ControlNet节点输出的CONDITIONING连接到KSampler的positive输入替换掉原来直接连CLIP的线。负向提示词一般不需要接ControlNet。调节强度在Apply ControlNet节点上有strength强度和start_percent/end_percent控制网络生效的步数范围参数。强度通常从0.5开始调试。通过组合不同的预处理器和ControlNet模型你可以实现姿态控制OpenPose、深度控制Depth、语义分割控制Seg等让AI完全按照你的构图草稿来绘画。7. 高效技巧与常见问题排雷在熟练搭建工作流后如何更高效地使用和解决常见问题是区分普通用户和高手的关键。7.1 工作流优化与组织技巧使用节点组Group对于复杂工作流你可以框选多个节点右键选择“Group”创建一个组并为其命名如“提示词编码区”、“ControlNet模块”。这能极大提高画布的可读性和可维护性。双击组可以折叠/展开。使用注释Note右键画布选择“Add Sticky Note”可以添加彩色便签用于记录某个模块的功能、参数说明或待办事项。善用“Reroute”节点当连线过长、交叉混乱时可以添加Reroute节点在节点搜索框输入即可找到。它像一个连接点可以让连线拐弯使流程图更整洁。备份与版本管理定期保存你的核心工作流.json文件。你可以为不同用途人像、风景、产品图建立不同的模板文件快速调用。7.2 性能调优与显存管理ComfyUI以其高效和低显存占用著称但复杂工作流仍可能爆显存。启用CPU卸载对于显存小的显卡如8GB可以在KSampler节点后使用VAE Decode (tiled)节点进行分块解码或在Load Checkpoint节点上使用“Load Checkpoint With Config (Pick)”等支持CPU卸载的变体节点将部分模型层暂时移到内存以时间换空间。使用Efficiency Nodes安装Efficiency Nodes插件后使用其提供的KSampler (Efficient)它内部做了一些优化。还可以使用Model Merge (Block Weight)等节点在生成前动态调整模型有时能减少开销。清理缓存长时间运行后ComfyUI可能会缓存一些数据。如果感觉越来越卡可以重启ComfyUI。7.3 常见错误与解决方案实录错误提示“KeyError: ‘model’或“KeyError: ‘clip’”原因工作流.json文件损坏或从一个版本迁移到另一个版本时节点不兼容。解决尝试用文本编辑器打开.json文件检查结构是否完整。更简单的方法是重新手动搭建关键部分或者寻找更新版本的工作流。运行后无任何反应不报错也不出图原因最常见的是工作流中存在环状循环例如一个节点的输出又间接连回了自己的输入导致逻辑死锁。解决仔细检查所有连线确保数据流向是单向的从模型加载开始经过编码、采样、解码最终到保存没有形成回路。生成图片全黑、全灰或色彩异常原因VAE不匹配或未加载。可能是用了针对SD1.5的VAE去解码SDXL的潜空间或者VAE模型文件损坏。解决检查Load Checkpoint节点是否正确加载了VAE或尝试在VAE Decode节点手动选择另一个VAE模型如vae-ft-mse-840000-ema-pruned.safetensors。插件安装后节点列表中找不到原因安装失败或依赖未正确安装或需要重启ComfyUI。解决首先重启ComfyUI。如果还不行打开命令行窗口查看启动时是否有该插件的错误信息。根据错误信息去插件的GitHub页面查看安装要求可能需要手动安装Python依赖在ComfyUI根目录的python_embeded文件夹下运行pip install。使用ControlNet后画面扭曲或效果不明显原因ControlNet强度strength设置不当或预处理图像如Canny边缘太强/太弱。解决从较低的强度如0.4开始尝试。仔细调整预处理器的参数确保生成的控制图边缘、深度图等清晰且只包含你希望控制的主要特征噪声不要太多。ComfyUI的学习曲线确实比WebUI陡峭但一旦你跨越了最初的障碍理解了节点化思维的魅力你就会发现一个前所未有的、高度自由和可控的AI绘画世界。它不再是一个“抽卡”按钮而是一个你可以亲手组装和调试的精密仪器。从复现别人的工作流开始到修改参数再到从零搭建自己的流程每一步都是对AI绘画更深层次的理解。希望这篇教程能成为你探索这个世界的可靠地图。剩下的就是动手去搭去试去创造吧。当你成功搭建出第一个复杂而优雅的工作流时那种成就感无与伦比。