mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-23 14:12:11 -03:00
feat: improve civitai data handling and type safety, fixes #565
- Replace setdefault with get and explicit dict initialization in MetadataUpdater - Change civitai field type from Optional[Dict] to Dict[str, Any] with default_factory - Add None check and dict initialization in BaseModelMetadata.__post_init__ - Ensures civitai data is always a dictionary, preventing type errors and improving code reliability
This commit is contained in:
@@ -270,7 +270,12 @@ class MetadataUpdater:
|
||||
"""
|
||||
try:
|
||||
await MetadataManager.hydrate_model_data(model_data)
|
||||
civitai_data = model_data.setdefault('civitai', {})
|
||||
civitai_data = model_data.get('civitai')
|
||||
|
||||
if not isinstance(civitai_data, dict):
|
||||
civitai_data = {}
|
||||
model_data['civitai'] = civitai_data
|
||||
|
||||
custom_images = civitai_data.get('customImages')
|
||||
|
||||
if not isinstance(custom_images, list):
|
||||
@@ -446,4 +451,4 @@ class MetadataUpdater:
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error parsing image metadata: {e}", exc_info=True)
|
||||
return None
|
||||
return None
|
||||
|
||||
@@ -18,7 +18,7 @@ class BaseModelMetadata:
|
||||
preview_nsfw_level: int = 0 # NSFW level of the preview image
|
||||
notes: str = "" # Additional notes
|
||||
from_civitai: bool = True # Whether from Civitai
|
||||
civitai: Optional[Dict] = None # Civitai API data if available
|
||||
civitai: Dict[str, Any] = field(default_factory=dict) # Civitai API data if available
|
||||
tags: List[str] = None # Model tags
|
||||
modelDescription: str = "" # Full model description
|
||||
civitai_deleted: bool = False # Whether deleted from Civitai
|
||||
@@ -31,6 +31,9 @@ class BaseModelMetadata:
|
||||
|
||||
def __post_init__(self):
|
||||
# Initialize empty lists to avoid mutable default parameter issue
|
||||
if self.civitai is None:
|
||||
self.civitai = {}
|
||||
|
||||
if self.tags is None:
|
||||
self.tags = []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user