KJNodes/loragenerated

LoraReduceRank

该节点基于 kohya-ss 的 sd-scripts 中的 resize_lora

Lora Reduce Rank

lora_name
COMBO
new_rank
8
dynamic_method
disabled
dynamic_param
0.20
output_dtype
match_original
verbose
KJNodes

LoraReduceRank 节点,基于 kohya-ss 的 sd-scripts 中的 resize_lora

LoraReduceRank 节点是一个用于降低 LoRA 模型秩(Rank)的工具。它的核心功能是读取一个现有的 LoRA 模型,通过调整其内部参数矩阵的维度来减小模型文件的大小和计算需求,并将处理后的新模型保存到输出目录。

节点功能

该节点基于 kohya-ss 的 sd-scripts 中的 resize_lora.py 脚本实现。它支持多种动态降秩方法,包括基于奇异值比率、累积和、Frobenius 范数或检测奇异值曲线肘点的方法,允许用户指定一个固定的新秩或设定一个动态阈值来自动确定合适的秩。节点可以处理多种数据精度格式,并保持与原模型兼容的元数据。

节点参数说明 - LoraReduceRank

连接输入 (Inputs)

参数名称数据类型必填默认值取值范围/选项说明
lora_nameCOMBO--从已加载的 LoRA 模型列表中,选择需要进行降秩处理的目标模型文件。

控件参数 (Parameters)

参数名称数据类型必填默认值取值范围/选项说明
dynamic_methodCOMBOdisabled"disabled", "sv_ratio", "sv_cumulative", "sv_fro", "sv_knee"用于动态确定新 alpha 和 dim 的方法。sv_knee 可找出奇异值曲线的肘点。
output_dtypeCOMBOmatch_original"match_original", "fp16", "bf16", "fp32"保存 LoRA 的数据类型:match_original、fp16、bf16 或 fp32。
new_rankINT81 - 4096 (步长: 1)调整 LoRA 的新秩。使用动态方法时作为最大秩。
dynamic_paramFLOAT0.20.0 - 2.0 (步长: 0.01)动态方法的参数。对于 sv_knee:敏感度(1.0=标准肘点,<1.0=更激进/更低秩,>1.0=更保守)。
verboseBOOLEANTrue-控制是否在控制台输出详细的处理过程日志。启用(True)有助于调试和了解降秩细节。

使用场景

在实际工作流中,当您发现一个 LoRA 模型文件过大或推理速度过慢时,可以使用此节点。例如,在加载一个高秩 LoRA 进行风格化生成后,您可以将其连接到此节点,设置一个较低的 new_rank 值,运行后即可在输出文件夹中获得一个体积更小、效率更高的新 LoRA 文件,供后续流程使用。

注意事项

请注意,这是一个实验性节点。降秩操作是一种有损压缩,过度降低秩可能会显著影响 LoRA 模型的效果。节点本身不输出张量,仅执行文件保存操作。

LoraReduceRank 节点源码链接

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

评论

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

评论加载中…