Nodes/PG Nodes/ControlNet Select (Uni)
ComfyUI Node

ControlNet Select (Uni)

Pick the model file, keep the loader clean

By GizmoR13·Created 11 months ago·Updated 11 months ago· 16
ControlNet Select (Uni)
    • controlnet_name
    controlnet_namenone

    ControlNet Select (Uni) is a dropdown over your controlnet model files that outputs the chosen filename as a string, with a none option for feeding the Unified Loader. It's the ControlNet member of the PG selector family, and it's one of the more genuinely useful ones - because ControlNet workflows tend to be the ones where the model choice is a real decision, not a formality.

    ControlNet is how you make the model follow a structure: a pose skeleton, an edge map, a depth render, a tile layout. The preprocessing node generates the condition, and the ControlNet model translates that condition into guidance during sampling. Every ControlNet model is trained for a specific condition type and a specific model family - an SDXL depth ControlNet won't do a thing on a Flux workflow, and a canny model can't read a depth map. Choosing the right file isn't a detail; it's most of the job.

    How it works

    Same skeleton as every PG selector. It scans folder_paths for the controlnet list (controlnet, with a controlnets fallback) and builds the dropdown at import. process() returns the filename on the controlnet_name output. No loading - the Unified Loader consumes the name and does the heavy lifting, optionally offloading to CPU with its device_cpu toggle, which is the nice part of pairing these two nodes on a low-VRAM box.

    The input and output

    • controlnet_name - dropdown over your ControlNet files, default none.
    • Output: controlnet_name - the filename string.

    Install

    Comes with PG Nodes:

    ComfyUI Manager → search "PG Nodes" → Install → restart
    

    Manual: git clone https://github.com/GizmoR13/PG-Nodes into custom_nodes (folder named PG-nodes), restart. Under PG/Select/UniLoader. No dependencies.

    Common issues

    • ControlNet "does nothing." Nine times out of ten it's a family mismatch: SDXL ControlNet on a Flux base, or a condition type that doesn't match the model. Check your checkpoint family first, then the file.
    • Missing from the dropdown. Restart ComfyUI - lists build at import.
    • String doesn't fit a CONTROL_NET input. Right; it's a name. It feeds the loader's controlnet slot, not the model input.

    ControlNet genuinely rewards visible model selection, and this node plus the Unified Loader gives you exactly that. If you run ControlNet regularly, this pairing is the reason to bother with the Uni selector tier at all.

    CategoryPG/Select/UniLoader

    Inputs (1)

    NameTypeDefaultDescription
    controlnet_nameCOMBOnone1 options: none

    Outputs (1)

    NameTypeDescription
    controlnet_namenone