简介
学习目标
- 理解节点系统的架构
- 掌握不同类型的节点
- 学会正确连接节点
- 了解节点的参数配置
预计学习时间
30分钟
节点系统架构
1. 节点定义
节点是ComfyUI的基本功能单元:
- 独立性: 每个节点独立执行
- 可组合: 节点可以组合成工作流
- 可配置: 节点参数可配置
- 可扩展: 可以添加自定义节点
┌─────────────────────┐
│ 节点标题 │
├─────────────────────┤
│ 输入端口 │
│ [●] 输入1 │
│ [●] 输入2 │
├─────────────────────┤
│ 参数区域 │
│ 参数1: [值] │
│ 参数2: [值] │
├─────────────────────┤
│ 输出端口 │
│ [●] 输出1 │
│ [●] 输出2 │
└─────────────────────┘
2. 节点分类
ComfyUI节点按功能分类:
- CheckpointLoaderSimple: 加载主模型
- VAELoader: 加载VAE模型
- LoraLoader: 加载LoRA模型
- ControlNetLoader: 加载ControlNet模型
- UNETLoader: 加载UNet模型
- KSampler: 基础采样器
- KSamplerAdvanced: 高级采样器
- SamplerCustom: 自定义采样器
- CLIPTextEncode: 文本编码
- ControlNetApply: 应用ControlNet
- ConditioningCombine: 合并条件
- ConditioningSetArea: 设置条件区域
- ImageScale: 图像缩放
- ImageUpscale: 图像放大
- ImageBlend: 图像混合
- ImageSharpen: 图像锐化
- SaveImage: 保存图像
- PreviewImage: 预览图像
- SaveLatent: 保存潜在空间
- SaveWEBP: 保存WEBP格式
- EmptyLatentImage: 空白潜在图像
- LatentUpscale: 潜在空间放大
- TextConcatenate: 文本连接
- KSamplerSelect: 采样器选择
3. 节点接口
节点通过输入和输出端口连接:
- 数据输入: 接收其他节点的输出
- 参数输入: 接收配置参数
- 可选输入: 某些输入可选
- 数据输出: 输出处理结果
- 状态输出: 输出节点状态
- 多个输出: 可以有多个输出
节点数据类型
1. MODEL(模型)
- 颜色: 蓝色
- 描述: Stable Diffusion模型
- 来源: CheckpointLoaderSimple
- 用途: 传递给采样器
2. CLIP(文本编码器)
- 颜色: 紫色
- 描述: 文本编码器
- 来源: CheckpointLoaderSimple
- 用途: 编码文本提示词
3. CONDITIONING(条件)
- 颜色: 橙色
- 描述: 编码后的文本条件
- 来源: CLIPTextEncode
- 用途: 指导图像生成
4. LATENT(潜在空间)
- 颜色: 绿色
- 描述: 图像的潜在表示
- 来源: EmptyLatentImage或采样器
- 用途: 在采样过程中传递
5. IMAGE(图像)
- 颜色: 红色
- 描述: 实际图像数据
- 来源: VAEDecode
- 用途: 显示或保存图像
6. MASK(掩码)
- 颜色: 黄色
- 描述: 图像掩码
- 来源: 掩码生成节点
- 用途: 图像修复和编辑
节点连接规则
节点连接示例
下图展示了节点之间的连接方式:
这个图展示了: - 输入节点: 提供数据源(文本、图像等) - 处理节点: 执行主要处理(采样、编码等) - 输出节点: 保存或显示结果 - 连接方式: 从输出端口拖动到输入端口
1. 类型匹配
端口类型必须匹配才能连接:
- 相同颜色端口可以连接
- 不同颜色端口不能连接
- 某些端口可以接受多种类型
MODEL端口 → MODEL端口 ✓
MODEL端口 → CLIP端口 ✗
IMAGE端口 → IMAGE端口 ✓
2. 单一连接
每个输入端口只能连接一个输出:
- 一个输入只能有一个连接
- 一个输出可以连接多个输入
- 连接会自动替换旧连接
[节点A输出] → [节点B输入1] ✓
[节点A输出] → [节点B输入2] ✓
[节点A输出] → [节点B输入1]
→ [节点C输入1] ✓
[节点A输出] → [节点B输入1]
[节点C输出] → [节点B输入1] ✗ (会替换)
3. 依赖关系
连接建立节点间的依赖关系:
- 数据依赖: 需要上游节点输出
- 执行顺序: 按依赖顺序执行
- 并行执行: 无依赖节点可并行
节点参数配置
1. 参数类型
- 输入方式: 文本框
- 用途: 输入文本内容
- 示例: 提示词、文件名
- 输入方式: 数字输入框或滑块
- 用途: 设置数值
- 示例: 步数、CFG值
- 输入方式: 下拉菜单
- 用途: 选择选项
- 示例: 采样器类型
- 输入方式: 文件选择器
- 用途: 选择文件
- 示例: 模型文件
2. 参数设置
- 必须设置才能执行
- 通常有默认值
- 不设置会报错
- 可以不设置
- 使用默认值
- 根据需要调整
- 通常有合理默认值
- 高级用户可以调整
- 影响性能或质量
常用节点详解
1. CheckpointLoaderSimple
加载Stable Diffusion主模型:
- 无
- ckpt_name: 模型文件名
- MODEL: 模型
- CLIP: 文本编码器
- VAE: VAE模型
CheckpointLoaderSimple
├── MODEL → KSampler.model
├── CLIP → CLIPTextEncode.clip
└── VAE → VAEDecode.vae
2. CLIPTextEncode
编码文本提示词:
- clip: CLIP文本编码器
- text: 文本提示词
- CONDITIONING: 编码后的条件
CheckpointLoaderSimple.CLIP → CLIPTextEncode.clip
CLIPTextEncode.CONDITIONING → KSampler.positive
3. KSampler
执行图像采样:
- model: 模型
- positive: 正向条件
- negative: 负向条件
- latent_image: 潜在图像
- seed: 随机种子
- steps: 采样步数
- cfg: CFG值
- sampler_name: 采样器名称
- scheduler: 调度器
- denoise: 去噪强度
- LATENT: 采样后的潜在空间
CheckpointLoaderSimple.MODEL → KSampler.model
CLIPTextEncode.CONDITIONING → KSampler.positive
EmptyLatentImage.LATENT → KSampler.latent_image
4. VAEDecode
解码潜在空间为图像:
- samples: 潜在空间
- vae: VAE模型
- 无
- IMAGE: 解码后的图像
KSampler.LATENT → VAEDecode.samples
CheckpointLoaderSimple.VAE → VAEDecode.vae
5. SaveImage
保存生成的图像:
- images: 图像
- filename_prefix: 文件名前缀
- 无
VAEDecode.IMAGE → SaveImage.images
节点操作
1. 添加节点
- 双击画布空白处
- 搜索节点名称
- 选择并添加
2. 移动节点
- 左键拖动节点标题栏
- 移动到目标位置
3. 连接节点
- 从输出端口拖动到输入端口
- 端口类型必须匹配
4. 删除节点
- 选中节点
- 按Delete键
- 或右键选择删除
5. 复制节点
- 选中节点
- Ctrl+C复制
- Ctrl+V粘贴
6. 配置参数
- 点击参数区域
- 输入或选择参数值
最佳实践
1. 节点组织
- 逻辑分组: 相关节点放在一起
- 清晰布局: 保持工作流整洁
- 添加注释: 使用文本节点说明
2. 连接优化
- 最小连接: 只连接必要的端口
- 避免交叉: 尽量避免连接线交叉
- 清晰流向: 数据流从左到右
3. 参数设置
- 合理默认: 使用合理的默认值
- 逐步调整: 逐步调整参数
- 记录配置: 记录有效配置
常见问题
Q1: 为什么节点无法连接?
A: 端口类型不匹配,检查端口颜色是否相同。
Q2: 如何快速找到节点?
A: 双击画布,输入节点名称或关键词搜索。
Q3: 节点参数有什么作用?
A: 参数控制节点的行为和输出结果。
Q4: 如何复制节点?
A: 选中节点,Ctrl+C复制,Ctrl+V粘贴。
Q5: 节点可以删除吗?
A: 可以,选中节点后按Delete键删除。
下一步
了解节点系统后,您可以:
相关资源
更新日志
- 2026-01-26: 初始版本创建