DP Load ControlNet Model With Name
The standard loader, plus the filename as a string
- control_net
- 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 yourmodels/controlnetfolder.
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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| control_net_name | COMBO | 0 options: |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| control_net | CONTROL_NET | — |
| control_net_name | STRING | — |