ComfyUI 与节点式生成
ComfyUI 是生成式 AI 的「节点编辑器」——像画流程图一样组装 AI 创作管线,每个节点是一个功能模块(加载模型、编码文本、采样、解码),连线就是数据流向。2025 年的 ComfyUI 早已不限于此:它已从单纯的 Stable Diffusion 画图工具,进化为覆盖图像、视频、音频、3D 模型的全模态生成引擎,原生支持 Flux 2、Wan 2.2、Hunyuan Video 等最新开源模型,并通过 API Node 接入 Nano Banana、Seedance 等闭源模型。本页梳理节点式生成的完整理念与工作流。前置阅读:扩散模型、ControlNet 与可控生成。
想象你在搭乐高——
- AUTOMATIC1111 WebUI= 一台组装好的玩具车。按钮清晰、上手即用,但你想把轮子换成履带、加个螺旋桨?得翻菜单找选项,能改的有限。
- ComfyUI= 一盒散装乐高积木。你自己决定怎么拼——先接电机再接轮子?还是中间加个齿轮箱?管线的每一个环节都由你自由组合、连线、调参。
为什么节点式更强? 因为图像生成本质是一条数据管线:加载模型 → 编码文本 → 生成噪声 → 逐步去噪 → 解码图像 → 后处理。WebUI 把这条管线封装在按钮后面,你能调的只有几个参数;ComfyUI 把管线的每一步都暴露成可视节点,你看得见数据怎么流、哪里可以插 ControlNet、哪里可以接 LoRA。
节点类型与基础管线
Section titled “节点类型与基础管线”ComfyUI 的核心是一张有向无环图(DAG)——每个节点接收输入、执行计算、输出结果,连线表示数据传递。最基础的文生图工作流由以下节点串联:
| 节点 | 功能 | 输入 → 输出 |
|---|---|---|
| Checkpoint Loader | 加载模型权重文件 | 无 → MODEL, CLIP, VAE |
| CLIP Text Encode | 编码文本提示为条件向量 | CLIP + 文本 → CONDITIONING |
| Empty Latent Image | 创建空白潜空间画布 | 宽/高/批量 → LATENT |
| KSampler | 核心采样器,执行扩散去噪 | MODEL + CONDITIONING + LATENT → LATENT |
| VAE Decode | 将潜空间解码为像素图像 | VAE + LATENT → IMAGE |
| Save Image | 保存图像到磁盘 | IMAGE → 文件 |
数据类型安全连接:每种输出有明确的类型(MODEL、CLIP、VAE、LATENT、CONDITIONING、IMAGE),只有类型匹配的端口才能连线——这防止了你接错管线。
基础管线上可以插入各种增强节点:
- LoRA Loader:在 Checkpoint 之后接入,将 LoRA 权重叠加到基础模型上(详见图像 LoRA 训练)。
- ControlNet Apply:注入 ControlNet 条件信号,在 KSampler 前将结构图编码为额外条件(详见ControlNet 与可控生成)。
- IPAdapter Apply:用参考图像控制生成风格和角色。
- Upscaler / Latent Upscale:先在低分辨率生成,再用放大节点提升分辨率——比直接高分辨率生成更快、显存更省。
- InpaintModelProcessor:处理 mask 和输入图像,配合 KSampler 做局部重绘(详见AI 图像编辑)。
- KSampler (Advanced):允许手动控制去噪的起始/结束步数,实现更精细的采样调度。
为什么节点式优于 WebUI
Section titled “为什么节点式优于 WebUI”- 可视化管线:你能一眼看清数据怎么从模型走到最终图像——哪里加噪、哪里去噪、条件怎么注入。出问题时定位故障节点即可。
- 完全可复现:一个工作流的所有节点和参数都保存在一张 JSON 图里。分享 JSON 就是分享完整的生成流程——换一台电脑跑出来一模一样。
- 灵活组合:想做「ControlNet + LoRA + 放大 + 局部重绘」的复杂管线?节点式只需连线,WebUI 需要层层翻菜单祈祷选项存在。
- 工作流市场:社区分享海量工作流 JSON,下载即用——从文生图到动画生成到批量处理,覆盖所有场景。
ComfyUI 基础文生图工作流
Section titled “ComfyUI 基础文生图工作流”通过 ComfyUI API 提交工作流
Section titled “通过 ComfyUI API 提交工作流”ComfyUI 除了图形界面,还提供 HTTP API,可以编程式提交工作流 JSON:
import jsonimport requests
# 在 ComfyUI 界面中保存工作流后,导出 "API 格式" JSONwith open("workflow_txt2img.json") as f: workflow = json.load(f)
# 修改工作流中的提示词等参数workflow["6"]["inputs"]["text"] = "a serene mountain landscape, golden hour"workflow["5"]["inputs"]["width"] = 1024workflow["5"]["inputs"]["height"] = 1024
# 向本地 ComfyUI 服务提交工作流,进入采样队列response = requests.post( "http://127.0.0.1:8188/prompt", json={"prompt": workflow})print(f"工作流已提交,队列 ID: {response.json()['prompt_id']}")# ComfyUI 会异步执行,通过 /history/{prompt_id} 轮询结果- 先跑通基础文生图,再逐步加节点:新手不要一上来就搭复杂管线。先用 Checkpoint → CLIP → Latent → KSampler → VAE → Save 跑通一张图,然后逐步加 LoRA、ControlNet。
- Queue(队列)机制:ComfyUI 按队列顺序执行提交的生成任务。批量生成时可以将多张图排入队列,后台顺序处理。
- 导出工作流 JSON 用 API 格式:界面中保存的 JSON 有两种格式——UI 格式(含位置坐标,供界面加载用)和 API 格式(纯节点+参数,供 API 调用用)。编程调用时必须用 API 格式。
- 低显存也能跑:ComfyUI 的节点架构天然支持按需加载——只有在 KSampler 需要 MODEL 时才加载模型权重,采样完释放显存给后续节点。配合 fp16 量化,4GB 显存即可运行 SD 1.5。
- Custom Nodes(自定义节点)扩展:ComfyUI 社区有数百个自定义节点包(ComfyUI Manager 一键安装),涵盖 ControlNet 预处理、视频生成、3D 生成等高级功能。
- 专业 AI 艺术创作:专业用户用 ComfyUI 搭建复杂管线(多 LoRA 叠加 + ControlNet 引导 + 高清放大),实现 WebUI 无法做到的精细控制。
- 生产管线自动化:电商团队用 API 批量提交工作流,自动化生成商品图、广告素材,集成进 CI/CD 式的内容生产流程。
- 工作流市场与社区:OpenArt、Civitai 等平台分享海量 ComfyUI 工作流,新手下载 JSON 即可复现复杂效果。
- 游戏/影视资产管线:美术团队定制工作流批量生成纹理、概念设定图、角色变体,嵌入现有美术生产管线。
- AI 摄影后期:摄影师用 Inpainting 节点修图、用 Upscaler 节点提升分辨率,构建自动化的后期处理工作流。
典型类库与工具
Section titled “典型类库与工具”| 类库 | 语言 | 说明 |
|---|---|---|
| ComfyUI | Python/JS | 节点式扩散模型工作流工具,本页主角,节点管线架构的标杆 |
| AUTOMATIC1111 WebUI | Python | 最流行的表单式 Stable Diffusion 界面,上手快但灵活性不如 ComfyUI |
| InvokeAI | Python/JS | 另一款开源 SD 工具,介于 WebUI 和节点式之间,内置画布编辑 |
| Draw Things | Swift/C++ | macOS/iOS 原生 SD 客户端,支持节点式工作流,移动端体验优秀 |
| ComfyUI Manager | Python | ComfyUI 自定义节点包管理器,一键安装/更新社区节点 |
| Playground v2.5 | 在线 | 在线节点式工作流平台,免安装,适合快速试用 |
| 术语 | 英文 | 解释 |
|---|---|---|
| 节点 | Node | 工作流中的一个功能模块,接收输入、执行计算、输出结果 |
| 工作流 | Workflow | 由节点和连线组成的完整生成管线,可保存/加载/分享为 JSON |
| 管线 | Pipeline | 数据从输入到输出的完整处理链路 |
| 采样器 | KSampler | 执行扩散去噪的核心节点,参数包括步数、CFG、采样器类型 |
| 潜在空间 | Latent | VAE 压缩后的低维表示空间,扩散在此空间进行 |
| 队列 | Queue | ComfyUI 按顺序处理提交的生成任务的调度机制 |
| 自定义节点 | Custom Node | 社区开发的扩展节点包,添加新功能(预处理、3D 生成等) |
- ComfyUI GitHub 仓库:comfyanonymous/ComfyUI——节点式扩散工作流工具的原始实现,文档详尽,是理解节点架构的最佳参考。
- ComfyUI Examples:官方提供的工作流示例集合,涵盖文生图、图生图、ControlNet、LoRA、放大等场景,适合学习节点组合方式。
- ComfyUI Manager:ltdrdata/ComfyUI-Manager——自定义节点管理器,是 ComfyUI 生态扩展的核心基础设施。