mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-25 15:15:44 -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