Skip to Content
开始阅读阅读路线

阅读路线

这套文档既可以顺读,也可以按问题切入。推荐先花十分钟读完系统总览,再选择一条主线。

路线 A:第一次理解 ComfyUI

适合知道“节点图能出图”,但还没建立后端心智模型的读者。

读完后应该能独立回答:

  • 为什么后端收到的 JSON 与保存的 Workflow 不同?
  • 为什么没有连接到输出的节点不会执行?
  • 为什么队列是优先级堆,而节点执行顺序又不是简单的节点 ID 顺序?
  • 一次点击 Queue Prompt 后,WebSocket 进度从哪里产生?

路线 B:编写可靠的自定义节点

顺序建议:

  1. V1 / V3 节点协议
  2. 自定义节点发现与装载
  3. 输入验证
  4. 列表、懒输入、异步与运行时子图
  5. 缓存与增量重算
  6. 文件、数据库与安全边界

这一条线的关键不是“会写 execute”,而是理解你的节点怎样参与验证、签名计算、列表映射、生命周期管理和错误报告。

路线 C:研究推理运行时与显存

顺序建议:

重点观察三个“分离”:

  • 模型结构识别与权重驻留设备分离;
  • 基础权重对象与LoRA / hook / options 等补丁视图分离;
  • 采样算法、sigma 调度与CFG 引导分离。

这三处分离让 ComfyUI 能在不同模型、设备和工作流之间复用同一套骨架。

问题到章节的速查

你遇到的问题先读
点击执行后一直显示 queued服务与传输、队列与工作线程
改了一个节点却重跑很多节点缓存与增量重算
节点只在某个分支需要输入动态执行:懒输入
想让节点运行时生成更多节点动态执行:expand 子图
模型明明能放进显存仍频繁搬运设备、显存与卸载策略
LoRA 叠加后模型行为异常ModelPatcher
API 提交返回 node_errors输入与图验证
自定义节点没有出现在菜单节点发现与装载
输出文件能否直接由 HTTP 打开文件与安全边界

一次真实请求贯穿全书

后续章节反复使用一个最小文生图 Prompt:CheckpointLoader → CLIPTextEncode(正/负)→ EmptyLatentImage → KSampler → VAEDecode → SaveImage。

它足够小,却覆盖了:

  • 模型、CLIP、VAE 三类重量级对象;
  • 常量输入和节点连接;
  • 一个明确的输出节点;
  • 缓存可复用的文本编码与模型加载;
  • 多步采样与进度预览;
  • 文件输出、历史记录与 WebSocket 消息。

当章节讨论懒输入、异步或运行时子图时,会在这条主链路上加一个假想节点,而不会偷偷改变基础模型。

Last updated on