When the user selects a LoRA on a flake and no cover has been picked
yet, fetch the LoRA's sibling image (same basename, .png/.jpg/.webp/...)
from models/loras/ and use it as the flake's default cover.
Triggers from all three LoRA selection paths (file browser, dropdown
change, dropdown blur) but only for the first LoRA on the flake, and
only when no cover file has been chosen by the user. Adds a server
endpoint /flakes/lora_sibling_image mirroring the existing checkpoint
sibling endpoint, with a shared helper.
- Add /flakes/checkpoint_sibling_image endpoint to find an image next to
the selected checkpoint with the same basename.
- In the preset editor, auto-load that image as cover when a checkpoint is
selected, but only if no cover already exists.
- Poll preset widget value in FlakeModelPreset so cover updates immediately
when the user swaps presets via the dropdown.
Closes#52
- Replace module-level _BROWSE_ROOTS with dynamic _get_browse_roots() called
at request time. This fixes the Empty folder bug caused by evaluating paths
before ComfyUI has finished registering them.
- Search ALL configured roots for a given type and merge/deduplicate results,
matching the behavior of folder_paths.get_filename_list().
- Add security check per-root so symlink escapes are skipped rather than fatal.
Closes#44