Nodes/ComfyUI_agilly1989_motorway/CLIPTextEncodeControlnet_motorway_edition
ComfyUI Node

CLIPTextEncodeControlnet_motorway_edition

Prompt encoding on top of an existing condition

By agilly1989·Created 2 years ago·Updated about a year ago· 7
CLIPTextEncodeControlnet_motorway_edition
  • MOTORWAY 🚌💨
  • MOTORWAY 🚌💨
INPUT_clip_keyclip
INPUT_conditioning_keyconditioning
text
OUTPUT_CONDITIONING_keyCONDITIONING

Most of the time you encode text into brand-new conditioning and hand it to the sampler. CLIPTextEncodeControlnet is the less common case: it takes existing conditioning - the kind that already has a ControlNet applied to it - and encodes your text on top of it, producing a combined condition. This is the Motorway-ed clone, so instead of wiring clip and conditioning in by hand, both come out of the Motorway by key, your prompt is a plain multiline box, and the result goes back in under a key you name.

A note on expectations: this node sits under _for_testing/conditioning in core ComfyUI, and it's genuinely niche. The everyday way to combine text and ControlNet is to build conditioning with a normal CLIPTextEncode, then apply a ControlNet to it - you don't need this node for that. Where it shows up is when a ControlNet is already baked into the conditioning stream and you want to layer prompt text onto that specific branch. If you inherited such a workflow, you now know what the node is doing; if you didn't, you can likely skip it and keep using the straightforward path.

How it works

The wrapper pulls two things out of the Motorway and writes one back:

  • INPUT_clip_key - key for the CLIP to encode with (default clip)
  • INPUT_conditioning_key - key for the existing, ControlNet-affected conditioning (default conditioning)
  • text - your prompt, a multiline field.
  • OUTPUT_CONDITIONING_key - where the combined conditioning goes (default CONDITIONING)

Under the hood it instantiates the real core CLIPTextEncodeControlnet, encodes your text and merges it with the pulled conditioning, then stores the result under the output key. The only visible output is the MOTORWAY 🚌💨; the sampler downstream reads the CONDITIONING key.

The relationship between the two inputs is the whole reason this node exists: the ControlNet does the spatial steering, your prompt does the semantic content. If the ControlNet and the text disagree - the condition says "standing pose" while the prompt says "running" - the tension shows up in the output. Get them pointing the same direction and the two reinforce each other.

Motorway specifics

MOTORWAY 🚌💨 is required. The defaults assume your chain stored the CLIP under clip and the ControlNet-conditioned stream under conditioning; if your keys differ, update the fields - a key that was never written throws the signature 'MotorwayClass' object has no attribute 'hash_' error, which just means you asked for something nobody has put in the Motorway yet. Keys overwrite as they flow down the chain, so don't clobber a source conditioning you still need.

Install

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

Restart, or find "ComfyUI_agilly1989_motorway" in ComfyUI Manager. No pip dependencies, no model downloads.

Fine print

This is an explicitly-beta pack - the README opens with "BIG BROKEN WITH ASYNC WILL FIX WHEN I GET THE TIME/MOTIVATION" - and the current hotfix release has the _motorway_edition clone generation commented out of __init__.py, so on the newest main these nodes may not load at all. On top of the pack's beta status, this wraps an experimental core node, so temper expectations. GitHub issues are the channel; the author has said his Discord DMs get ignored.

Categoryagilly1989 Nodes/Motorway-ed/_for_testing/conditioning

Inputs (5)

NameTypeDefaultDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨
INPUT_clip_keySTRINGclip
INPUT_conditioning_keySTRINGconditioning
textSTRING
OUTPUT_CONDITIONING_keySTRINGCONDITIONING

Outputs (1)

NameTypeDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨