diff --git a/CHANGELOG.md b/CHANGELOG.md index 883bd51c5..795a8802a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ - cleanup dead rife code, thanks @Anai-Guo - lumina-dimoo attention-kwargs, thanks @Anai-Guo - improve network type/version lookup + - cleanup lora tags ## Update for 2026-08-26 diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py index e205ee9c8..d086bb8c8 100644 --- a/modules/sd_samplers.py +++ b/modules/sd_samplers.py @@ -46,6 +46,10 @@ def list_samplers(): return all_samplers +def get_samplers(): + return all_samplers + + def find_sampler_config(name): if name is not None and name != 'None': config = all_samplers_map.get(name, None) diff --git a/modules/shared.py b/modules/shared.py index b08e1d44e..c4fead304 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -108,8 +108,8 @@ if not files_cache.do_cache_folders: def list_checkpoint_titles(): - import modules.sd_models # pylint: disable=W0621 - return modules.sd_models.checkpoint_titles() + from modules.sd_models import checkpoint_titles # pylint: disable=W0621 + return checkpoint_titles() list_checkpoint_tiles = list_checkpoint_titles # alias for legacy typo @@ -124,24 +124,24 @@ def is_url(string): def refresh_checkpoints(): - import modules.sd_models # pylint: disable=W0621 - return modules.sd_models.list_models() + from modules.sd_models import list_models # pylint: disable=W0621 + return list_models() def refresh_vaes(): - import modules.sd_vae # pylint: disable=W0621 - modules.sd_vae.refresh_vae_list() + from modules.sd_vae import refresh_vae_list # pylint: disable=W0621 + refresh_vae_list() def refresh_upscalers(): - import modules.modelloader # pylint: disable=W0621 - modules.modelloader.load_upscalers() + from modules.modelloader import load_upscalers # pylint: disable=W0621 + load_upscalers() def list_samplers(): - import modules.sd_samplers # pylint: disable=W0621 - modules.sd_samplers.set_samplers() - return modules.sd_samplers.all_samplers + from modules.sd_samplers import set_samplers, get_samplers # pylint: disable=W0621 + set_samplers() + return get_samplers() log.debug('Initializing: settings') diff --git a/modules/ui_definitions.py b/modules/ui_definitions.py index abf3f623b..03aa08036 100644 --- a/modules/ui_definitions.py +++ b/modules/ui_definitions.py @@ -26,23 +26,23 @@ def list_onnx_providers(): def list_checkpoint_titles(): - import modules.sd_models # pylint: disable=redefined-outer-name - return modules.sd_models.checkpoint_titles() + from modules.sd_models import checkpoint_titles # pylint: disable=redefined-outer-name + return checkpoint_titles() def refresh_checkpoints(): - import modules.sd_models # pylint: disable=redefined-outer-name - return modules.sd_models.list_models() + from modules.sd_models import list_models # pylint: disable=redefined-outer-name + return list_models() def refresh_vaes(): - import modules.sd_vae # pylint: disable=redefined-outer-name - modules.sd_vae.refresh_vae_list() + from modules.sd_vae import refresh_vae_list # pylint: disable=redefined-outer-name + refresh_vae_list() def refresh_upscalers(): - import modules.modelloader # pylint: disable=redefined-outer-name - modules.modelloader.load_upscalers() + from modules.modelloader import load_upscalers # pylint: disable=redefined-outer-name + load_upscalers() def list_samplers(): diff --git a/modules/ui_extra_networks_lora.py b/modules/ui_extra_networks_lora.py index 8a1c11c98..0c3b0cace 100644 --- a/modules/ui_extra_networks_lora.py +++ b/modules/ui_extra_networks_lora.py @@ -55,9 +55,20 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage): tags[tag] = 0 except Exception: pass + + # cleanup tags: remove model names, bad words, and special characters + model_words = ['ltx', 'minimax', 'h3', 'sdxl', 'klein', 'wan', 'flux', 'qwen', 'vace', 'lcm', 'slider'] + bad_words = ['concept', 'style', 'styles', 'base model', 'video', 'audio', 'turbo', 'distill', 'assets', 'action', 'enhancer', 'detail', 'tool', 'dir', 'all'] + bad_parts = ['lora', 'comfyui', 't2i', 'i2i', 't2v', 'i2v', 'steps'] bad_chars = [';', ':', '<', ">", "*", '?', '\'', '\"', '(', ')', '[', ']', '{', '}', '\\', '/'] clean_tags = {} for k, v in tags.items(): + if k in bad_words: + continue + if any(k.startswith(s) for s in model_words): + continue + if any(s in k for s in bad_parts): + continue tag = ''.join(i for i in k if i not in bad_chars).strip() clean_tags[tag] = v