Nodes/ComfyUI_agilly1989_motorway/ControlNetLoader_motorway_edition
ComfyUI Node

ControlNetLoader_motorway_edition

Load a ControlNet into the Motorway, not onto a wire

By agilly1989·Created 2 years ago·Updated about a year ago· 7
ControlNetLoader_motorway_edition
  • MOTORWAY 🚌💨
  • MOTORWAY 🚌💨
control_net_name
OUTPUT_CONTROL_NET_keyCONTROL_NET

Every ControlNet workflow starts with the same step: pick a .safetensors from your controlnet folder and load it into a CONTROL_NET object. That's this node's entire job, and the _motorway_edition version does it from inside agilly1989's Motorway bus. Instead of a CONTROL_NET wire going into your Apply node, the loaded object gets parked in the bus under a key, and a later ControlNetApply*_motorway_edition picks it up by that key.

How it works

It's a straight wrapper around core ControlNetLoader from nodes.py. The one thing you set directly is the control_net_name dropdown, which lists everything in ComfyUI/models/controlnet - the same list the plain core loader shows. Load a canny model, a depth model, a union model, whatever's on disk. The loaded CONTROL_NET is written into the bus under OUTPUT_CONTROL_NET_key (default CONTROL_NET), and the node returns the updated Motorway. Since the only original input is that dropdown (a widget, not a wire), there are no INPUT_*_key fields on this one.

One nice detail: MOTORWAY 🚌💨 is optional here, so this node can start a Motorway if nothing feeds it. That's useful because a loader is naturally the head of a controlnet chain - load the model, then have it riding along in the bus while later apply nodes consume it.

Where it sits in a workflow

In a normal graph you do ControlNetLoader → ControlNetApplyAdvanced → KSampler. In a Motorway graph you do: MotorwayStart (or let this node start one), load the ControlNet into the bus, have your conditioning and image already in the bus too, then a ControlNetApplyAdvanced_motorway_edition pulls all three out by key. The bus is what wires it, not the canvas.

For what ControlNet actually conditions on - edges, depth, pose, and the strength/start/end knobs that tune it - the KB has a full essay in controlnet.md; the short version is the control weight (usually 0.3–1.0) and the start/end percent window matter more than anything else once the right model is loaded.

Installing

The node is part of the whole pack:

cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway

Restart ComfyUI, or search ComfyUI_agilly1989_motorway in Manager. No Python deps. You do need your own ControlNet model files in models/controlnet - the pack ships none.

Caveats

Same pack reality as the rest of the _motorway_edition family: active beta, README header "BIG BROKEN WITH ASYNC WILL FIX WHEN I GET THE TIME/MOTIVATION", and in the version I checked the clone nodes are commented out of __init__.py - re-enable ClonedNodeMapping if they're missing. Keys are exact and case-sensitive; 'MotorwayClass' object has no attribute 'hash_' means a key isn't in the bus. If you're not running a Motorway graph, the plain ControlNetLoader is identical and a lot less moving parts.

Categoryagilly1989 Nodes/Motorway-ed/loaders

Inputs (3)

NameTypeDefaultDescription
control_net_nameCOMBO0 options:
OUTPUT_CONTROL_NET_keySTRINGCONTROL_NET
MOTORWAY 🚌💨optMOTORWAY 🚌💨

Outputs (1)

NameTypeDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨