Cutoff Base Prompt
Stop your prompt's adjectives from bleeding all over the image
- clip
- CLIPREGION
You write "a cute girl, white shirt with green tie, red shoes, blue hair, yellow eyes, pink skirt" and the render comes back with blue shoes, a green skirt, and a yellow hairband. This is the classic CLIP failure mode: the model knows blue belongs somewhere in the sentence, it just isn't sure the "hair" part is where it lives. Cutoff is the fix, and this node is where a cutoff chain starts.
Cutoff is BlenderNeko's port of hnmr293's sd-webui-cutoff extension for ComfyUI. The idea: confine each attribute to the specific slice of the prompt it should modify, so "blue" only ever touches "hair" and "green" only ever touches "tie". If you've ever fought multi-color or multi-character prompts on SD 1.5, this is the tool you were looking for - and it's also a relic of the CLIP era, so know your model before you bother (more on that below).
What this node does
CLIP turns your prompt into per-token embeddings, but it encodes the whole sentence as one context, which is exactly why attributes leak across nouns. Cutoff's trick, straight from the README: mask out the target tokens and ask CLIP to encode the prompt again without them. The difference between those two embeddings is a direction vector for "blue" - travel along it inside a bounded region and you get an embedding where blue affects hair and mostly leaves shoes alone.
BNK_CutoffBasePrompt is the first of four nodes that make this happen:
- Cutoff Base Prompt (this node) - hands the full prompt and CLIP model to the chain.
- Cutoff Set Regions - defines which words are confined to which parts of the prompt.
- Cutoff Regions To Conditioning - turns it all into a conditioning your sampler can use.
- ... (ADV) - the same finalizer with prompt-weighting controls bolted on.
Inputs and output
Only two inputs, both required:
- text (multiline) - your full prompt, exactly as you'd type it into a CLIP Text Encode node. This is the reference the regions later match against.
- clip - the CLIP model from your checkpoint loader.
The output is a single CLIPREGION object. Note that this is a custom type invented by this pack, not a core ComfyUI type - nothing outside the pack understands it, so you can't skip ahead to a sampler. You're building a little pipeline: Base Prompt → Set Regions (x however many) → Regions To Conditioning → KSampler.
Install
ComfyUI Manager is the easy route - search for "Cutoff" and install the ComfyUI Cutoff pack. Or clone it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/BlenderNeko/ComfyUI_Cutoff
Then restart ComfyUI. There's no requirements.txt and no model to download - it's pure Python that hooks into ComfyUI's CLIP internals, which is why it's a two-second install. You'll find all four nodes under conditioning > cutoff.
Know your model
The honest caveat, which the author states himself: this works great on SD 1.5 and CLIP-based anime models (Pony, Illustrious, NoobAI), and "not that well" on SDXL - the two-encoder setup muddies the masking. And on anything with an LLM text encoder - Flux, Z-Image, Qwen-based models - there's no CLIP tokenize path to manipulate, so the whole technique is dead weight. If you're on a 2026-era model, skip this pack and fix attribute bleed with word order and sentence structure instead; that's the replacement the community actually settled on.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — | |
| clip | CLIP | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIPREGION | CLIPREGION | — |