Nodes/ComfyUI/CLIP Text Encode (Controlnet)
ComfyUI Node Runs on cloud

CLIP Text Encode (Controlnet)

Give your ControlNet its own separate prompt

By Comfy-Org·Created 4 years ago·Updated about an hour ago· 129,943
CLIP Text Encode (Controlnet)
  • clip
  • conditioning
  • CONDITIONING
text

ControlNets normally ride along on whatever text conditioning your main model gets. This node is the exception: it exists so a ControlNet can read a different prompt from the UNet. It's been in core since February 2024, and it's marked experimental - which tells you most of what you need to know about how often people actually use it.

What it does

  • clip - the text encoder.
  • conditioning - your already-encoded main conditioning.
  • text - the prompt for the ControlNet.

The node encodes text with the clip, then attaches it to your existing conditioning as cross_attn_controlnet plus a pooled_output_controlnet. The main conditioning's own embeddings are untouched. What you get out is your original conditioning, now carrying a parallel text channel that a ControlNet can pick up.

Why the feature exists at all

Most ControlNets are pure structure - they only care about edges, depth, or pose, and they ignore text completely. But some models (notably certain SDXL-era and union-style ControlNets) were trained to read their own cross-attention prompt, and for those a single global prompt is genuinely limiting. Classic use: the main prompt describes the whole scene while the ControlNet's prompt describes just the structure it's enforcing, so the two don't argue.

The honest caveats

This is a niche tool, and the "experimental" flag is the source's own admission. The first thing to check is whether your ControlNet even consumes text - if it doesn't, this node changes nothing, because the cross_attn_controlnet channel goes unread. When people grab this node expecting "ControlNet with a different prompt" and see no difference, that's almost always why.

The second thing: it was designed in the SD 1.5/SDXL era, when the ControlNet architecture that used the separate prompt existed. The modern union ControlNets on Flux/Qwen/Z-Image lineage mostly standardized on a single text channel, so the practical population of models this node helps has thinned out. It's not broken; it's a solution to a problem that mostly shipped with the older ecosystems.

Verdict

Worth knowing it exists, worth reaching for the moment you have a ControlNet that visibly responds to text changes but you want it to respond to different text. If you're not sure, run it with a deliberately absurd ControlNet prompt ("kittens" on a depth ControlNet) and see if the output shifts. If it doesn't, your ControlNet isn't reading text, and the node is just extra wires in your graph. It ships with core - no install, no model files to fetch, just one experimental node that may or may not be the thing your workflow needs.

Categorymodel/conditioning

Inputs (3)

NameTypeDefaultDescription
clipCLIP
conditioningCONDITIONING
textSTRING

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING