diff --git a/py/routes/base_model_routes.py b/py/routes/base_model_routes.py index 346b9bc2..967a0f9b 100644 --- a/py/routes/base_model_routes.py +++ b/py/routes/base_model_routes.py @@ -612,8 +612,9 @@ class BaseModelRoutes(ABC): needs_resort = False # Prepare models to process, only those without CivitAI data or missing tags, description, or creator + enable_metadata_archive_db = settings.get('enable_metadata_archive_db', False) to_process = [ - model for model in cache.raw_data + model for model in cache.raw_data if ( model.get('sha256') and ( @@ -623,6 +624,10 @@ class BaseModelRoutes(ABC): or not model.get('modelDescription') or not (model.get('civitai') and model['civitai'].get('creator')) ) + and ( + (enable_metadata_archive_db) + or (not enable_metadata_archive_db and model.get('from_civitai') is True) + ) ) ] total_to_process = len(to_process) diff --git a/py/utils/routes_common.py b/py/utils/routes_common.py index 35c9eff8..80765f7b 100644 --- a/py/utils/routes_common.py +++ b/py/utils/routes_common.py @@ -13,6 +13,7 @@ from ..utils.exif_utils import ExifUtils from ..utils.metadata_manager import MetadataManager from ..services.websocket_manager import ws_manager from ..services.metadata_service import get_default_metadata_provider, get_metadata_provider +from ..services.settings_manager import settings logger = logging.getLogger(__name__) @@ -207,6 +208,8 @@ class ModelRouteUtils: local_metadata = await ModelRouteUtils.load_local_metadata(metadata_path) if model_data.get('from_civitai') is False: + if not settings.get('enable_metadata_archive_db', False): + return False # Likely deleted from CivitAI, use archive_db if available metadata_provider = await get_metadata_provider('sqlite') else: