Nodes/PG Nodes/ControlNet Select
ComfyUI Node

ControlNet Select

Name your ControlNet, wire it everywhere

By GizmoR13·Created 11 months ago·Updated 11 months ago· 16
ControlNet Select
    • controlnet_name
    controlnet_name

    ControlNet is where "which model am I using" gets genuinely confusing, because the model isn't a checkpoint or a LoRA - it's a whole family of structure conditioners (canny, depth, pose, lineart...) that are mutually incompatible with each other and with every base model. PgControlNetSelect is the PG Nodes node that keeps the choice visible: a dropdown of the ControlNet files in your controlnet folder, outputting the selected name for a ControlNetLoader or the Unified Loader's controlnet slot.

    The selector pattern matters more here than anywhere else in the pack, for one practical reason: the community's ControlNet struggles are overwhelmingly about loading the wrong condition, not the technique. A depth ControlNet loaded onto a canny workflow silently produces mush. Having the filename as a first-class, single dropdown you can audit at a glance is a small but real defense against that.

    How it works

    It lists files from ComfyUI's folder_paths registry (it checks controlnet and controlnets keys), and returns the chosen filename as the node's output (controlnet_name). Like every PG selector, the list is captured at import time, so a freshly downloaded ControlNet file needs a ComfyUI restart to show up. The Uni variant (in PG/Select/UniLoader) adds a leading none for use with the Unified Loader, which leaves unset slots alone.

    Input: the controlnet_name dropdown. Output: the chosen name, typed to the controlnet list so it plugs into ControlNetLoader's control_net_name input.

    Install

    Ships in PG Nodes: ComfyUI Manager → "PG Nodes" → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/GizmoR13/PG-Nodes
    

    Common issues

    Beyond the restart-to-refresh rule: remember the select only hands over a name - the ControlNet still loads downstream, and that's also where the preprocessor side lives (the aux preprocessors that make your edge/depth/pose maps are a separate pack entirely). And a real trap the whole ecosystem shares: newer union ControlNets cover multiple condition types in one file, so if your dropdown is full of single-purpose files you may be maintaining a bigger zoo than you need - a union model plus this selector is the tidy version of the same setup.

    CategoryPG/Select

    Inputs (1)

    NameTypeDefaultDescription
    controlnet_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    controlnet_name