From c76b287aed91e4c8dae9560bbd16aa82f6303c17 Mon Sep 17 00:00:00 2001 From: Will Miao <13051207myq@gmail.com> Date: Sat, 15 Mar 2025 07:25:00 +0800 Subject: [PATCH] Normalize SHA256 hash handling by converting to lowercase in LoraScanner and LoraMetadata classes for consistency. --- py/services/lora_scanner.py | 8 ++++---- py/utils/models.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/py/services/lora_scanner.py b/py/services/lora_scanner.py index 559227cf..ca44cb19 100644 --- a/py/services/lora_scanner.py +++ b/py/services/lora_scanner.py @@ -102,7 +102,7 @@ class LoraScanner: # Build hash index and tags count for lora_data in raw_data: if 'sha256' in lora_data and 'file_path' in lora_data: - self._hash_index.add_entry(lora_data['sha256'], lora_data['file_path']) + self._hash_index.add_entry(lora_data['sha256'].lower(), lora_data['file_path']) # Count tags if 'tags' in lora_data and lora_data['tags']: @@ -649,15 +649,15 @@ class LoraScanner: # Add new methods for hash index functionality def has_lora_hash(self, sha256: str) -> bool: """Check if a LoRA with given hash exists""" - return self._hash_index.has_hash(sha256) + return self._hash_index.has_hash(sha256.lower()) def get_lora_path_by_hash(self, sha256: str) -> Optional[str]: """Get file path for a LoRA by its hash""" - return self._hash_index.get_path(sha256) + return self._hash_index.get_path(sha256.lower()) def get_lora_hash_by_path(self, file_path: str) -> Optional[str]: """Get hash for a LoRA by its file path""" - return self._hash_index.get_hash(file_path) + return self._hash_index.get_hash(file_path) # Add new method to get top tags async def get_top_tags(self, limit: int = 20) -> List[Dict[str, any]]: diff --git a/py/utils/models.py b/py/utils/models.py index 67be65f7..e543cc8c 100644 --- a/py/utils/models.py +++ b/py/utils/models.py @@ -47,7 +47,7 @@ class LoraMetadata: file_path=save_path.replace(os.sep, '/'), size=file_info.get('sizeKB', 0) * 1024, modified=datetime.now().timestamp(), - sha256=file_info['hashes'].get('SHA256', ''), + sha256=file_info['hashes'].get('SHA256', '').lower(), base_model=base_model, preview_url=None, # Will be updated after preview download preview_nsfw_level=0, # Will be updated after preview download, it is decided by the nsfw level of the preview image