DRIVE_LIST was populated once at import time, so swapping an SD card
had no effect until ComfyUI restarted. Now _detect_drives() is called
on each root-level browse (triggered by opening or refreshing the file
browser), keeping the drive list and security whitelist current.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Single-clicking a LoRA file in the browse dialog now shows a floating
popup with four tabbed sections — Overview, Training, Tags, and About —
populated from the .safetensors header's __metadata__ block plus
filesystem stats (size, modified date).
New API: GET /external_lora/metadata?drive=&path= parses the
safetensors header using stdlib struct/json with a 64 MB sanity cap;
non-safetensors files or missing metadata degrade gracefully.
https://claude.ai/code/session_01E5Lje549owqMJX9Bz2PDS2
Replace the drive dropdown and sub_path free-text input with a Browse
button that opens a Windows Explorer-style modal. Users can now navigate
drives and folders visually, click into directories, and select a LoRA
file directly without typing paths manually.
Backend: add POST /external_lora/browse endpoint that returns sorted
subdirectories and LoRA files for a given path; empty drive returns the
drive list as a root-level sentinel. Fixes _is_within_drive to handle
Windows drive roots correctly (avoids double-separator bug).
Frontend: modal with breadcrumb navigation, folder/file list, Escape-
to-close, race-condition guard (navGen token), multi-node-safe class-
based DOM (no id collisions), read-only path label, and backward-compat
workflow-load restoration from persisted widget values.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ComfyUI External LoRA Loader
A ComfyUI custom node that lets you load LoRA files from **any path on any mounted drive** — no server restarts, no manual config edits, no symlinks.