绘图ComfyUI概述
ComfyUI是一个基于 节点(Node-based)图形编排 的 Stable Diffusion 可视化工具。
核心特征:
- 节点化(Graph-based DAG):类似数据流引擎(类似 Airflow / NiFi 思想)
- 完全可编程 pipeline:每个节点 = 一个函数
- 高度可控:参数、流程、分支全部显式化
- 天然适合自动化 / SRE 场景
1.与传统 WebUI(如 AUTOMATIC1111)对比
| 维度 | ComfyUI | A1111 |
|---|---|---|
| 操作方式 | 节点编排 | 表单式 |
| 灵活性 | 极高 | 中等 |
| 自动化能力 | 强(可JSON化) | 较弱 |
| 可视化流程 | DAG | 无 |
| 批量/流水线 | 原生支持 | 插件实现 |
👉 本质区别:
- A1111 = 工具
- ComfyUI = 流水线引擎
2. 核心架构
2.1 数据流模型(DAG)
graph LR
A[Prompt] --> B[KSampler]
C[Checkpoint] --> B
B --> D[VAE Decode]
D --> E[Image Output]
核心理念:
- 所有执行都是 无状态函数节点
- 数据通过 边(Edge)传递
- 构成 有向无环图(DAG)
2.2 核心组件拆解
| 组件 | 作用 |
|---|---|
| Checkpoint Loader | 加载模型 |
| CLIP Text Encode | Prompt编码 |
| KSampler | 扩散采样核心 |
| VAE Decode | latent → image |
| Save Image | 输出 |
👉 类比:
- Checkpoint = 模型权重
- CLIP = NLP 编码器
- KSampler = 推理引擎
- VAE = 解码器
3. 标准工作流拆解(Text2Image)
3.1 流程结构
graph TD
A[Prompt] --> B[CLIP Encode]
B --> C[KSampler]
D[Negative Prompt] --> B
E[Checkpoint] --> C
C --> F[VAE Decode]
F --> G[Save Image]
3.2 每一步本质
Prompt → CLIP编码
- 文本 → embedding向量
- 输入扩散模型
KSampler(核心)
输入:
- latent(噪声)
- prompt embedding
- model
输出:
- 去噪后的 latent
KSampler常见参数:
| 参数 | 含义 |
|---|---|
| steps | 迭代次数 |
| cfg | 提示词强度 |
| sampler | 采样算法 |
| seed | 随机种子 |
VAE Decode
- latent → RGB图像
Save Image
- 写入文件系统