Icy ControlNetLoader
Pick a ControlNet file, any file
- CONTROL_NET
Standard pack disclaimer: IcyControlNetLoader is ComfyUI-IcyHider's auto-generated Icy subclass of the core ControlNetLoader. The pack wraps every core node at startup for its preview-hiding feature, so this loader is the core node with a renamed class - same dropdown, same output. Install the pack or use the core node; there's no functional difference.
What it does is admirably boring: it loads a ControlNet model file from ComfyUI/models/controlnet/ and hands you a CONTROL_NET object to feed into ControlNetApply (or its Icy twin). That's the whole thing. The file name shows up in a control_net_name dropdown populated from that folder at startup, and the output is a single CONTROL_NET.
What you actually need to know
- Where files go.
ComfyUI/models/controlnet/. Drop the.safetensorsthere, refresh ComfyUI (or reload), and the name appears in the dropdown. - Architecture matters more than it looks. A ControlNet file is trained for a specific base - SD 1.5, SDXL, Flux, Qwen-Image - and will not do its job on another architecture. The KB's ControlNet doc is emphatic about this: "no SD-era ControlNet file loads on a modern base," and every new base needs its own set. The dropdown won't warn you; it just lists everything you've downloaded.
- Formats. Modern files are
.safetensors(the safe format - prefer it over.ckptfor the same reason you do with checkpoints). Some people run GGUF-quantized ControlNets; those load through GGUF-specific loaders, not this one. - Union files are one file for many conditions. If you've got a union ControlNet (canny + depth + pose in a single file), the condition type is selected by the preprocessed image you feed into the apply node, not by the loader.
The workflow shape
IcyControlNetLoader → CONTROL_NET → IcyControlNetApply (with your preprocessed condition image) → conditioning → sampler. If you have a diffusers-format ControlNet (a folder, not a single file), you want DiffControlNetLoader instead, which needs the base model as an input to work out the architecture.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider
Restart ComfyUI, or install via ComfyUI Manager (search "IcyHider"). No pip dependencies and nothing to download from the pack itself - the ControlNet models are on you, and they live in models/controlnet.
Common issues
- Missing node in a shared workflow. The pack generated the
Icyclass; without it, swap in coreControlNetLoader. - File not in the dropdown. You put it in the wrong folder, or ComfyUI started before you copied it. Restart and check
models/controlnet. - "Loaded but does nothing." Wrong-architecture ControlNet, or an unprocessed condition image on the apply node. The loader isn't the suspect - it's almost always downstream.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| control_net_name | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONTROL_NET | CONTROL_NET | — |