Extensions/yeban-krea2-lora-matrix
ComfyUI Extension

yeban-krea2-lora-matrix

Krea2 LoRA functional-area matrix routing, post adjustment, isolation testing, and XYZ comparison nodes for ComfyUI.

By wsq194·Created 23 days ago·Updated 23 days ago· 1
wsq194/yeban-krea2-lora-matrix
Nodes5
On cloudLocal install
Category🌙 夜半工作室/Krea2/LoRA控制, 🌙 夜半工作室/Krea2/LoRA测试
Stars1
Updated23 days ago
Readme

Yeban Krea2 LoRA Matrix

Krea2 专用的 ComfyUI LoRA 六区矩阵节点包,用于把多个 LoRA 按 Krea2 DiT blocks 0–27 分区路由,并提供后置调节、单 LoRA/单区域隔离测试和 XYZ 对比图。

主要功能

  • 六区 LoRA 加载器 V2:每个 LoRA 可独立分配到构图形体、主体特征、画风笔触、色彩光影、材质纹理和细节质感。
  • 六区后置调节器 V3:按分组总倍率和六区倍率继续调整。
  • 测试控制器:自动生成基线、当前矩阵、单 LoRA 和单 LoRA × 六区测试序列。
  • XYZ 对比图:把批量测试结果排成带标签网格。
  • 矩阵工具:独/静、行列复制粘贴、清零、锁定、撤销和工作流内预设。
  • 覆盖检测:根据 safetensors 头部判断 LoRA 实际包含的 Krea2 blocks。
  • 结构能量分析:六区加载器 V2 内点击“分析”,直接在每个 LoRA 单元格显示 分配值 | 能量占比(例如 B 1.00 | 33.8%),无需弹窗。
  • 矩阵自动换行:六区加载器 V2 每排固定最多显示 4 个 LoRA,第 5 个起自动换到 下一排;所有 LoRA 保持同时可见,区域总权重仍按完整分组计算。

“能量占比”按 LoRA 的真实增量矩阵 Delta = B × A 的 Frobenius 能量计算,表示该 LoRA 自身的 DiT 增量有多少集中在对应 blocks;同一个 LoRA 的六区占比合计约为 100%。它不受当前单元格权重是否为 0 的影响,也不会自动改写六区权重或 TextFusion 模式。TextFusion 分析数据仅保留在后端结果中,不在完成状态里显示无区分度的数量提示; 文本融合模式始终由用户自行决定。结果按 LoRA 文件大小和修改时间缓存。

六区名称是基于实测的操作性倾向,不是 Krea2 官方发布的固定语义分层。 结构能量只说明 LoRA 在哪里改动最大,不能单独证明该区域对应何种视觉语义;最终 语义仍需固定 seed、提示词、输入图和采样参数进行出图消融验证。

节点

  • Krea2LoraFunctionalMatrixLoaderV2
  • Krea2LoraFunctionalMatrixPostAdjusterV3
  • Krea2LoraFunctionalMatrixTestControllerV1
  • YebanLoraTestXYZGrid

安装

Comfy Registry / ComfyUI Manager

这是推荐的安装方式:

  1. 在 ComfyUI 中打开 Manager
  2. 搜索 Yeban Krea2 LoRA Matrix
  3. 点击安装,完成后重启 ComfyUI。

Git(手动安装)

当无法使用 Manager 时,在 ComfyUI 根目录执行:

cd ComfyUI/custom_nodes
git clone https://github.com/wsq194/yeban-krea2-lora-matrix.git Yeban_Krea2_Lora_Matrix

安装完成后重启 ComfyUI。后续更新时,进入 Yeban_Krea2_Lora_Matrix 目录执行 git pull,再重启 ComfyUI。已通过 Manager 安装的用户不需要再执行 Git 安装。

使用前准备

  • 本插件只用于 Krea2 架构的模型与 LoRA;请在工作流中加载可用的 Krea2 UNET、文本编码器和 VAE。
  • 将自己的 Krea2 LoRA 放入 ComfyUI 的 LoRA 模型目录,再在六区加载器中选择它。
  • 示例工作流保存的是作者本机的模型与 LoRA 文件名,不会随插件下载;缺少的文件请替换为本机对应的 Krea2 模型或 LoRA。

快速开始

  1. 添加 Krea2LoraFunctionalMatrixLoaderV2,将 Krea2 MODEL 接入其 model 输入。
  2. 在节点的 LoRA 矩阵中添加并启用你的 LoRA,先设置顶部 LoRA 倍率,再为六个区域分配权重。
  3. 将加载器输出的 MODEL 接到原有 Krea2 采样链;LoRA权重记录 可接到后置调节器或测试控制器。
  4. 建议先固定 seed、提示词、参考图与采样参数,再逐次调整一个区域,以便判断真实影响。

六区表示经过测试归纳的操作性作用倾向,不是 Krea2 官方定义的语义分层。不同 LoRA 的有效区域和 合适权重可能不同,应以自己的固定条件对照结果为准。

结构能量分析:先定位,再出图验证

Krea2LoraFunctionalMatrixLoaderV2 内置“分析”按钮,用于读取已选 LoRA 的真实权重增量,回答 “这个 LoRA 的修改主要集中在哪些 Krea2 blocks / 六区?”这个结构问题。它适合在开始调矩阵前做 定位,不是自动配权重工具。

如何使用

  1. 在六区加载器 V2 的矩阵中添加并选择一个或多个 LoRA。
  2. 点击矩阵下方的 分析;状态会显示分析进度与成功数量。
  3. 完成后,每个 LoRA 的六区单元格显示为“当前分配值 | 能量占比”,例如 B 1.00 | 33.8%。 竖线左侧是你当前设置的矩阵分配值,右侧 33.8% 是该 LoRA 的真实增量能量有多少落在该区。
  4. 先关注占比较高的区域,再用测试控制器输出单 LoRA / 单区隔离案例,固定条件出图验证;确认后 回到矩阵微调权重。

结果表示什么

分析以 LoRA 的增量矩阵 Delta = B × A 为基础,按 Frobenius 能量汇总到 Krea2 DiT 的六个区域。 同一 LoRA 的六区占比合计约为 100%。较高的占比表示该 LoRA 的参数改动更多集中在该区域,适合 作为优先测试和排查的线索。

不表示该区域一定会带来某个固定的视觉语义,也不能单独预测最终图像中某个效果的强弱。提示词、 参考图、采样器、权重和多个 LoRA 的叠加都会影响画面;因此应把能量分析与下方的分区测试网格配合使用。

安全性与性能

  • 分析是只读诊断:不会改写六区权重、顶部 LoRA 倍率、TextFusion 模式或你的工作流连接。
  • 结果按 LoRA 文件大小和修改时间缓存;再次分析同一未变更文件通常会更快。LoRA 文件更新后会自动 重新计算。
  • 如果 LoRA 文件缺失、损坏或不包含可识别的 Krea2 DiT 增量,节点会报告分析失败或无有效结果;先确认 文件和模型类型,再继续测试。

基本接线

基础 Krea2 MODEL → 六区 LoRA 加载器 V2 → 采样器
                         └→ LoRA权重记录 → 六区后置调节器 V3
                         └→ LoRA权重记录 → 测试控制器 → 批量采样 → XYZ 对比图

进行对照测试时,请固定提示词、参考图、latent 尺寸、采样参数和 seed,每次只改变矩阵变量。

示例工作流与样图

examples/krea2-layer-control-workflow.json 包含四组已完成的 Krea2 对照:未启用、直接使用 LoRA、六区分层控制,以及控制器生成的分区测试网格。工作流使用 Krea2\\大奶滴breast_size_v2_krea2_loraholic.safetensors 作为演示 LoRA;该文件不随插件提供。 导入后,请把所有缺失的模型和 LoRA 替换为本机可用的 Krea2 文件。

所有对照均固定提示词、参考图、seed、latent 尺寸和采样参数;只有 LoRA 的加载方式或分区权重 发生变化。可直接下载并导入完整工作流复现。

1. 未启用 LoRA:基线

这是未应用该 LoRA 时的基线,用来排除提示词、模型和参考图本身带来的变化。

<p align="center"> <img src="examples/direct-output.png" alt="未启用 LoRA 的基线效果" width="480"> </p>

2. 直接使用 LoRA:整体效果

直接以总权重 20 应用 LoRA,作为该 LoRA 的最佳整体效果参照。

<p align="center"> <img src="examples/plain-lora-output.png" alt="直接以权重 20 使用 LoRA 的效果" width="480"> </p>

3. 六区分层控制:只调整指定区域

通过六区矩阵将 LoRA 的影响限制到目标区域,展示在同一 LoRA 下可控地改变局部效果,而不是 简单提高整体强度。

<p align="center"> <img src="examples/layer-control-effect.png" alt="六区分层控制的效果" width="480"> </p>

4. 分区测试网格:验证每个区域的影响

测试控制器对同一 LoRA 逐区隔离并由 XYZ 网格标注结果,便于比较六个区域各自带来的视觉变化。

<p align="center"> <img src="examples/area-test-grid.png" alt="六区分区测试网格" width="960"> </p>

该示例 LoRA 在此测试条件下需要较高权重才能呈现最佳效果,因此“直接使用”和测试控制器均设为 20。这是此 LoRA 的推荐示例值,并不是其他 LoRA 的通用默认值;使用其他 LoRA 时建议从较低 权重开始,在固定条件下逐步测试。

测试控制器从 LoRA权重记录 自动读取矩阵中的 LoRA,并为每条 LoRA 显示独立的六区 “最终总权重”。这些测试权重由控制器直接应用,不受加载器六区是否关闭、分区值是否为 零或顶部倍率大小影响;例如控制器填写 20,对应案例的实际总权重和标签均为 20。 每条 LoRA 还可以开启“每层统一总权重”:开启后六区输入保留但灰显,组合与六个隔离 案例全部使用同一个最终总权重;关闭后恢复六区各自的总权重。 full 会输出基线、加载器当前矩阵、全部 LoRA 的控制器六区组合,并按矩阵顺序输出每条 LoRA 的控制器六区组合及六个分区隔离案例;只有一条 LoRA 时自动省略重复的单 LoRA 组合格。current_matrixfixed_isolation_weight 仅保留为后端兼容模式。

已验证环境

当前已验证:

  • ComfyUI 0.27.0
  • ComfyUI Frontend 1.45.20
  • Python 3.12
  • Windows + NVIDIA CUDA

其他系统和 ComfyUI 版本尚未在本仓库完成验证,欢迎反馈兼容性结果。

License

MIT