在使用 ComfyUI 构建复杂工作流时,你是否遇到过某些节点重复执行、浪费资源的情况?尤其是在涉及条件分支、开关节点或动态输入的情况下,ComfyUI 往往无法准确判断哪些节点真正需要重新运行。
今天要介绍的这个自定义节点插件——Node Caching(节点缓存),正是为解决这一问题而生。它能帮助你为几乎任何类型的节点添加缓存机制,避免不必要的重复执行,提升整体效率。

什么是 Node Caching?
Node Caching 是一个 ComfyUI 插件,它通过为节点添加缓存功能来优化执行流程。其核心原理是:
- 在节点运行前,根据当前输入值生成一个唯一的“指纹”;
- 如果该指纹此前已存在缓存中,则跳过执行,直接复用之前的输出;
- 否则正常执行,并将结果保存到缓存中。
这种方式特别适用于耗时较长或频繁出现的节点,比如采样器(如 KSampler),尤其在多个工作流共享同一节点类型时,效果更为明显。
使用方法
操作非常简单:
- 右键点击任意节点;
- 选择 “转换为缓存”(Convert to Cached);
- 节点标题会自动加上
(caching)标记,表示已启用缓存。
一旦某个节点类型被标记为缓存类型,所有同类型节点(无论在哪个工作流中)都将默认启用缓存功能。
⚠️ 注意:缓存仅在当前服务器运行期间生效,重启后将失效。
缓存行为说明
为了控制内存占用,每个节点类型最多保留 4 个最近的不同输入对应的输出缓存。
此外,请注意以下关键行为:
- 缓存存储的是输出的引用,而非副本。如果你在下游修改了输出内容,可能会导致意外行为;
- 若节点输出依赖外部因素(如文件、API 响应、未固定种子的随机数等),缓存将不会感知这些变化,仍可能返回旧结果;
- 指纹匹配有可能出现误判(即使输入有变化仍认为一致)。如遇此类情况,建议反馈相关节点以改进指纹逻辑。
如何实现永久缓存?
如果你希望某些节点类型始终启用缓存,可以编辑插件目录下的 classes_to_cache.txt 文件,将希望自动缓存的类名写入其中。每次刷新网页时,系统会自动为这些类启用缓存,无需手动设置。
适用场景举例
- 多个采样器节点在不同工作流中反复运行相同参数;
- 静态图像加载节点(如 LoadImage)在多个流程中重复调用;
- 条件分支中可能被多次触发但输入不变的节点;
- 文本编码节点(CLIPTextEncode)重复处理相同提示词。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...















