KJNodes/loragenerated

LoraExtractKJ

该节点支持多种 LoRA 提取模式,包括标准固定秩(standard)、全秩(full)以及多种自适应秩方法(adaptive_*),以适应不同的精度和文件大小需求。

Lora Extract KJ

finetuned
original
filename_prefix
loras/ComfyUI_extracted_lora
rank
64
lora_type
COMBO
algorithm
svd_lowrank
lowrank_iters
7
output_dtype
fp16
bias_diff
adaptive_param
0.15
clamp_quantile
KJNodes

LoraExtractKJ 节点是一个用于从微调后的模型和原始基础模型的差异中提取 LoRA(Low-Rank Adaptation)权重文件的工具。它的核心功能是分析两个模型之间的参数变化,并将这些变化压缩并保存为独立的、可复用的 LoRA 文件。该节点不输出任何数据,而是直接将生成的 LoRA 文件保存到指定目录。

节点功能

该节点支持多种 LoRA 提取模式,包括标准固定秩(standard)、全秩(full)以及多种自适应秩方法(adaptive_*),以适应不同的精度和文件大小需求。在技术实现上,它通过奇异值分解(SVD)算法来计算权重矩阵的低秩近似,用户可以选择 svd_linalg(精确但慢)或 svd_lowrank(快速但近似)两种算法。提取出的权重可以保存为 fp16、bf16 或 fp32 精度。

节点参数说明 - LoraExtractKJ

连接输入 (Inputs)

参数名称数据类型必填默认值取值范围/选项说明
finetunedMULTITYPE--用于提取 LoRA 的微调模型或 CLIP。
originalMULTITYPE--用于对比差异的原始基础模型或 CLIP。

控件参数 (Parameters)

参数名称数据类型必填默认值取值范围/选项说明
lora_typeCOMBOstandard"standard", "full", "adaptive_ratio", "adaptive_quantile", "adaptive_energy", "adaptive_fro"全秩(full)以及四种自适应秩方法(adaptive_ratio, adaptive_quantile, adaptive_energy, adaptive_fro)。
algorithmCOMBOsvd_lowrank"svd_linalg", "svd_lowrank"选择用于奇异值分解(SVD)的算法。svd_linalg 更精确但较慢,svd_lowrank 更快但为近似计算。
output_dtypeCOMBOfp16"fp16", "bf16", "fp32"提取的 LoRA 权重保存精度:fp16、bf16 或 fp32。
filename_prefixSTRINGloras/ComfyUI_extracted_lora-设置输出 LoRA 文件的保存路径和名称前缀,默认保存在 loras/ 目录下。
rankINT641 - 4096 (步长: 1)标准 LoRA 使用的秩,或自适应方法的最大秩限制。
lowrank_itersINT71 - 100 (步长: 1)低秩 SVD 算法的子空间迭代次数。
bias_diffBOOLEANTrue-是否在提取 LoRA 时包含模型偏置(bias)参数的差异。
adaptive_paramFLOAT0.150.0 - 1.0 (步长: 0.01)用于 ratio 模式时,为最大奇异值的比例;用于 quantile 模式时,为奇异值分位数;用于 fro 模式时,为 Frobenius 范数保留比例。
clamp_quantileBOOLEANfalse-控制是否在自适应分位数模式下对奇异值进行裁剪,以提升数值稳定性。

使用场景

一个典型的使用场景是,当用户使用 Dreambooth 等方法对 Stable Diffusion 模型进行个性化微调后,可以使用此节点。将微调后的完整模型和原始的、未修改的基础模型分别连接到节点的两个输入端口,通过配置提取参数,即可生成一个轻量级的 LoRA 文件,用于在其他工作流中快速应用相同的风格或概念。

LoraExtractKJ 节点源码链接

LoraExtractKJ 节点来自 ComfyUI-KJNodes 节点包。

评论

使用 GitHub 登录后即可参与讨论。

评论加载中…