Nodes/Suplex Misc ComfyUI Nodes/ControlNet Selector
ComfyUI Node

ControlNet Selector

Pick a ControlNet file without loading a single weight

By saftle·Created 2 years ago·Updated 8 months ago· 3
ControlNet Selector
    • control_net_name
    control_net_name

    This one looks pointless for about thirty seconds, and then you hit the workflow that needs it. ControlNet Selector is a dropdown of every file in your models/controlnet folder that does exactly one thing: hands you back the file name as a string. No weights loaded, no GPU touched, no model in memory. It's a pure pass-through selector.

    The use case is when you need the ControlNet name somewhere downstream rather than the model itself. Think a custom loader or script that wants a filename, a metadata or caption node that should record which controlnet you used, or an API-driven workflow where the graph takes a ControlNet name as a variable and you want a human to pick it from a dropdown instead of typing it. In that last case, a name-only node keeps the graph honest - nothing is silently loading a multi-hundred-MB model when you just wanted a string.

    How it works

    There's no cleverness here, which is the appeal. The node builds its list from folder_paths.get_filename_list("controlnet") and its get_control_net_name function returns whatever you picked, verbatim:

    def get_control_net_name(self, control_net_name):
        return (control_net_name,)
    

    That's the whole implementation, and it's exactly right for a "hand the name along" utility.

    Inputs and output

    • control_net_name - dropdown populated from your models/controlnet folder.
    • Output: control_net_name, a string you can wire into anything that accepts a text value.

    The sibling you should compare it to

    This pack also ships Load Optional ControlNet Model, and people mix them up constantly. The difference matters:

    • ControlNet Selector - outputs a name string, loads nothing.
    • Load Optional ControlNet Model - outputs an actual CONTROL_NET object (and adds a "None" option so you can disable ControlNet on the fly).

    If your graph needs a real model to feed an Apply ControlNet node, the Selector is the wrong tool. If your graph needs a filename, the loader is the wrong tool. They're the same problem solved at two different points in the pipeline.

    Install

    Standard for this pack: ComfyUI Manager → search "uber_comfy_nodes" ("Suplex Misc ComfyUI Nodes") → install → restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/saftle/uber_comfy_nodes
    

    Restart, and it appears under Uber Comfy. No extra dependencies beyond Pillow, numpy, psutil and pynvml, and nothing to download model-wise.

    One honest note

    Because the dropdown reads the folder at node-creation time, files you add to models/controlnet won't appear until the node is refreshed (or ComfyUI restarts). Same behavior as the core loader, so nothing surprising - just don't expect a live folder watcher.

    CategoryUber Comfy

    Inputs (1)

    NameTypeDefaultDescription
    control_net_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    control_net_name