Civitai ControlNet
Pick a preprocessor, wire an image, chain your way to structure
- image
- control_nets
- control_nets
ControlNet is how you stop arguing with the sampler about where things go - edges, depth, pose, structure pulled from a reference image, applied while the prompt handles what they are. Civitai ControlNet is that same idea, packaged for Civitai's cloud: it builds a condition stack that a cloud recipe node sends to the fleet, so you get guided generation without a local ControlNet model or a GPU that can hold one.
What it is
A loader-style node (it lives under Civitai/Loaders) that produces a control_nets output (type CIVITAI_CONTROLNETS). You wire that into a recipe node's control_nets input - the pack's flux1 and anima image nodes have that socket; if a recipe node doesn't show it, that ecosystem's engine doesn't take ControlNet, and no amount of wiring will fix it.
Inputs that matter
preprocessor- the big menu, 35 choices from the ControlNet lineage:canny,mlsd,depthZoe,depthAnything,zoeDepth,midasDepth,leresDepth,softedgePidinet,hed, and more. This runs server-side and turns your reference image into the condition map.image- required by the orchestrator. Your reference (a sketch, a photo for depth, a pose).weight(default 1.0, 0–2) - how hard the condition pulls. The KB's standing advice: 0.3–0.7 for loose guidance, 0.8–1.2 for strict adherence, and the 2025–26 union models publish lower numbers than the SD-era defaults.start_step/end_step(0–1) - when during denoising the condition applies. The community's most-harvested ControlNet lesson: release the condition once composition has formed rather than holding it through the whole sample. Start at 0 and end at 0.5 and the model is free to invent detail in late steps.control_nets- chain another Civitai ControlNet into this socket to stack conditions (edge + depth together).
Mechanically the node is trivial - it converts your image to a data URL and appends {preprocessor, weight, startStep, endStep, image} to a list. All the real work happens on Civitai's fleet, which is exactly why this node is interesting: it's the whole ControlNet stack with zero local weight downloads.
Install & gotchas
Standard pack install - Manager (search Civitai Comfy Nodes), comfy node registry-install civitai-comfy-nodes, or git clone. Auth is the same story as every node here: env var, stored OAuth, or a Civitai Auth node feeding api_config.
Where it trips people:
- Preprocessor + image pairing matters more than the weight. Canny wants a clear line drawing or high-contrast photo; depth preprocessors want a normal photo; feeding a blurry reference to
cannygives you a blurry constraint. Pick the preprocessor for the structure you actually have. - Only ecosystems that expose
control_netsaccept it. If your recipe node has no such input, the cloud engine doesn't support ControlNet for that model - check the socket before you build the chain. - Metered per call. ControlNet jobs on the cloud cost what they cost, and the condition image is uploaded with the request - it leaves your machine, like every other input in this pack. Fine for Civitai's own service; just know the data flow.
The chainable control_nets socket is the feature worth remembering. Two stacked nodes - say depth for composition plus softedge for organic detail - is the 2026-style union move, and unlike a local setup you never have to hunt down which architecture's ControlNet file to download.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| preprocessor | COMBO | 35 options: canny, mlsd, depthZoe, depthAnything, depthAnythingV2, zoeDepthAnything, +29 | |
| image | IMAGE | Control image (required by the orchestrator) | |
| weight | FLOAT | 1.000–2 | — |
| start_step | FLOAT | 0.000–1 | — |
| end_step | FLOAT | 1.000–1 | — |
| control_netsopt | CIVITAI_CONTROLNETS | Chain from another Civitai ControlNet |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| control_nets | CIVITAI_CONTROLNETS | — |