ComfyUI-KJNodes 实战指南:五招打通 AI 工作流的性能堵点

ComfyUI-KJNodes 实战指南:五招打通 AI 工作流的性能堵点
ComfyUI-KJNodes 实战指南五招打通 AI 工作流的性能堵点【免费下载链接】ComfyUI-KJNodesVarious custom nodes for ComfyUI项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-KJNodesComfyUI-KJNodes 是 ComfyUI 的一个自定义节点集合专门解决 AI 图像与视频生成里最恼人的三件事显存不够用、批量流水线难搭、画布连线越理越乱。它的核心卖点是模型编译加速、注意力算法替换、图像批量处理以及一套支持跨子图传值的 Set/Get 节点系统。依赖保持最少直接嵌进你现有的工作流不用推倒重来。先说结论它到底能帮你做什么如果你是 ComfyUI 用户大概率遇到过这几个坎12B 的视频模型在 8G 显卡上死活跑不动几百张照片要逐张抠蒙版、跑修复节点得一根根连同一个加载模型→加 LoRA→采样的组合换个模型就得重搭一遍。KJNodes 把约 2.3 万行 Python 拆成 20 多个节点文件一个文件只负责一个场景__init__.py里的节点注册配置把它们全部列了出来你要找的节点基本搜一下就有。它的能力可以归成四组性能调优集中在nodes/model_optimization_nodes.py包括 torch.compile 块编译、SAGE / NABLA / Flash 三种注意力替换、显存分块与显存监控批量流水线5000 多行的nodes/image_nodes.py覆盖图像批次的加载、缩放、裁切、拼接、转场到保存蒙版单独放在nodes/mask_nodes.py工作流工程Set/Get 节点支持跨子图传值右键连线可直接转成 Set/Get 对曲线节点还能沿样条画文字和形状画布体验前端 JS 提供了热键 D 快速插入节点、S 换节点、抖动断开连线这类小功能。显存告急先拉这三个杠杆 编译一次后面都受益torch.compile 是 PyTorch 的即时编译加速器它先观察一段代码怎么跑然后生成一版专门针对你硬件的更快实现并缓存起来。KJNodes 把它封装成TorchCompileModelAdvanced这类节点——选好编译后端和模式把模型接进节点就行。其中 inductor 是 PyTorch 的默认优化后端NVIDIA 显卡的常规选择cudagraphs 是 CUDA 图可以理解为把整段操作序列录制成一个动作省掉 CPU 反复发号施令的开销。代价是第一次运行更慢——编译过程会让你在最初几次采样时看到明显的进度条但之后每次推理都走编译版。所以它是固定生产流程里的长期投资临时试图则没必要开。把大激活切成小块视频模型跑起来时单帧的中间激活可能巨大FFN 层的输入一次就是一万个 token显存峰值就崩在这。WanChunkFeedForward的做法很直接def chunked_forward(x, forward, n4): if x.shape[1] 4096: # 序列够长才分块 chunks torch.chunk(x, n, dim1) return torch.cat([forward(c) for c in chunks], dim1) return forward(x)这段代码还原了节点的核心逻辑把 token 序列切 4 份、逐份过 FFN显存里同一时刻只存 1/4 的激活峰值大幅下降。代价是速度略降换来的是原本直接 OOM 的模型能跑起来。节点标注了实验性质、输出可能有细微变化正式使用前建议对比一下成片。显存是查出来的不是猜出来的ModelMemoryUsageFactorOverride可以强行覆盖模型的显存占用系数让 ComfyUI 更激进地把权重留在显存或更快挪走。想知道真实情况StartRecordCUDAMemoryHistory → End → Visualize三件套能给你一条显存占用时间线相当于给工作流挂上性能分析器改完参数前后各录一轮差异一目了然。杠杆显存变化速度变化适合场景模型编译基本不变首次慢、后续推理快一截固定的生产工作流FFN 分块峰值明显下降略慢8G 卡跑视频模型NABLA 稀疏注意力长序列省得最多视稀疏度而定长视频生成注意力方面PathchSageAttentionKJ把模型注意力换成 SAGE 低精度版本需另装 sageattention 库模式名很具体按卡型选NABLA 则用时间/空间窗口加稀疏度阈值只算重要的块源码里对不足 3000 token 的序列会直接走普通注意力——短序列不值得折腾。几百张图批量处理不炸手场景300 张产品图每张要按蒙版裁出主体、跑一遍修复、再贴回原构图。手工连就是 900 个节点。KJNodes 把批次当成一等公民LoadImagesFromFolderKJ整个文件夹直接读成一批不用自己拼文件列表ImageBatchMulti与ImageConcatFromBatch负责并批和拆分ImageBatchFilter能按索引筛掉坏图BatchCropFromMask系列按蒙版逐张裁出感兴趣区域BatchUncrop再贴回去300 张图整条流水线一次过ImageResizeKJ默认分块执行缩放大批量不会一次把内存撑爆。蒙版侧值得点名的是CreateMagicMask输入一个英文名词car、dogCLIPSeg 自动分割批量出蒙版最快的路子CreateFluidMask、CreateVoronoiMask同理用算法直接生成结构化蒙版不用手绘。这组节点的设计哲学是一致的批次进、批次出没有特例。裁切-复原这组往返节点配齐之后数据集预处理基本就是现成的流水线。Set/Get给你的工作流装上间接引用2026 年 3 月Set/Get 被整体重写并加上了子图支持这是这个项目里幅度最大的工作流升级。思路很简单Set 节点给一条数据流起名比如 MODEL任何同名 Get 节点直接取用不靠连线。新版的关键变化跨子图传值父画布里的 Set 对所有子图可见Get 沿祖先一路向上找——相当于程序里的全局变量子图从此可以当可调用组件封装右键连线转 Set/Get不用手动摆两个节点还能对选中节点的所有输出一键批量转换改错了再右键转回直连快捷键CtrlShiftS 在选中节点上加 SetCtrlShiftG 放 GetShift中键点输出口直接生成配对节点双击 Get 跳到对应 Set粘贴 SetGet 对时重命名自动联动不会出现 MODEL 变成 MODEL_0 后 Get 断掉的情况。实际收益把加载模型→LoRA→采样封进一个子图对外只留一个 Get父画布改一处就能全局换模型。配合WidgetToString这个小组件——给定节点 ID 和参数名读出该节点的参数值比如检查点文件名变成字符串——还能做出动态拼提示词、按模型名自动存档这类自动化。三步跑起来# 1. 克隆到 ComfyUI 的 custom_nodes 目录 git clone https://gitcode.com/gh_mirrors/co/ComfyUI-KJNodes # 2. 安装依赖在 ComfyUI 使用的 Python 环境执行 pip install -r ComfyUI-KJNodes/requirements.txt # 3. 重启 ComfyUI节点菜单里搜 KJNodes上手时的三个提醒编译类节点都标了实验性质首跑的慢是编译开销第一次采样多留点时间SAGE 注意力要单独装sageattention库模式名和显卡架构强相关先按默认档跑通再微调显存监控节点不改结果但养成改动前后各录一轮历史的习惯省得凭感觉调参。这个项目的整体思路是一个文件一个场景、依赖最小化它不试图成为框架而是给你一把趁手的工具。下次显存告急或者画布乱成一团时回到上面这份清单里挑对应的杠杆拉一下就好。【免费下载链接】ComfyUI-KJNodesVarious custom nodes for ComfyUI项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-KJNodes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻