From c1e1a061d42384e06ff6c547c4a00aef7cc96e59 Mon Sep 17 00:00:00 2001 From: Jeff Leung Date: Mon, 12 Feb 2024 15:45:53 +0800 Subject: [PATCH] add try-catch for weight casting --- nodes.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/nodes.py b/nodes.py index b86b954..60e32d9 100644 --- a/nodes.py +++ b/nodes.py @@ -39,12 +39,25 @@ class LoraTagLoader: for f in founds: tag = f[1:-1] pak = tag.split(":") - (type, name, wModel) = pak[:3] - wClip = wModel - if len(pak) > 3: - wClip = pak[3] + type = pak[0] if type != 'lora': continue + name = None + if len(pak) > 1 and len(pak[1]) > 0: + name = pak[1] + else: + continue + wModel = wClip = 0 + try: + if len(pak) > 2 and len(pak[2]) > 0: + wModel = float(pak[2]) + wClip = wModel + if len(pak) > 3 and len(pak[3]) > 0: + wClip = float(pak[3]) + except ValueError: + continue + if name == None: + continue lora_name = None for lora_file in lora_files: if Path(lora_file).name.startswith(name) or lora_file.startswith(name): @@ -53,7 +66,7 @@ class LoraTagLoader: if lora_name == None: print(f"bypassed lora tag: { (type, name, wModel, wClip) } >> { lora_name }") continue - # print(f"detected lora tag: { (type, name, wModel, wClip) } >> { lora_name }") + print(f"detected lora tag: { (type, name, wModel, wClip) } >> { lora_name }") lora_path = folder_paths.get_full_path("loras", lora_name) lora = None @@ -69,9 +82,7 @@ class LoraTagLoader: lora = comfy.utils.load_torch_file(lora_path, safe_load=True) self.loaded_lora = (lora_path, lora) - strength_model = float(wModel) - strength_clip = float(wClip) - model_lora, clip_lora = comfy.sd.load_lora_for_models(model_lora, clip_lora, lora, strength_model, strength_clip) + model_lora, clip_lora = comfy.sd.load_lora_for_models(model_lora, clip_lora, lora, wModel, wClip) plain_prompt = re.sub(self.tag_pattern, "", text) return (model_lora, clip_lora, plain_prompt)