Nodes/Fantastic Loras/Fantastic Any Selector ๐ŸŽฏ
ComfyUI Node

Fantastic Any Selector ๐ŸŽฏ

A folder-filtered filename picker that works with any loader, not just LoRAs

By AdudeguymanยทCreated 3 months agoยทUpdated 16 days agoยท 17
Fantastic Any Selector ๐ŸŽฏ
    • name
    โ—„selectionโ–บ
    โ—„categoryโ–บ

    The Fantastic Loras pack is built around the idea that your LoRA picker shouldn't make you scroll a thousand files, and the Any Selector is that idea unshackled from LoRAs. It's a filename picker that works with any loader - checkpoint, diffusion model, VAE, upscale model - and it brings the pack's folder-filter bar along with it. It never loads anything itself. It's a UI that hands a filename string to whatever loader you wire it into.

    Why you'd reach for it

    If you've ever had a checkpoints or diffusion_models folder deep enough to make the stock dropdown useless, this is the upgrade. The folder filter narrows the file list the same way the loader's FOLDERS bar does - chips, search, stars - and presets remember your picks per category, so a selector wired to a VAE loader only ever offers VAE presets and a selector on a diffusion model loader only offers those.

    The easiest way in: right-click any loader and pick ๐ŸŽฏ Add Fantastic Any Selector. It spawns the node beside the loader, detects the right category, and wires the output into the loader's converted name input for you. That's the whole setup loop done.

    How it works

    The node holds two hidden inputs - selection (the chosen filename) and category (which loader type it's pointed at) - both driven by the frontend. It figures out what folder the target loader draws from by inspecting the wire, filters that category's files, and passes the choice through. The output, named name, is typed * - the "any" type - because the same node has to feed model, VAE, and upscale inputs alike.

    That loose typing is the one real gotcha. ComfyUI won't type-check a * connection, so you can wire this into something nonsensical and it'll be allowed, then fail when you queue. It's a deliberate trade for one node covering every category, and the UI guards against it the other way: an unwired selector says so and does nothing, and rewiring it clears the selection because a filename from one category won't validate against another. Also, because it passes an ordinary string, the receiving loader compares it exactly as it would its own widget value - no hidden normalization.

    Inputs and outputs

    Just the two hidden string inputs and one output:

    • selection (hidden, STRING) - the picked filename, managed by the picker UI.
    • category (hidden, STRING) - which loader folder category it's wired into.
    • name (*) - the chosen filename string. Wire it into a loader's converted name input (the input that appears when a loader's file widget is converted to accept an input).

    One connection at a time, by design - wiring the output somewhere else moves it rather than adding a second link, which keeps the category unambiguous. Two loaders on different files? Two selectors.

    Install

    Same pack, same recipe:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Adudeguyman/comfyui_fantastic-loras
    

    or via ComfyUI Manager (search Fantastic Loras), then restart ComfyUI and hard-refresh the browser (Ctrl+Shift+R). No extra dependencies. Selector presets are stored per category under ComfyUI/user/fantastic-loras/selector_presets/, so they follow your install, not the workflow.

    Common issues

    • The node does nothing. It's unwired - it can't guess a category without a target. Wire the name output into a loader's converted input (or use the right-click menu shortcut) and pick a file.
    • Selection vanished after I rewired it. Expected behavior - a filename from the old category wouldn't validate against the new target.
    • Anything that "doesn't save" (presets, favourites): the pack registers server routes at startup, so it needs a ComfyUI restart after install or update, not just a browser refresh.

    It's a small node with a narrow job, and it does that job well - the kind of thing you forget is a custom node until you have to scroll a dropdown of 400 checkpoints again.

    Categoryloaders

    Inputs (2)

    NameTypeDefaultDescription
    selectionSTRINGโ€”
    categorySTRINGโ€”

    Outputs (1)

    NameTypeDescription
    name*โ€”