| | import os |
| | import comfy.sd |
| | from nodes import * |
| | import folder_paths |
| |
|
| | if __name__ == os.path.splitext(os.path.basename(__file__))[0] : |
| | from ConsoleColor import print, console, ccolor |
| | from mypath import * |
| | else: |
| | from .ConsoleColor import print, console, ccolor |
| | from .mypath import * |
| |
|
| | class LoraLoaderText: |
| | def __init__(self): |
| | self.loaded_lora = None |
| | |
| | @classmethod |
| | def INPUT_TYPES(s): |
| | return { |
| | "required": { |
| | "model": ("MODEL",), |
| | "clip": ("CLIP", ), |
| | "lora_name": ("STRING", { |
| | "multiline": False, |
| | "default": (folder_paths.get_filename_list("loras"), ) |
| | }), |
| | |
| | "strength_model": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), |
| | "strength_clip": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), |
| | } |
| | } |
| | RETURN_TYPES = ("MODEL", "CLIP") |
| | FUNCTION = "load_lora" |
| |
|
| | CATEGORY = "loaders" |
| |
|
| | def load_lora(self, model, clip, lora_name, strength_model, strength_clip): |
| | |
| | print(f"[{ccolor}]lora_name : [/{ccolor}]", lora_name) |
| | if strength_model == 0 and strength_clip == 0: |
| | print("[red]strength_model,strength_clip 0[/red] : ", lora_name) |
| | return (model, clip) |
| | |
| | if lora_name is None or lora_name =="" : |
| | print("[red]No lora_name[/red] : ", lora_name) |
| | return (model, clip) |
| | |
| | lora_path = folder_paths.get_full_path("loras", lora_name) |
| | if lora_path is None: |
| | print("[yellow]No lora_path of lora_name [/yellow] : ", lora_name) |
| | lora_path=getFullPath(lora_name,"loras") |
| | if lora_path is None: |
| | print("[red]No lora_path of lora_name [/red] : ", lora_name) |
| | return (model, clip) |
| | |
| | lora = None |
| | if self.loaded_lora is not None: |
| | if self.loaded_lora[0] == lora_path: |
| | lora = self.loaded_lora[1] |
| | else: |
| | del self.loaded_lora |
| |
|
| | if lora is None: |
| | lora = comfy.utils.load_torch_file(lora_path, safe_load=True) |
| | self.loaded_lora = (lora_path, lora) |
| | |
| | |
| |
|
| | try: |
| | model_lora, clip_lora = comfy.sd.load_lora_for_models(model, clip, lora, strength_model, strength_clip) |
| | return (model_lora, clip_lora) |
| | except Exception as e: |
| | console.print_exception() |
| | return (model, clip) |
| |
|
| | |
| | |
| | |