Update lora_helper.py

This commit is contained in:
Inoland
2026-03-28 11:19:14 +04:00
parent 72730ed7e5
commit b5d6a0a063
@@ -1,3 +1,65 @@
import folder_paths
import comfy.utils
import comfy.sd
class InoLoadMultipleLora:
def __init__(self):
self.loaded_loras = [None] * 5
@classmethod
def INPUT_TYPES(s):
lora_list = folder_paths.get_filename_list("loras")
inputs = {
"required": {
"model": ("MODEL",),
"clip": ("CLIP",),
},
"optional": {},
}
for i in range(5):
inputs["optional"][f"lora_{i}_enable"] = ("BOOLEAN", {"default": False, "label_off": "OFF", "label_on": "ON"})
inputs["optional"][f"lora_{i}_name"] = (lora_list,)
inputs["optional"][f"lora_{i}_strength_model"] = ("FLOAT", {"default": 1.0, "min": -100.0, "max": 100.0, "step": 0.01})
inputs["optional"][f"lora_{i}_strength_clip"] = ("FLOAT", {"default": 1.0, "min": -100.0, "max": 100.0, "step": 0.01})
return inputs
RETURN_TYPES = ("MODEL", "CLIP")
RETURN_NAMES = ("model", "clip")
FUNCTION = "load_loras"
CATEGORY = "InoNodes"
def load_loras(self, model, clip, **kwargs):
for i in range(5):
enable = kwargs.get(f"lora_{i}_enable", False)
if not enable:
continue
lora_name = kwargs.get(f"lora_{i}_name")
strength_model = kwargs.get(f"lora_{i}_strength_model", 1.0)
strength_clip = kwargs.get(f"lora_{i}_strength_clip", 1.0)
if lora_name is None or (strength_model == 0 and strength_clip == 0):
continue
lora_path = folder_paths.get_full_path_or_raise("loras", lora_name)
lora = None
if self.loaded_loras[i] is not None:
if self.loaded_loras[i][0] == lora_path:
lora = self.loaded_loras[i][1]
else:
self.loaded_loras[i] = None
if lora is None:
lora = comfy.utils.load_torch_file(lora_path, safe_load=True)
self.loaded_loras[i] = (lora_path, lora)
model, clip = comfy.sd.load_lora_for_models(model, clip, lora, strength_model, strength_clip)
return (model, clip)
class InoCalculateLoraConfig:
"""
@@ -100,7 +162,9 @@ class InoCalculateLoraConfig:
LOCAL_NODE_CLASS = {
"InoCalculateLoraConfig": InoCalculateLoraConfig,
"InoLoadMultipleLora": InoLoadMultipleLora,
}
LOCAL_NODE_NAME = {
"InoCalculateLoraConfig": "Ino Calculate Lora Config",
"InoLoadMultipleLora": "Ino Load Multiple Lora",
}