mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-23 22:22:11 -03:00
- Added ModelMetadataProvider and CivitaiModelMetadataProvider for handling model metadata. - Introduced SQLiteModelMetadataProvider for SQLite database integration. - Created metadata_service.py to initialize and configure metadata providers. - Updated CivitaiClient to register as a metadata provider. - Refactored download_manager to use the new download_file method. - Added SQL schema for models, model_versions, and model_files. - Updated requirements.txt to include aiosqlite.
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
import os
|
|
import logging
|
|
from .model_metadata_provider import ModelMetadataProviderManager, SQLiteModelMetadataProvider
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
async def initialize_metadata_providers():
|
|
"""Initialize and configure all metadata providers"""
|
|
provider_manager = await ModelMetadataProviderManager.get_instance()
|
|
|
|
# Use hardcoded SQLite DB path if not set in settings
|
|
db_path = os.path.join(
|
|
os.path.dirname(os.path.dirname(os.path.dirname(__file__))),
|
|
'civitai', 'civitai.sqlite'
|
|
)
|
|
if db_path and os.path.exists(db_path):
|
|
try:
|
|
sqlite_provider = SQLiteModelMetadataProvider(db_path)
|
|
provider_manager.register_provider('sqlite', sqlite_provider)
|
|
logger.info(f"SQLite metadata provider registered with database: {db_path}")
|
|
except Exception as e:
|
|
logger.error(f"Failed to initialize SQLite metadata provider: {e}")
|
|
|
|
return provider_manager
|
|
|
|
async def get_metadata_provider(provider_name: str = None):
|
|
"""Get a specific metadata provider or default provider"""
|
|
provider_manager = await ModelMetadataProviderManager.get_instance()
|
|
|
|
if provider_name:
|
|
return provider_manager._get_provider(provider_name)
|
|
|
|
return provider_manager._get_provider()
|