mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
refactor(metadata): remove outdated metadata provider summary documentation
This commit is contained in:
@@ -1,119 +0,0 @@
|
||||
# Metadata Provider Refactor Summary
|
||||
|
||||
## Overview
|
||||
This refactor improves the metadata provider initialization logic and replaces direct Civitai client usage with the unified FallbackMetadataProvider system throughout the codebase.
|
||||
|
||||
## Key Changes
|
||||
|
||||
### 1. Enhanced Metadata Service (`py/services/metadata_service.py`)
|
||||
|
||||
#### Improved `initialize_metadata_providers()`:
|
||||
- Added provider clearing for proper reinitialization
|
||||
- Enhanced error handling and validation
|
||||
- Better logging for debugging
|
||||
- Improved provider ordering logic based on priority settings
|
||||
- More robust database path validation
|
||||
|
||||
#### Enhanced `update_metadata_provider_priority()`:
|
||||
- More robust error handling
|
||||
- Proper reinitalization of all providers
|
||||
- Better logging for setting changes
|
||||
|
||||
#### New helper function:
|
||||
- Added `get_default_metadata_provider()` for easier access to the default provider
|
||||
|
||||
### 2. Updated Recipe Parsers
|
||||
All recipe parsers now use the unified metadata provider instead of direct civitai_client:
|
||||
|
||||
#### Files Updated:
|
||||
- `py/recipes/parsers/civitai_image.py`
|
||||
- `py/recipes/parsers/comfy.py`
|
||||
- `py/recipes/parsers/automatic.py`
|
||||
- `py/recipes/parsers/recipe_format.py`
|
||||
- `py/recipes/parsers/meta_format.py`
|
||||
|
||||
#### Changes Made:
|
||||
- Added import for `get_default_metadata_provider`
|
||||
- Replaced `civitai_client.get_model_by_hash()` with `metadata_provider.get_model_by_hash()`
|
||||
- Replaced `civitai_client.get_model_version_info()` with `metadata_provider.get_model_version_info()`
|
||||
- Updated method signatures to indicate civitai_client parameter is deprecated
|
||||
|
||||
### 3. Download Manager Updates (`py/services/download_manager.py`)
|
||||
|
||||
#### Metadata Operations:
|
||||
- Replaced direct civitai_client usage with metadata_provider for:
|
||||
- `get_model_version()` calls for version info
|
||||
|
||||
#### Download Operations:
|
||||
- Replaced `civitai_client.download_file()` with direct `downloader.download_file()` calls
|
||||
- Replaced `civitai_client.download_preview_image()` with `downloader.download_to_memory()` for images
|
||||
- Added proper authentication flags (`use_auth=True` for model files, `use_auth=False` for preview images)
|
||||
|
||||
### 4. Recipe Scanner Updates (`py/services/recipe_scanner.py`)
|
||||
- Added import for `get_default_metadata_provider`
|
||||
- Replaced `civitai_client.get_model_version_info()` with `metadata_provider.get_model_version_info()`
|
||||
|
||||
### 5. Utility Functions Updates (`py/utils/routes_common.py`)
|
||||
- Added import for `get_downloader`
|
||||
- Replaced preview image downloads with direct downloader usage
|
||||
- Improved image optimization logic to work with in-memory downloads
|
||||
- Better error handling for download and image processing operations
|
||||
|
||||
## Benefits
|
||||
|
||||
### 1. Unified Metadata Access
|
||||
- All metadata requests now go through the fallback provider system
|
||||
- Automatic failover between SQLite archive database and Civitai API
|
||||
- Consistent metadata access patterns across all components
|
||||
|
||||
### 2. Improved Download Performance
|
||||
- Direct use of the optimized downloader service
|
||||
- Better connection pooling and retry logic
|
||||
- Proper authentication handling
|
||||
- Support for resumable downloads
|
||||
|
||||
### 3. Better Configuration Management
|
||||
- Settings changes now properly update provider priority
|
||||
- Clear separation between metadata and download operations
|
||||
- Improved error handling and logging
|
||||
|
||||
### 4. Enhanced Reliability
|
||||
- Fallback mechanisms ensure metadata is always available when possible
|
||||
- Better error handling and recovery
|
||||
- Consistent behavior across all parsers and services
|
||||
|
||||
## Usage
|
||||
|
||||
### Settings Changes
|
||||
When users change metadata provider settings:
|
||||
1. The `update_metadata_provider_priority()` function is automatically called
|
||||
2. All providers are reinitialized with the new settings
|
||||
3. The fallback provider is updated with the correct priority order
|
||||
|
||||
### Metadata Access
|
||||
All components now use:
|
||||
```python
|
||||
from ...services.metadata_service import get_default_metadata_provider
|
||||
|
||||
metadata_provider = await get_default_metadata_provider()
|
||||
result = await metadata_provider.get_model_by_hash(hash_value)
|
||||
```
|
||||
|
||||
### Downloads
|
||||
All downloads now use the unified downloader:
|
||||
```python
|
||||
from ...services.downloader import get_downloader
|
||||
|
||||
downloader = await get_downloader()
|
||||
success, result = await downloader.download_file(url, path, use_auth=True)
|
||||
```
|
||||
|
||||
## Compatibility
|
||||
- All existing APIs and interfaces remain unchanged
|
||||
- Backward compatibility maintained for existing workflows
|
||||
- No changes required for external integrations
|
||||
|
||||
## Testing
|
||||
- All updated files pass syntax validation
|
||||
- Existing functionality preserved
|
||||
- Enhanced error handling and logging for better debugging
|
||||
Reference in New Issue
Block a user