mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-10-07 18:12:12 -03:00
Starting ComfyUI with an external drive switched off erased that drive's path from `settings.json`. `Config._dedupe_existing_paths()` drops paths that do not exist at the moment the root list is built, and `save_folder_paths_to_settings()` (plugin mode, called from `Config.__init__`) persisted `list(self.loras_roots)` through `upsert_library(folder_paths=...)`, which REPLACES the library's paths. One boot with the drive off was therefore enough to lose the configuration, not just to hide the root — the same applied to checkpoints/unet/embeddings and the other-model keys. * `Config` now records the *configured* (existence-unfiltered) primary paths per model type while building the live lists, and the startup sync persists those. A path the host (plugin mode) or the library (standalone mode) no longer configures is still dropped, so removing a path keeps working. * In standalone mode the host mock (`MockFolderPaths.get_folder_paths`) already filters non-existent paths out of settings.json, so the active library snapshot is the only record of what the user configured; `_remember_library_configured_paths()` reads it there and leaves plugin mode to ComfyUI's own unfiltered list. * `_resolve_valid_default_root()` receives the configured paths in `allowed_paths`, so a `default_*_root` on a switched-off drive is no longer "repaired" onto another root. * `_append_new_paths()` is the shared append-only union (order preserved, case insensitive) used by the sync. Verified: a new config test builds the plugin-mode sync with one switched-off drive, one readable root and one path the host dropped — the switched-off path and the default root that points at it survive, the dropped path does not, and the live `loras_roots` still holds only the readable root. tests/config 64 passed.