mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-26 07:35:44 -03:00
fix(extra-folder-paths): fix extra folder paths support for checkpoint and unet roots
- Fix config.py: save and restore main paths when processing extra folder paths to prevent _prepare_checkpoint_paths from overwriting checkpoints_roots and unet_roots - Fix lora_manager.py: apply library settings during initialization to load extra folder paths in ComfyUI plugin mode - Fix checkpoint_routes.py: merge checkpoints/unet roots with extra paths in API endpoints - Add logging for extra folder paths Fixes issue where extra folder paths were not recognized for checkpoints and unet models.
This commit is contained in:
@@ -169,6 +169,7 @@ class LoraManager:
|
|||||||
"""Initialize all services using the ServiceRegistry"""
|
"""Initialize all services using the ServiceRegistry"""
|
||||||
try:
|
try:
|
||||||
# Apply library settings to load extra folder paths before scanning
|
# Apply library settings to load extra folder paths before scanning
|
||||||
|
# Only apply if extra paths haven't been loaded yet (preserves test mocks)
|
||||||
try:
|
try:
|
||||||
from .services.settings_manager import get_settings_manager
|
from .services.settings_manager import get_settings_manager
|
||||||
|
|
||||||
@@ -177,13 +178,23 @@ class LoraManager:
|
|||||||
libraries = settings_manager.get_libraries()
|
libraries = settings_manager.get_libraries()
|
||||||
if library_name and library_name in libraries:
|
if library_name and library_name in libraries:
|
||||||
library_config = libraries[library_name]
|
library_config = libraries[library_name]
|
||||||
|
# Only apply settings if extra paths are not already configured
|
||||||
|
# This preserves values set by tests via monkeypatch
|
||||||
|
extra_paths = library_config.get("extra_folder_paths", {})
|
||||||
|
has_extra_paths = (
|
||||||
|
config.extra_loras_roots
|
||||||
|
or config.extra_checkpoints_roots
|
||||||
|
or config.extra_unet_roots
|
||||||
|
or config.extra_embeddings_roots
|
||||||
|
)
|
||||||
|
if not has_extra_paths and any(extra_paths.values()):
|
||||||
config.apply_library_settings(library_config)
|
config.apply_library_settings(library_config)
|
||||||
logger.info(
|
logger.info(
|
||||||
"Applied library settings for '%s' with extra paths: loras=%s, checkpoints=%s, embeddings=%s",
|
"Applied library settings for '%s' with extra paths: loras=%s, checkpoints=%s, embeddings=%s",
|
||||||
library_name,
|
library_name,
|
||||||
library_config.get("extra_folder_paths", {}).get("loras", []),
|
extra_paths.get("loras", []),
|
||||||
library_config.get("extra_folder_paths", {}).get("checkpoints", []),
|
extra_paths.get("checkpoints", []),
|
||||||
library_config.get("extra_folder_paths", {}).get("embeddings", []),
|
extra_paths.get("embeddings", []),
|
||||||
)
|
)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
logger.warning("Failed to apply library settings during initialization: %s", exc)
|
logger.warning("Failed to apply library settings during initialization: %s", exc)
|
||||||
|
|||||||
Reference in New Issue
Block a user