Styled CLIP Text Encode (Prompt)
The Style Selector comes to ComfyUI
- clip
- CONDITIONING
- CONDITIONING
If you came up on A1111 in the SDXL era, you remember the Style Selector dropdown - 77 named styles, one click, and suddenly your render looked like a film still or a comic panel instead of generic diffusion mush. Styled CLIP Text Encode (Prompt) is that dropdown, ported into ComfyUI, and it does something most ports don't: it handles your positive and negative prompt in a single node. Wire in a CLIP, type your prompt, pick a style, and you get two CONDITIONING outputs instead of building the usual dual CLIPTextEncode ladder. That's the entire appeal - one node replacing two.
What it actually does
This is a thin, honest wrapper around ComfyUI's built-in CLIPTextEncode. The source subclasses it, which is worth knowing: nothing about the encoding is custom, so it behaves exactly like stock ComfyUI and works with any CLIP you can load. The trick is what it does before encoding. Each of the 77 styles is a prompt template, and the node splices your positive_prompt into it by replacing the {prompt} placeholder - pick "3D Model" and your text becomes "professional 3d model … octane render, volumetric, dramatic lighting". Meanwhile the negative side gets the style's own built-in negative phrase, with your negative_prompt appended if you typed one. Both get encoded through your CLIP model and handed back as the two CONDITIONING outputs.
It's a faithful port of StyleSelectorXL for the A1111 WebUI, which in turn traces back to the style templates SDXL 1.0 shipped with - which is why the list feels so mid-2023: "Enhance", "Fantasy Art", "Neon Noir", and a whole block of video-game entries ("GTA", "Minecraft", "Super Mario", "Legend of Zelda") that are really just keyword soup for those franchises. The README says it's tested on SDXL and SD1.5, and that's the honest scope. These templates were tuned for SDXL's double text encoder; on SD1.5 the long ones eat your entire 77-token window, so preview your renders and don't expect magic on small CLIPs.
The inputs that matter
You set exactly three things, and two of them are just your prompt:
- clip - your CLIP model, straight out of a checkpoint or CLIP loader.
- positive_prompt - your actual subject and scene, multiline and dynamicPrompts-enabled.
- negative_prompt - your usual negative text, if you have one. Leave it empty and you still get the style's built-in negative.
- select_style - the dropdown with all 77 styles. "base" is a passthrough that returns your prompt untouched, so it doubles as a plain text encoder when you want none of this.
The two outputs are both CONDITIONING - and this is the classic footgun: the first is positive, the second is negative. Output order matters, so wire output 1 into your sampler's positive and output 2 into its negative. The README and the code both order it that way, and people do mix them up.
Installing it
No dependencies, no model downloads, no API key - it's a single Python file. Clone it into your custom nodes and restart:
cd ComfyUI/custom_nodes
git clone https://github.com/microbote/ComfyUI-StyledCLIPTextEncode.git
You can also try ComfyUI Manager's search for "StyledCLIPTextEncode", though the README's documented path is the clone above. After restart the node shows up under the conditioning category as "Styled CLIP Text Encode (Prompt)".
Where people get burned
The one real gripe: the style list is hardcoded in the .py file. There's no config file or JSON, no way to add your own styles from the UI - if you want custom templates you're editing source and watching a merge conflict later. The negative output is also only as good as the template's built-in phrase; the long ones (Fantasy Art's negative is a paragraph) can fight your own negative prompt rather than reinforce it. And since it subclasses CLIPTextEncode, it needs an actual CLIP model - it won't do anything for the newer LLM-encoded checkpoints that have no CLIP to speak of. For SDXL and SD1.5 workflows though, it's a legitimately nice quality-of-life node: one dropdown, both conditionings, zero setup.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| positive_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| select_style | COMBO | 77 options: 3D Model, Abstract, Advertising, Alien, Analog Film, Anime, +71 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | A conditioning containing the embedded text used to guide the diffusion model. |
| CONDITIONING | CONDITIONING | — |