From b28fd28d2fbcb5a3ae93fa8eedb1c1841f61d2db Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Thu, 15 Feb 2024 11:35:12 -0500 Subject: [PATCH] lora strict filename matching --- CHANGELOG.md | 1 + extensions-builtin/Lora/extra_networks_lora.py | 4 ---- extensions-builtin/Lora/networks.py | 6 ++++-- modules/shared.py | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e54e74de7..1def2d984 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,6 +71,7 @@ - control fix processor override image after processor change - control fix display grid with batch - handle pipelines that return dict instead of object + - lora use strict name matching if preferred option is by-filename - fix inpaint mask only for diffusers - fix vae dtype mismatch, thanks @Disty0 - fix controlnet inpaint mask diff --git a/extensions-builtin/Lora/extra_networks_lora.py b/extensions-builtin/Lora/extra_networks_lora.py index 6f441f0ab..c8771e4de 100644 --- a/extensions-builtin/Lora/extra_networks_lora.py +++ b/extensions-builtin/Lora/extra_networks_lora.py @@ -16,11 +16,7 @@ class ExtraNetworkLora(extra_networks.ExtraNetwork): def activate(self, p, params_list): t0 = time.time() - additional = shared.opts.sd_lora self.errors.clear() - if additional != "None" and additional in networks.available_networks and not any(x for x in params_list if x.items[0] == additional): - p.all_prompts = [x + f"" for x in p.all_prompts] - params_list.append(extra_networks.ExtraNetworkParams(items=[additional, shared.opts.extra_networks_default_multiplier])) if len(params_list) > 0: self.active = True networks.originals.apply() # apply patches diff --git a/extensions-builtin/Lora/networks.py b/extensions-builtin/Lora/networks.py index 50a2de90c..d4cb5a19d 100644 --- a/extensions-builtin/Lora/networks.py +++ b/extensions-builtin/Lora/networks.py @@ -455,8 +455,10 @@ def list_available_networks(): available_networks[entry.name] = entry if entry.alias in available_network_aliases: forbidden_network_aliases[entry.alias.lower()] = 1 - available_network_aliases[entry.name] = entry - available_network_aliases[entry.alias] = entry + if shared.opts.lora_preferred_name == 'filename': + available_network_aliases[entry.name] = entry + else: + available_network_aliases[entry.alias] = entry if entry.shorthash: available_network_hash_lookup[entry.shorthash] = entry except OSError as e: # should catch FileNotFoundError and PermissionError etc. diff --git a/modules/shared.py b/modules/shared.py index c2e53df94..ca2ef2648 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -714,7 +714,7 @@ options_templates.update(options_section(('extra_networks', "Extra Networks"), { "diffusers_convert_embed": OptionInfo(False, "Auto-convert SD 1.5 embeddings to SDXL ", gr.Checkbox, {"visible": backend==Backend.DIFFUSERS}), "extra_networks_sep3": OptionInfo("

Extra networks settings

", "", gr.HTML), "extra_networks_styles": OptionInfo(True, "Show built-in styles"), - "lora_preferred_name": OptionInfo("filename", "LoRA preffered name", gr.Radio, {"choices": ["filename", "alias"]}), + "lora_preferred_name": OptionInfo("filename", "LoRA preferred name", gr.Radio, {"choices": ["filename", "alias"]}), "lora_add_hashes_to_infotext": OptionInfo(True, "LoRA add hash info"), "lora_force_diffusers": OptionInfo(False if not cmd_opts.use_openvino else True, "LoRA use alternative loading method"), "lora_fuse_diffusers": OptionInfo(False if not cmd_opts.use_openvino else True, "LoRA use merge when using alternative method"),