(Down)load ControlNet
Fetch a ControlNet model from CivitAI or HuggingFace
- controlnet_name
Fourth in the pack's family of download nodes, this one targets ControlNet models specifically - the networks that let you condition generation on spatial structure (edges, depth, pose) pulled from a reference image instead of leaving composition entirely up to the prompt. Give it an ID, it fetches the ControlNet weights and hands back the filename.
How it works
Same mechanism as its siblings: pick a source, give it a model_id, and it downloads into the appropriate models folder, reporting the result as controlnet_name. It's an output node, so it runs during the workflow regardless of whether anything wires off that output - fine for using it as a one-shot "fetch this onto disk" step.
The inputs and outputs that matter
source-civitaiorhuggingface.model_id(STRING) - the CivitAI model ID or HuggingFace repo path.base_model- SD1.5, SDXL, Flux.1, Kolors, or Pony. This one matters more than usual for ControlNet specifically: ControlNet weights are trained against a particular base architecture and are not interchangeable across them - an SD 1.5 ControlNet will not condition an SDXL or Flux generation, full stop. Make sure this matches the checkpoint you're actually going to pair it with.version_id(optional) andfile_names(optional, multiline) - pin a specific version, or a specific file, when a model page offers more than one.
Output: controlnet_name - wire into a ControlNet loader, then into your conditioning chain ahead of the sampler.
How to install it
This is a submodule node - part of the bundled ComfyUI-Model-Downloader integration rather than the pack's core repo. A plain clone leaves it out:
cd ComfyUI/custom_nodes
git clone --recursive https://github.com/liuqianhonga/ComfyUI-QHNodes.git
Already have a bare clone? Pull the submodules in:
cd ComfyUI/custom_nodes/ComfyUI-QHNodes
git submodule init && git submodule update
If you went through ComfyUI Manager and this node isn't showing up, that's the likely cause - Manager's default install doesn't reliably pull submodules, so the manual commands above are the fix inside your existing install.
Common issues & troubleshooting
Downloaded a ControlNet and it does nothing, or throws a shape mismatch. Check base_model first. The single most common ControlNet failure across the ecosystem generally is pairing weights trained for one architecture with a different one - the symptoms range from a hard error to the ControlNet silently having zero visible effect, depending on how the mismatch manifests.
The model you wanted isn't available for your checkpoint family. ControlNet coverage for newer base models has caught up quickly, but it's still narrower than the SD 1.5/SDXL era - expect canny, depth, and pose to exist for most current bases, but don't assume every exotic ControlNet variant that existed for SD 1.5 has an equivalent yet.
Gated or login-required downloads fail with no useful error. As with the other Download* nodes in this pack, there's no API key or token field here - gated HuggingFace repos and CivitAI models requiring an account are both out of reach through this node.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| source | COMBO | civitai | 2 options: civitai, huggingface |
| model_id | STRING | — | |
| base_model | COMBO | Flux.1 | 5 options: SD1.5, SDXL, Flux.1, Kolors, Pony |
| version_idopt | STRING | — | |
| file_namesopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| controlnet_name | * | — |