From ab57d9ceee1e1de7a8be104605bce02e71a7bcff Mon Sep 17 00:00:00 2001 From: db0 Date: Wed, 27 Mar 2024 01:21:55 +0100 Subject: [PATCH] fix: avoid crash on long lora names --- hordelib/model_manager/hyper.py | 4 +--- hordelib/model_manager/lora.py | 2 +- tests/model_managers/test_mm_lora.py | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/hordelib/model_manager/hyper.py b/hordelib/model_manager/hyper.py index 93bb7c7e..9be2ad7a 100644 --- a/hordelib/model_manager/hyper.py +++ b/hordelib/model_manager/hyper.py @@ -181,9 +181,7 @@ def init_model_managers( self.active_model_managers.append( resolve_manager_to_load_type( multiprocessing_lock=multiprocessing_lock, - civitai_api_token=( - os.environ["CIVIT_API_TOKEN"] if "CIVIT_API_TOKEN" in os.environ.keys() else None - ), + civitai_api_token=os.getenv("CIVIT_API_TOKEN", None), ), ) diff --git a/hordelib/model_manager/lora.py b/hordelib/model_manager/lora.py index fc014369..104095b7 100644 --- a/hordelib/model_manager/lora.py +++ b/hordelib/model_manager/lora.py @@ -393,7 +393,7 @@ def _parse_civitai_lora_data(self, item, adhoc=False): for file in version.get("files", {}): if file.get("primary", False) and file.get("name", "").endswith(".safetensors"): sanitized_name = Sanitizer.sanitise_model_name(lora_name) - lora_filename = f'{Sanitizer.sanitise_filename(lora_name)}_{version.get("id", 0)}' + lora_filename = f'{Sanitizer.sanitise_filename(lora_name)[0:128]}_{version.get("id", 0)}' lora_key = sanitized_name.lower().strip() lora["name"] = lora_key lora["orig_name"] = lora_name diff --git a/tests/model_managers/test_mm_lora.py b/tests/model_managers/test_mm_lora.py index 40c8b549..e89b299b 100644 --- a/tests/model_managers/test_mm_lora.py +++ b/tests/model_managers/test_mm_lora.py @@ -148,6 +148,22 @@ def test_fetch_specific_lora_version(self): assert lora_model_manager.get_lora_filename("22591") == "GAG-RPGPotionsLoRaXL_197256.safetensors" lora_model_manager.stop_all() + def test_lora_long_filename(self): + lora_model_manager = LoraModelManager( + download_wait=False, + allowed_adhoc_lora_storage=1024, + civitai_api_token=os.getenv("CIVIT_API_TOKEN", None), + ) + lora_model_manager.download_default_loras() + lora_model_manager.wait_for_downloads(600) + lora_model_manager.wait_for_adhoc_reset(15) + + lora_model_manager.ensure_lora_deleted(189973) + lora_model_manager.fetch_adhoc_lora("372094", is_version=True) + lora_dict = lora_model_manager.get_model_reference_info("189973") + assert lora_model_manager.find_latest_version(lora_dict) == "372094" + lora_model_manager.stop_all() + def test_reject_adhoc_nsfw_lora(self): lora_model_manager = LoraModelManager( download_wait=False,