Nodes/ComfyUI-Desert-Pixel-Nodes/DP Load ControlNet Model With Name
ComfyUI Node

DP Load ControlNet Model With Name

The standard loader, plus the filename as a string

By DesertPixelAi·Created 2 years ago·Updated about a year ago· 25
DP Load ControlNet Model With Name
    • control_net
    • control_net_name
    control_net_name

    This is ComfyUI's core "Load ControlNet Model" node with one small, genuinely useful addition: it also outputs the loaded model's filename as a string. That sounds minor until you're building a workflow that stamps metadata into filenames, logs which ControlNet a given run used, or drives a bit of conditional logic based on which model got loaded - at which point "load the model AND expose its name as data I can route" is exactly what you were missing from the stock loader.

    How it works

    Pick a .safetensors (or similar) ControlNet checkpoint from your models/controlnet folder via the dropdown, and the node loads it and hands back the CONTROL_NET object your ControlNet-apply node needs, plus a plain string of the filename you picked. There's no processing happening beyond the load itself - this is a loader, not a technique node.

    Worth knowing going in: a ControlNet checkpoint conditions generation on spatial structure pulled from a reference image - edges, depth, pose, that kind of thing - and it has to match your base model's architecture. A ControlNet trained for SD 1.5 won't load meaningfully onto an SDXL or Flux checkpoint, and vice versa; each architecture generation needs its own ControlNet files, because the underlying mechanism (a trainable copy of the UNet's encoder blocks on older architectures, or attention/MLP patching on DiT models like Flux) is architecture-specific. If you're picking a file from the dropdown and you're not sure it matches your checkpoint's architecture, that mismatch is the most common reason a ControlNet-conditioned generation comes out looking like the condition did nothing at all.

    Inputs and outputs

    One required input:

    • control_net_name - a dropdown populated from the ControlNet files ComfyUI finds in your models/controlnet folder.

    Two outputs:

    • control_net - the loaded CONTROL_NET object, wire this into whatever ControlNet-apply node you're using downstream.
    • control_net_name - the filename as a string, useful for logging, filename templating, or driving conditional logic elsewhere in the graph.

    How to install it

    Search ComfyUI-Desert-Pixel-Nodes in ComfyUI Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/DesertPixelAi/ComfyUI-Desert-Pixel-Nodes
    

    Restart, find it under Desert Pixel/loaders. The node itself needs no extra dependencies - it's the ControlNet files that are the real weight here, and those you download separately and place in ComfyUI/models/controlnet. This node doesn't fetch or manage models for you; it only lists and loads what's already there.

    Common issues & troubleshooting

    The dropdown is empty. This means ComfyUI found no files in models/controlnet (or whatever folder your install has mapped for ControlNet checkpoints). Drop a .safetensors ControlNet file in that folder and restart ComfyUI - custom node loaders like this one populate their dropdown from disk at startup, so a file added after ComfyUI is already running usually won't show up until you restart.

    ControlNet loads fine but has no visible effect. The most common cause is an architecture mismatch - the ControlNet file was trained for a different base model family than the checkpoint you're running. SDXL and Flux, for example, need entirely separate ControlNet files; nothing from the SD 1.5 era loads meaningfully onto either. Double-check the ControlNet you picked was actually published for your base model.

    Effect is too weak or too strong. That's not this node's job to fix - control weight and start/end step live on whatever ControlNet-apply node you're feeding this into, not on the loader. If strength feels off, that's the node to adjust, not this one; this node only gets the file into memory.

    CategoryDesert Pixel/loaders

    Inputs (1)

    NameTypeDefaultDescription
    control_net_nameCOMBO0 options:

    Outputs (2)

    NameTypeDescription
    control_netCONTROL_NET
    control_net_nameSTRING