ScarlotSoft Modular CLIP Encode
A CLIP encoder that assembles the prompt for you — ScarlotSoft Modular CLIP Encode
- clip
- CONDITIONING
- FULL_PROMPT
A CLIP encoder is a node that turns your text into conditioning. ScarlotSoft Modular CLIP Encode is that, plus a tiny prompt-assembly factory bolted on the front. Instead of one giant text box, you get a style box and a subject box, two toggles that decide whether to prepend quality tags, and an optional override. It encodes the result and hands you both the CONDITIONING and the assembled FULL_PROMPT string so you can see exactly what got baked in.
Here's the build logic, which is the thing to understand before you judge the defaults. If both toggles are on, you'd get quality spam in the positive prompt, which is the classic mistake; the author guards against it by making the two tag sets mutually exclusive - Add_Positive_Prompt_Tags on prepends masterpiece, best quality, ultra detailed, 8k resolution…, Add_Negative_Prompt_Tags on prepends the negative laundry list (worst quality, low quality, blurry, mutated, ugly, deformed, watermark, text), and it will never prepend both into the same text. Defaults are positive-tags-on, negative-tags-off. Since this node is usually wired to the positive input of a KSampler, that's the right default. If you build the negative prompt here too, flip negative-tags on and positive-tags off, and feed the output to the negative socket. The node also de-duplicates comma-separated tags as it assembles, which quietly saves you from 1girl, 1girl, 1girl.
The builder_prompt optional input is the sleeper feature. It's a forced-input STRING socket, and when it carries non-empty text it completely overrides the style/subject/toggle machinery - the node just encodes whatever you sent in. That makes it a clean switch between hand-written prompts (from a file reader, say) and the modular boxes, without rewiring. Think of it as "modular mode when empty, passthrough mode when connected."
The encoding itself is standard ComfyUI CLIP encode - tokenize, encode_from_tokens, package with pooled output - so the conditioning plugs straight into any KSampler. One honest caveat about those quality tags, borrowed from how the ecosystem has moved: masterpiece, best quality is alive on SDXL anime-lineage models and effectively inert on the 2026 LLM-text-encoder models, where the vocabulary was never trained in. So if you run this node on a newer model, the toggles mostly add noise - leave them off.
Install with the suite: ComfyUI Manager → search ScarlotSoft → install and restart, or
cd ComfyUI/custom_nodes
git clone https://github.com/scarlotsoft/ComfyUI_ScarlotSoft
No extra dependencies. Expect the suite's dark theme; hard-refresh (Ctrl+Shift+R) if a node renders oddly after a UI-mode switch.
If you're the kind of person who keeps a style block you never change and swaps only the subject, this node is genuinely pleasant - one field to edit per run. If you write whole prompts by hand, just wire builder_prompt and treat it as a normal CLIP encode. Either way, the FULL_PROMPT output lets you pipe the final text into a preview node and confirm nothing you didn't want snuck in.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| style | STRING | — | |
| subject | STRING | — | |
| Add_Positive_Prompt_Tags | BOOLEAN | true | — |
| Add_Negative_Prompt_Tags | BOOLEAN | false | — |
| builder_promptopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |
| FULL_PROMPT | STRING | — |