Nodes/comfyui-art-venture/ControlNet Loader
ComfyUI Node Runs on cloud

ControlNet Loader

Load a ControlNet, by name or override

By sipherxyz·Created 3 years ago·Updated 4 months ago· 352
ControlNet Loader
  • timestep_keyframe
  • CONTROL_NET
control_net_name
control_net_overrideNone

At a glance this is just the ControlNet loader you already know - pick a model file, get a CONTROL_NET out, wire it into a ControlNet Apply node. What ArtVenture adds is two things the core loader doesn't have: a string override so you can pick the model by name from outside the graph, and a timestep keyframe input for scheduling. If you never need either, the built-in loader does the same job. If you're automating, or you're doing per-step control scheduling, this is the upgrade.

Quick refresher on why you're loading a ControlNet at all: it's the node that turns a preprocessed hint - a depth map, a pose skeleton, a canny edge map - into conditioning that steers where things go while your prompt decides what they are. The loader is only half the story. It brings the model in; a preprocessor makes the hint image; an Apply node marries them. Loading the ControlNet without feeding it a matching hint does nothing.

How it works

It reads a ControlNet checkpoint from ComfyUI/models/controlnet and returns it as a CONTROL_NET. The override input lets an external caller substitute a model name as a string - the same automation-friendly move ArtVenture uses across its loaders, so a fixed graph can load a different ControlNet per request. The keyframe input hooks into timestep scheduling for control that changes over the denoising process rather than staying flat.

Inputs and outputs

  • control_net_name (required) - the dropdown of ControlNet files it finds on disk. Empty menu means nothing's in your controlnet folder yet.
  • control_net_override (optional, string, default None) - pass a model name here to override the dropdown. This is the automation hook; leave it on None for normal manual use.
  • timestep_keyframe (optional, TIMESTEP_KEYFRAME) - for scheduled control. This type comes from the Advanced-ControlNet ecosystem, so you'll only wire it if you're already using keyframe nodes.

The output is CONTROL_NET - into a ControlNet Apply (Advanced) node, alongside your conditioning and the hint image.

Installing it

Ships in the ArtVenture pack. ComfyUI Manager: search comfyui-art-venture, install, restart. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/sipherxyz/comfyui-art-venture

Restart ComfyUI. The node is code-only, but ControlNet model files aren't - you download those separately into ComfyUI/models/controlnet. Which one depends on your base model: a union ControlNet for Flux, Z-Image, or SDXL covers most conditions in a single file these days, and that's the easy path - one download instead of a dozen single-condition models.

Common issues

Empty control_net_name dropdown. No ControlNet files in models/controlnet. Download one that matches your base model and restart.

Loaded fine, but the image ignores it. The loader isn't the problem - check the hint image and the Apply node. A ControlNet only conditions on a preprocessed map, and it has to match the model: a depth ControlNet wants a depth map, not a raw photo. Also mind the base match - an SD 1.5 ControlNet will not load usefully against a Flux model, because the architecture is different.

Weight and timing feel off. Modern union ControlNets like lower strengths than the old SD-era default of 1.0 - think roughly 0.65–0.9 depending on the model and condition - and ending control partway through the steps frees the later steps for the model's own detail. If you loaded a union, that's where the tuning is, not in the loader.

The timestep_keyframe input is confusing. It's optional and only relevant for scheduled/keyframed control. If you're not doing that, leave it unconnected and ignore it.

CategoryArtVenture/Loaders

Inputs (3)

NameTypeDefaultDescription
control_net_nameCOMBO0 options:
control_net_overrideoptSTRINGNone
timestep_keyframeoptTIMESTEP_KEYFRAME

Outputs (1)

NameTypeDescription
CONTROL_NETCONTROL_NET