十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从Stable Diffusion到ComfyUI:掌握节点式AI图像生成工作流

从Stable Diffusion到ComfyUI:掌握节点式AI图像生成工作流 在 AI 图像和视频生成领域Stable Diffusion 以其强大的开源生态和灵活的定制能力成为了许多开发者和创作者的首选。然而其传统的 WebUI 界面在处理复杂、多步骤的生成任务时往往显得力不从心尤其是在需要精确控制生成流程、串联多个模型或实现批量化、自动化生产的场景下。这时一个基于节点式可视化编程的界面——ComfyUI就成为了进阶用户的必然选择。它并非要取代 WebUI而是提供了一种更接近底层逻辑、更可控、也更强大的工作流构建方式。对于已经熟悉 Stable Diffusion 基本概念并希望深入掌握 AI 生成技术、构建可复用自动化流程甚至进行二次开发的用户来说学习 ComfyUI 是提升技术栈深度和工程化能力的关键一步。ComfyUI 的核心价值在于其“工作流”思维。它将 Stable Diffusion 的整个生成过程从文本编码、模型加载、潜在空间采样、VAE 解码到后期处理拆解为一个个独立的、可连接的“节点”。用户通过拖拽和连接这些节点可以清晰地看到数据如图像、潜在特征、条件在整个管道中的流动路径。这种可视化不仅让复杂的生成逻辑一目了然更重要的是它允许你对流程中的任何一个环节进行精细调整、替换或扩展。例如你可以轻松地在一个流程中串联多个不同的 LoRA 模型或者将图像生成、高清修复、人脸修复、风格迁移等多个步骤整合到一个自动化工作流中。对于新手而言这听起来可能有些复杂但一旦理解了其背后的逻辑你将获得远超图形界面的自由度和控制力。1. 理解 ComfyUI从图形界面到可编程工作流在决定投入时间学习之前我们需要明确 ComfyUI 究竟是什么以及它与我们熟悉的 AUTOMATIC1111 WebUI 有何本质区别。1.1 ComfyUI 的核心节点与数据流ComfyUI 是一个将 Stable Diffusion 模型推理过程可视化为节点图的本地应用程序。每个节点代表一个具体的操作或计算单元例如加载模型(Load Checkpoint)从硬盘加载 Stable Diffusion 模型文件.safetensors 或 .ckpt。文本编码(CLIP Text Encode)将你的提示词Prompt和负面提示词Negative Prompt编码成模型能理解的向量。采样器(KSampler)在潜在空间中进行迭代去噪这是生成图像的核心步骤。VAE 解码(VAE Decode)将采样器输出的潜在特征解码成最终的 RGB 图像。图像保存/预览(Save Image,Preview Image)输出结果。节点之间通过“插座”连接数据如图像张量、条件向量、模型参数像水流一样从一个节点流向另一个节点。这种设计有几个决定性优势透明性整个生成流程完全可视化你清楚地知道每一步在做什么数据如何变化。可复用性构建好的工作流可以保存为.json文件在任何安装了相同模型的 ComfyUI 环境中一键加载完美复现结果。可扩展性社区有海量的自定义节点插件可以轻松实现超分辨率、人脸修复、ControlNet、IP-Adapter 等高级功能的无缝集成。稳定性与性能由于其轻量化和直接调用底层库如 torch的特性在相同硬件下ComfyUI 通常比 WebUI 更节省内存生成速度也可能更快。1.2 ComfyUI 与 WebUI定位与选择对于初学者一个常见的困惑是我应该直接学 ComfyUI 吗下表可以帮助你做出判断特性维度AUTOMATIC1111 WebUIComfyUI学习建议上手难度低。图形化按钮和滑块直观易用。中高。需要理解节点、数据流和基本概念。新手建议先通过 WebUI 熟悉文生图、图生图、LoRA、ControlNet 等基本概念和操作再过渡到 ComfyUI。工作流控制弱。流程固定多步骤任务需手动切换标签页。极强。可自由设计、保存和分享复杂多步骤流程。进阶用户必学当你需要固定流程、批量处理或研究生成原理时ComfyUI 是唯一选择。可复现性一般。依赖界面状态精确复现复杂设置较难。完美。工作流.json文件记录了所有节点和参数。团队协作与生产ComfyUI 的工作流文件是共享和部署自动化流程的最佳载体。资源占用较高。界面功能丰富内存开销相对大。较低。界面简洁更专注于计算本身。硬件受限用户如果 WebUI 经常爆显存可以尝试 ComfyUI可能获得更好的体验。社区生态极其丰富。插件、模型、教程海量。快速增长中。自定义节点生态非常活跃但整体数量暂不及 WebUI。探索新功能许多前沿研究如 AnimateDiff 视频生成会优先或仅提供 ComfyUI 工作流。学习目标快速生成图片体验 AI 绘画。掌握 AI 生成管线实现自动化与定制化。目标导向如果目标是“用 AI 画画”WebUI 足够如果目标是“理解并驾驭 AI 生成”必须学 ComfyUI。结论是ComfyUI 不是 WebUI 的替代品而是互补和进阶工具。对于希望深入技术底层、构建稳定生产流程或进行二次开发的用户学习 ComfyUI 是必经之路。2. 环境准备从零部署 ComfyUI在开始构建工作流之前一个稳定、功能齐全的运行环境是基础。对于 Windows 用户使用社区维护的整合包是最快捷的方式。2.1 硬件与软件基础要求操作系统Windows 10/11 64位或 Linux/macOS。显卡NVIDIA 显卡是首选因为 Stable Diffusion 严重依赖 CUDA 进行加速。显存建议6GB 以上4GB 显存可运行基础模型但限制较多。AMD 显卡可通过 ROCm 支持但配置更复杂。内存16GB 或以上。存储空间至少 20GB 可用空间用于存放 ComfyUI 本体、Python 环境、基础模型和自定义节点。2.2 使用秋叶大佬的整合包进行安装推荐新手对于绝大多数国内用户最省心的方法是使用“秋叶aaaki”制作的 ComfyUI 整合包。它预置了 Python、PyTorch、常用自定义节点和启动器解压即用。获取整合包在可靠的社区或发布页面如 B站 秋叶aaaki 的动态找到最新版的ComfyUI整合包下载链接。通常是一个压缩包文件。解压与放置将下载的压缩包解压到一个英文路径的文件夹中例如D:\AI_Tools\ComfyUI。路径中不要包含中文或特殊字符避免潜在问题。放置模型ComfyUI 的模型文件需要放在特定目录下才能被识别。进入解压后的文件夹找到ComfyUI\models目录。将你的 Stable Diffusion 大模型如sd_xl_base_1.0.safetensors放入checkpoints文件夹。将 VAE 模型放入vae文件夹。将 LoRA 模型放入loras文件夹。将 ControlNet 模型放入controlnet文件夹。其他类型模型如 Upscale、IP-Adapter 等也有对应的文件夹通常整合包已创建好。启动 ComfyUI双击运行启动器或run_nvidia_gpu.bat根据你的整合包说明。首次启动会较慢因为它需要初始化环境。等待命令行窗口出现类似“Running on local URL: http://127.0.0.1:8188”的信息。访问界面打开浏览器输入http://127.0.0.1:8188即可看到 ComfyUI 的界面。注意整合包通常更新较慢。如果你需要最新的 ComfyUI 特性或自定义节点可能需要后续通过 ComfyUI Manager 更新或学习手动部署。2.3 基础界面与操作速览成功启动后你会看到一个近乎空白的界面右侧是节点选择面板。这是 ComfyUI 的起点。工作区中间大片空白区域用于放置和连接节点。节点面板右侧列表按类别loaders,conditioning,sampling等列出了所有可用节点。右键点击工作区也可以弹出此菜单。基本操作添加节点在右侧面板点击或在工作区右键 -Add Node。连接节点点击一个节点的输出“插座”小圆点拖拽到另一个节点的输入“插座”上。移动节点鼠标左键拖动节点。框选多个节点鼠标左键拖拽出一个选择框。删除节点/连接线选中后按Delete键。运行工作流点击右侧的Queue Prompt按钮。保存/加载工作流点击Save或Load按钮工作流会保存为.json文件。3. 构建你的第一个 ComfyUI 工作流文生图理论说再多不如亲手搭建。让我们从最基础的文生图工作流开始理解数据是如何流动的。3.1 核心节点链从提示词到图片一个最简化的文生图工作流包含以下核心节点它们必须按顺序连接Load Checkpoint加载大模型。CLIP Text Encode (Prompt)对正面提示词进行编码。CLIP Text Encode (Negative Prompt)对负面提示词进行编码。Empty Latent Image创建指定尺寸的空白潜在空间图像。KSampler采样器执行去噪生成。VAE Decode将潜在空间数据解码为像素图像。Save Image / Preview Image保存或预览图像。逐步搭建流程添加并配置Load Checkpoint节点从节点面板的loaders类别中找到Load Checkpoint点击添加。在节点的ckpt_name下拉框中选择你放置在models/checkpoints文件夹中的模型文件。添加两个CLIP Text Encode节点从conditioning类别中找到CLIP Text Encode添加两个。将第一个节点的clip输入口连接到Load Checkpoint节点的clip输出口。在第一个节点的text输入框内输入你的正面提示词例如“masterpiece, best quality, 1girl, beautiful, detailed sky”。将第二个节点的clip输入口也连接到Load Checkpoint节点的clip输出口同一个输出口可以连接多个输入。在第二个节点的text输入框内输入负面提示词例如“worst quality, low quality, blurry”。添加Empty Latent Image节点从latent类别中找到Empty Latent Image。设置width和height例如1024和1024。batch_size保持为 1。添加并配置KSampler节点从sampling类别中找到KSampler。进行关键连接model- 连接到Load Checkpoint节点的model输出。positive- 连接到正面CLIP Text Encode节点的CONDITIONING输出。negative- 连接到负面CLIP Text Encode节点的CONDITIONING输出。latent_image- 连接到Empty Latent Image节点的LATENT输出。配置采样参数seed: 随机种子可以固定一个数字如42以便复现。steps: 采样步数例如20。cfg: 分类器自由引导尺度控制提示词相关性例如7.5。sampler_name: 采样器新手可以从euler或dpmpp_2m开始。scheduler: 调度器例如normal。添加VAE Decode节点从latent类别中找到VAE Decode。连接samples- 连接到KSampler节点的LATENT输出。vae- 连接到Load Checkpoint节点的vae输出。添加Save Image节点从image类别中找到Save Image。连接images- 连接到VAE Decode节点的IMAGE输出。你可以配置图片保存的路径前缀和文件名格式。至此你的工作流应该看起来像一条清晰的链条。点击Queue Prompt如果一切正常你将在Save Image节点指定的目录下找到生成的图片或者在Preview Image节点看到预览。3.2 工作流可视化与排错一个正确连接的基础文生图工作流其数据流向应该是线性的、无环的。如果连接错误例如将latent输出连到了clip输入ComfyUI 通常会在运行时报错并在界面上用红色高亮显示问题节点或连接线。首次运行常见问题排查问题现象可能原因检查与解决点击Queue Prompt无反应命令行无报错节点未正确连接形成“死节点”检查每个必要节点是否都连接到主链路上。确保从Load Checkpoint到Save Image是一条完整通路。运行时报错“KeyError: ‘model’ ”等节点间数据类型不匹配仔细检查连接线model连model,clip连clip,latent连latent,image连image。报错“CUDA out of memory”显存不足1. 尝试减小Empty Latent Image中的图像尺寸如 512x512。2. 关闭其他占用显存的程序。3. 在启动器或启动参数中添加--lowvram或--medvram参数。生成的图片全黑或全灰VAE 未正确连接或模型不匹配1. 确认VAE Decode节点的vae输入已连接到Load Checkpoint的vae输出。2. 有些模型需要特定的 VAE尝试在Load VAE节点中显式指定一个 VAE 模型如vae-ft-mse-840000-ema-pruned.safetensors。找不到模型文件模型未放在正确目录确认模型文件.safetensors/.ckpt已放入ComfyUI/models/checkpoints目录并在Load Checkpoint节点的下拉列表中刷新可见。4. 进阶工作流构建集成 LoRA、ControlNet 与高清修复掌握了基础链我们就可以像搭积木一样为工作流添加更多功能模块。4.1 集成 LoRA 模型LoRA 是一种轻量化的模型微调技术用于为生成结果添加特定风格、人物或概念。添加Load LoRA节点在loaders类别中找到它。插入到模型链路中将Load LoRA节点的model输入连接到Load Checkpoint节点的model输出。将Load LoRA节点的clip输入连接到Load Checkpoint节点的clip输出。在lora_name中选择你的 LoRA 文件需放在models/loras目录。设置strength_model和strength_clip通常设为相同的值如0.8。更新后续连接将原来连接到Load Checkpoint节点model和clip输出的线例如去往KSampler和CLIP Text Encode的线断开重新连接到Load LoRA节点的model和clip输出。这样LoRA 的效果就成功注入到了主模型中。4.2 集成 ControlNet 进行构图控制ControlNet 允许你用边缘图、深度图、姿态图等来控制生成图像的构图。准备控制图你需要一张控制图如 Canny 边缘图。可以使用Load Image节点加载。添加Apply ControlNet节点在conditioning类别中找到Apply ControlNet。连接与配置将Apply ControlNet节点的positive输入连接到正面CLIP Text Encode节点的CONDITIONING输出。将Apply ControlNet节点的negative输入连接到负面CLIP Text Encode节点的CONDITIONING输出可选用于对负面条件也施加控制。将Apply ControlNet节点的control_net输入连接到一个Load ControlNet Model节点需提前添加并选择模型如control_v11p_sd15_canny.pth。将Apply ControlNet节点的image输入连接到你的控制图节点的IMAGE输出。设置strength参数控制影响力。更新采样器连接将KSampler的positive输入从原来的CLIP Text Encode节点改接到Apply ControlNet节点的positive输出。4.3 集成高清修复 (Hires. fix / Upscale)在生成小图后使用另一套参数进行放大和细节重塑这是获得高质量大图的关键。在第一次采样后分割流程将KSampler我们称它为“基础采样器”输出的LATENT同时连接给VAE Decode用于预览和另一个Latent Upscale节点。添加Latent Upscale节点在latent类别中。连接其samples输入到基础采样器的LATENT输出。选择放大方法如nearest-exact并设置upscale_by倍数如2。添加第二个KSampler精炼采样器将其latent_image连接到Latent Upscale节点的LATENT输出。model,positive,negative可以复用基础采样器的来源或连接经过 LoRA 处理的模型。关键降低denoise参数例如0.3-0.5这决定了在放大后的潜在图像上“重画”的程度。值越低保留原图结构越多。可以适当减少steps如10-15并微调cfg。最终解码将精炼采样器的LATENT输出连接给最终的VAE Decode和Save Image节点。通过组合这些模块你可以构建出极其复杂和强大的生成管线例如文生图 - 面部修复 - 背景替换 - 风格化 - 高清放大全部自动化完成。5. 高效学习与管理自定义节点、工作流分享与性能优化5.1 使用 ComfyUI Manager 管理自定义节点ComfyUI 的强大离不开海量社区自定义节点。手动安装和管理它们非常麻烦而ComfyUI Manager是这个生态的“应用商店”。安装 ComfyUI Manager如果你的整合包没有预装通常需要手动安装。方法是将ComfyUI-Manager仓库克隆到ComfyUI/custom_nodes目录下然后重启 ComfyUI。使用 Manager重启后界面右侧会出现一个新的Manager按钮。点击进入。Install Custom Nodes浏览和安装社区节点。Update All一键更新所有已安装的节点和 ComfyUI 本身。Installed Custom Nodes管理已安装的节点。推荐安装的节点ComfyUI-Impact-Pack功能巨集包含许多实用节点如预览器、工具节点等。efficiency-nodes-comfyui提供许多能提升工作效率的节点。ComfyUI-Advanced-ControlNet更强大的 ControlNet 节点集。ComfyUI-AnimateDiff-Evolved用于生成视频/动画。5.2 导入、导出与分享工作流保存点击Save按钮将当前工作流保存为.json文件。这个文件不包含模型和图片只包含节点布局、连接和参数。加载点击Load按钮选择.json文件即可加载。前提是你的本地环境有工作流中引用的所有模型和自定义节点。分享分享.json文件时最好附带一个说明列出所需的核心模型和自定义节点。导入图片工作流ComfyUI 支持从生成的 PNG 图片中读取工作流信息。将带有工作流元数据的 PNG 图片拖入 ComfyUI 界面即可自动重建工作流。这是学习和复现他人成果的绝佳方式。5.3 性能调优与常见配置显存优化使用--lowvram模式在启动脚本中添加此参数会以速度为代价大幅降低显存占用适合小显存显卡。使用--cpu模式将 VAE 解码等部分操作放到 CPU节省显存。使用TAESD解码器一种快速的预览解码器可以在采样过程中快速预览低质量图节省显存。生成速度优化使用--highvram模式如果显存充足此模式速度最快。选择更快的采样器如dpmpp_2m、dpmpp_2m_sde。降低步数在可接受的质量下尝试降低steps。使用 xFormers确保安装并启用了 xFormers整合包通常已配置可以加速注意力计算。工作流组织技巧使用Reroute节点当连接线过长、交叉混乱时可以添加Reroute节点在节点搜索框中输入作为“中转站”让布线更清晰。使用Note节点可以为工作流的不同部分添加文字注释方便自己和他人理解。框选并右键Collapse可以将一组相关的节点折叠成一个组简化视图。6. 从静态到动态探索 ComfyUI 视频生成ComfyUI 不仅是静态图像生成的利器更是当前许多先进视频生成方案如 AnimateDiff, Stable Video Diffusion的首选部署平台。其工作流特性使得多帧生成、时序一致性控制变得可视化且可调试。6.1 视频生成的基本逻辑与单张图片生成不同视频生成需要处理一个帧序列。在 ComfyUI 中这通常通过以下方式实现加载运动模块例如 AnimateDiff 的 Motion Module它包含了让静态模型“动起来”的知识。创建视频潜在序列使用Empty Latent Image时将batch_size设置为视频的帧数如 16 帧。注入运动信息通过特定的节点如Apply AnimateDiff Model将运动模块应用到模型和潜在序列上。采样与解码采样器会一次性处理整个批次的潜在帧输出一个潜在视频序列最后通过 VAE 解码成图像序列。序列输出使用VAE Encode和Save Image的特殊节点或者使用Video Combine等节点将帧序列合成为视频文件如 GIF 或 MP4。6.2 搭建简易 AnimateDiff 工作流假设已通过 ComfyUI Manager 安装了ComfyUI-AnimateDiff-Evolved节点包。基础链首先搭建一个标准的文生图工作流包含 Load Checkpoint, CLIP Text Encode, KSampler, VAE Decode。添加运动模块添加Load AnimateDiff Model节点选择一个运动模块如mm_sd_v15_v2.ckpt。添加Apply AnimateDiff Model节点。连接将Apply AnimateDiff Model的model输入连接到你的主模型链在 LoRA 之后将motion_model输入连接到Load AnimateDiff Model。调整潜在图像将Empty Latent Image节点的batch_size改为你想要的帧数例如16。width和height根据需要设置通常较小如 512x512。连接采样器将Apply AnimateDiff Model节点的model输出连接到KSampler的model输入。确保KSampler的latent_image输入连接的是批处理后的Empty Latent Image。输出视频VAE Decode会输出一个包含多帧的批处理图像。添加Preview Image节点并连接可以预览第一帧。要生成视频文件需要添加Save Animated WEBP或Save Animated GIF等节点来自 AnimateDiff 包连接到VAE Decode的输出并设置帧率fps。注意视频生成对显存要求极高。首次尝试时请使用较小的帧数如 8、较小的分辨率如 384x384和较低的步数。显存不足时--lowvram模式可能是必须的。6.3 视频生成工作流的挑战与调试显存爆炸这是最大挑战。务必从小参数开始逐步增加。利用--medvram和--lowvram。闪烁与不一致运动模块强度、CFG 值、采样步数和调度器都会影响稳定性。可以尝试降低 CFG使用不同的运动模块或启用AnimateDiff Uniform Context Options节点来提升一致性。寻找工作流视频生成工作流变化很快。最佳学习方式是去 Civitai 等平台搜索 “ComfyUI AnimateDiff workflow”下载他人分享的.json或.png工作流文件直接导入学习这是最快速的进阶路径。学习 ComfyUI 是一个从“知其然”到“知其所以然”的过程。初期可能会被复杂的连线困扰但一旦你理解了每个节点的输入输出代表什么数据如何流动你就会获得一种构建和调试复杂 AI 生成系统的底层能力。这不仅仅是使用一个工具更是理解 Stable Diffusion 这套生成范式本身。从复现一个基础工作流开始到修改它再到组合创新最终你将能够设计出贴合自己独特需求的生产力流水线。
返回列表