A LoRA library, dynamic stack, and preset manager for ComfyUI — 一个集 LoRA 资源管理、 动态组合与预设管理于一体的 ComfyUI 自定义节点。
EasyLoraStack 将浏览、元数据、分类、预设和组合操作集中到内嵌于 WebUI 的 LoRA Library, 工作流节点负责保存组合、连接和应用 LoRA。支持不限数量的动态 LoRA 组合,以及命名预设的 复用与合并。
当前版本 0.2.0,基于 ComfyUI V3 节点 API,已在 Stability Matrix 的 ComfyUI v0.33.1
上验证。
- LoRA Library 管理器:WebUI 右下角轻量悬浮入口,以及动态节点内自动绑定目标的入口按钮。
- 卡片化浏览:预览图卡片、搜索、文件夹 / 类型 / Base Model / 标签筛选、收藏。
- 元数据读取:原生支持 Stability Matrix
.cm-info.json、本地预览图和 rgthree sidecar。 - 按需获取 Civitai 元数据:通过 SHA256 匹配;启动和普通浏览不会访问网络。
- 个性化标注:自定义别名、类型、标签、备注、收藏,以及默认 MODEL / CLIP 权重。
- 双向同步:管理器与选定的动态 Stack / Loader 节点实时同步编辑会话。
- 命名预设:保存、查看、替换、追加、更新、重命名和删除预设。
- 组合控制:启用 / 禁用、独立双权重、删除、拖动排序,LoRA 数量不受固定槽位限制。
- 工作流组合:Preset Reference 与 Merge Stacks 支持在工作流中引用和合并多个预设。
- 向后兼容:v0.1.0 的节点和预设保持兼容,不会破坏已有工作流。
-
将整个
ComfyUI-EasyLoraStack文件夹放入:ComfyUI/custom_nodes/ComfyUI-EasyLoraStack -
重启 ComfyUI。
无需安装额外的 Python 依赖。重启后,左侧边栏会出现 LoRA Library,节点搜索中输入
Easy LoRA 即可找到全部节点。
升级时请覆盖整个插件目录,并在浏览器执行一次强制刷新(Ctrl+Shift+R)。 在 Windows 上,也可以使用目录联接(junction)指向本开发目录,便于直接更新。
推荐先在画布放置 Easy LoRA Stack (Dynamic) 或 Easy LoRA Loader (Dynamic) 节点,
再通过节点内的 LoRA Library 按钮打开管理器;也可以点击 WebUI 右下角的 EL LoRA
悬浮球直接进入。
基本流程:
- 放置 Dynamic Stack / Loader 节点,从节点内按钮打开 LoRA Library。
- 确认顶部绑定的目标节点,必要时显式切换或创建节点。
- 搜索或筛选 LoRA,点击卡片在独立叠加层中查看和编辑元数据。
- 点击卡片右下角的
+加入当前节点,选中后再次点击−移除;随后在右栏或节点内 调整顺序、启用状态与双权重。 - 将当前组合另存为预设,或使用预设替换 / 追加到当前节点。
| 节点 | 说明 |
|---|---|
| Easy LoRA Stack (Dynamic) | 输出任意数量的 LoRA 组合;每行一个 LoRA,支持启用 / 禁用、MODEL 与 CLIP 独立权重、排序、删除,以及绑定到该节点的 LoRA Library 入口。 |
| Easy LoRA Loader (Dynamic) | 输入 MODEL 和 CLIP,在单个节点中编辑并应用动态 LoRA 组合,同时输出最终 Stack,适合无需单独 Apply 节点的工作流。 |
| Easy LoRA Apply | 输入 MODEL、CLIP 和 LoRA Stack,按列表顺序应用所有启用的 LoRA。 |
| Easy LoRA Preset Reference | 在工作流中引用命名预设的最新版本,适合构建全局可更新的组合。 |
| Easy LoRA Merge Stacks | 提供最多 100 个自动增长的 Stack 连接口,重复 LoRA 支持 Keep all / Keep first / Keep last / Sum weights。 |
| Legacy 节点 | v0.1.0 的固定六槽 Stack、Preset Save / Load / Delete、Info 和 Alias & Type 节点保留可用(标记为 deprecated,位于 EasyLoraStack/Legacy)。 |
组合会作为版本化 JSON 随工作流保存,不依赖当前全局预设状态。
默认存储位置:
ComfyUI/user/easy_lora_stack/
├── catalog.json
├── presets/
└── civitai_cache/
可通过环境变量 EASY_LORA_STACK_DATA_DIR 覆盖。插件只读写自己的数据目录,不会修改
LoRA 文件或 Stability Matrix 原始 sidecar。
- Civitai 私有或受限模型暂不支持登录 / API Token。
- 动态节点使用轻量 DOM 控件显示紧凑行;即使前端扩展加载失败,底层 JSON 输入仍保留, 后端执行和已保存工作流不会被静默修改。
- Preset Reference 是链接模式,预设后续变化会影响引用它的工作流;动态节点中的预设内容是快照。
python -m unittest discover -s tests -v
python -m compileall -q .
Get-ChildItem js -Filter *.js | ForEach-Object { node --check $_.FullName }详细说明见 docs/testing.md 与 docs/architecture.md。