KJNodes/loragenerated

LoraReduceRank

Этот узел основан на resize_lora из sd-scripts от kohya-ss

Lora Reduce Rank

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

Узел LoraReduceRank, основанный на resize_lora из sd-scripts от kohya-ss

Узел LoraReduceRank — это инструмент для уменьшения ранга (Rank) модели LoRA. Его основная функция — чтение существующей модели LoRA, уменьшение размера файла модели и вычислительных требований за счёт изменения размерности её внутренних матриц параметров, а также сохранение обработанной новой модели в выходной каталог.

Функциональность узла

Этот узел реализован на основе скрипта resize_lora.py из sd-scripts от kohya-ss. Он поддерживает несколько методов динамического уменьшения ранга, включая методы, основанные на соотношении сингулярных значений, их кумулятивной сумме, норме Фробениуса или обнаружении точки изгиба (elbow point) в кривой сингулярных значений, позволяя пользователю указать фиксированный новый ранг или задать динамический порог для автоматического определения подходящего ранга. Узел может обрабатывать данные в различных форматах точности и сохранять метаданные, совместимые с исходной моделью.

Описание параметров узла - LoraReduceRank

Входные соединения (Inputs)

Название параметраТип данныхОбязательныйЗначение по умолчаниюДопустимые значения/опцииОписание
lora_nameFOLDER_PATHSДа--Выберите целевой файл модели LoRA из списка загруженных моделей, для которого требуется выполнить уменьшение ранга.

Параметры управления (Parameters)

Название параметраТип данныхОбязательныйЗначение по умолчаниюДопустимые значения/опцииОписание
dynamic_methodCOMBOДаdisabled"disabled", "sv_ratio", "sv_cumulative", "sv_fro", "sv_knee"Метод для динамического определения новых alpha и размерностей (dims). sv_knee находит точку изгиба (elbow) в кривой сингулярных значений.
output_dtypeCOMBOДаmatch_original"match_original", "fp16", "bf16", "fp32"Тип данных для сохранения LoRA: match_original, fp16, bf16 или fp32.
new_rankINTДа81 - 4096 (шаг: 1)Новый ранг для изменения размера LoRA. Выступает в качестве максимального ранга при использовании dynamic_method.
dynamic_paramFLOATДа0.20.0 - 2.0 (шаг: 0.01)Параметр для динамических методов. Для sv_knee: чувствительность (1.0 = стандартная точка изгиба, <1.0 = более агрессивное снижение/низкий ранг, >1.0 = более консервативное).
verboseBOOLEANДаTrue-Управляет выводом подробных логов процесса обработки в консоль. Включение (True) полезно для отладки и понимания деталей уменьшения ранга.

Сценарии использования

В реальном рабочем процессе этот узел можно использовать, когда файл модели LoRA слишком велик или скорость вывода (inference) слишком низкая. Например, после загрузки LoRA с высоким рангом для стилизации вы можете подключить её к этому узлу, установить более низкое значение new_rank, и после выполнения в выходной папке получите новый файл LoRA меньшего размера и более эффективный, который можно использовать в последующих этапах.

Важные замечания

Обратите внимание, что это экспериментальный узел. Операция уменьшения ранга — это сжатие с потерями, и чрезмерное уменьшение ранга может значительно ухудшить качество модели LoRA. Сам узел не выводит тензоры, а только выполняет операцию сохранения файла.

Ссылка на исходный код узла LoraReduceRank

Узел LoraReduceRank взят из пакета узлов ComfyUI-KJNodes.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…