53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
from .utils.any_hack import any
|
|
from .FEEncLoraAutoLoaderStack import FEEncLoraAutoLoaderStack
|
|
|
|
|
|
class FEEncLoraAutoLoader(FEEncLoraAutoLoaderStack):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {
|
|
"required": {
|
|
"model": ("MODEL",),
|
|
"clip": ("CLIP",),
|
|
"model_type": (["sd1.5", "sdxl", "sd3", "sd3.5", 'pony', 'il', 'noob', 'flux'],),
|
|
"prompt": ("STRING", {"default": "", 'forceInput': True}),
|
|
"strength_model": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}),
|
|
"strength_clip": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("MODEL", "CLIP", 'STRING', any)
|
|
RETURN_NAMES = ("MODEL", "CLIP", "prompt", "EXTRA")
|
|
FUNCTION = "load_lora"
|
|
|
|
CATEGORY = "loaders"
|
|
|
|
def load_lora(self, model, clip, model_type, prompt, strength_model, strength_clip):
|
|
stack, prompt, extra = self.load_lora_stack(model_type, prompt, strength_model, strength_clip)
|
|
|
|
m = model
|
|
c = clip
|
|
# result = []
|
|
lcnt = 0
|
|
|
|
for name, model_s, clip_s in stack:
|
|
lora_name = name
|
|
# try:
|
|
# result = get_metadata(lora_name) or {}
|
|
# except:
|
|
# result = {}
|
|
if not lora_name:
|
|
print("Failed to load lora with empty name", name)
|
|
continue
|
|
try:
|
|
m, c = super().load_lora(m, c, lora_name, model_s, clip_s)
|
|
lcnt += 1
|
|
except:
|
|
print("Failed to load lora with error occur", name)
|
|
raise
|
|
print("Auto Load", lcnt, "LLor ClipData")
|
|
return (m, c, prompt, extra,)
|