Nodes/ComfyUI-ppm/CLIP Text Encode (BREAK)
ComfyUI Node

CLIP Text Encode (BREAK)

The A1111 BREAK keyword in ComfyUI

By pamparamm·Created 2 years ago·Updated about 17 hours ago· 265
CLIP Text Encode (BREAK)
  • clip
  • CONDITIONING
text

If you came over from Automatic1111 or Forge, you probably miss BREAK. You'd write a chunk of prompt, drop BREAK on its own line, write the next chunk, and the two wouldn't bleed into each other. ComfyUI's stock CLIP Text Encode doesn't understand the keyword - it just treats BREAK as a word. This node fixes that: type BREAK anywhere in your prompt and it does the A1111 thing.

What BREAK actually does

CLIP - the text encoder behind SD1.5, SDXL, Illustrious, NoobAI, Pony V6 - reads your prompt in 77-token chunks. Everything inside one chunk shares attention, which is why a long prompt lets early concepts smear into later ones: "a forest, a girl in a red dress" can leak forest-green into the dress. BREAK forces the encoder to start a fresh chunk right there, so "forest" and "girl in a red dress" get encoded separately and stop contaminating each other. It's the poor man's regional separation - cheaper and coarser than Attention Couple, but it works and it's one keyword.

Under the hood, this node is honest about what it is: the README calls it "a small lightweight wrapper over ConditioningConcat." It splits your text on the BREAK keyword, encodes each piece, and concatenates the resulting conditionings into one. Nothing magic - just the plumbing you'd otherwise build by hand with three nodes.

Inputs and outputs

Drop-in replacement for the normal encode node:

  • clip (CLIP) in
  • text (STRING, multiline) - write your prompt, put BREAK on its own where you want a split
  • CONDITIONING out - goes straight to your sampler's positive (or negative) input

Use it exactly where you'd use CLIP Text Encode. You can BREAK as many times as you like; each split becomes its own chunk before everything's concatenated back together.

Install

No models, no heavy deps:

  • ComfyUI Manager: search "ComfyUI-ppm", install, restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/pamparamm/ComfyUI-ppm, then restart.

The big caveat: BREAK is a CLIP-era tool

This is the thing to internalize, and it's the difference between the node helping you and quietly doing nothing. BREAK only means something on CLIP-based models. On the modern LLM-encoded crowd - Z-Image, Flux, Anima, Krea, ERNIE - there is no 77-token chunk boundary, so there's nothing for BREAK to break against. It becomes meaningless. Worse, on an LLM text encoder your prompt is read like an instruction, and stray keywords are passed through as literal text, so BREAK there is at best noise. If you're on one of those models, the right tool is word order and sentence structure, not BREAK - reorder the sentence so each subject's attributes sit next to that subject and you get cleaner binding than any keyword trick.

So: SDXL / SD1.5 / Illustrious / NoobAI / Pony, yes, this is a genuinely handy node. Flux / Z-Image / Anima, skip it.

When it beats just writing a longer prompt

Reach for BREAK when you've got two or three distinct things in one scene and their attributes are cross-contaminating - a character plus a detailed background, or two loosely-placed elements you don't need pixel-precise regions for. If you need actual spatial control (this character on the left, that one on the right), BREAK won't give you that; AttentionCouplePPM in this same pack will. Think of BREAK as the 20%-effort version: not as precise, but you're one keyword away instead of a subgraph away.

Standard pack note: if the node errors after a ComfyUI-ppm update, delete it and re-add it. Otherwise it's about as low-risk as conditioning nodes get.

Categoryconditioning

Inputs (2)

NameTypeDefaultDescription
clipCLIP
textSTRING

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING