⌘ CLIP Text Encode (Illustrious)
Tag-aware positive encoding with weight dials
- clip
- conditioning
- processed_prompt
Every Illustrious workflow needs a positive CLIP Text Encode somewhere, and the vanilla ComfyUI one works fine. This node exists for one reason: Illustrious and its merges are trained on Danbooru's tag taxonomy, and there's a set of small, well-known moves people make to prompts to get better results out of that taxonomy - tag cleanup, reordering, per-category weighting. Instead of doing them by hand every time, this node does them for you and gives you dials.
What it's doing under the hood
Illustrious reads tags, not sentences, as its primary interface - earlier tokens get more attention weight than later ones, and the model was trained on Danbooru's specific vocabulary (1girl, long hair, looking at viewer, and so on). auto_tag_ordering reorders your prompt into what the tooltip calls an "Illustrious-friendly hierarchy," danbooru_weighting applies frequency-based weight to common tags, and enable_tag_optimization fixes tag variants and adds helpful ones automatically. enable_padding_fix trims excess padding tokens, which otherwise dilute your actual prompt inside CLIP's fixed token budget.
The three boost sliders - quality_boost, character_boost, composition_boost - are worth knowing about specifically because quality tags have a documented side effect: masterpiece, best quality and similar terms tend to saturate colors more than people expect. Having a dedicated dial to back that off, instead of manually retyping (masterpiece:0.8), is the actual value here.
enable_hybrid_mode converts some phrases into tags, aimed at v1.1+ models - Illustrious tolerates natural language better than Pony ever did, but tags are still the primary interface and sentences are a bonus, not the main event, so don't lean on this to write full prose prompts.
The inputs and outputs that matter
clipandtextare required -textdefaults to a starter prompt (masterpiece, best quality, 1girl) so you always have something in the box.clip_skipdefaults to 2, which is the correct anime-lineage convention - but know that on SDXL architecture (which Illustrious is), both text encoders already default to conditioning near that layer. Moving between 1 and 2 matters a lot; nudging 2 to 3 barely does anything.- The three boost floats (0.5–2, default 1) let you tune tag categories independently instead of hand-editing weight syntax.
Outputs: conditioning (wire to your sampler) and processed_prompt, the actual string after all the optimization ran - genuinely useful for seeing what the node changed, especially the first few times you use it.
Installing it
ComfyUI Manager: search "EasyIllustrious," install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/regiellis/ComfyUI-EasyIllustrious
pip install -r ComfyUI-EasyIllustrious/requirements.txt
No external model downloads for this node - it runs on the CLIP your checkpoint already loaded.
Common issues
Double-weighting characters or quality. If you're already building your prompt with the pack's Characters or Prompt nodes (which have their own weight controls) and then piping the result through this encoder with character_boost above 1, you're stacking two weighting systems on the same tags. Start both at neutral and adjust one at a time.
Setting clip_skip to 1 "for more detail." Don't - that's the value that breaks anime-lineage SDXL checkpoints, not the one that sharpens them. Leave it at 2.
Prompt looks over-saturated. Before touching CFG, try dropping quality_boost below 1 first - the quality-tag saturation bias is real and this dial exists specifically to counter it.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | CLIP text encoder from your base model. | |
| text | STRING | masterpiece, best quality, 1girl | Prompt text (comma-separated tags work well). |
| illustrious_versionopt | COMBO | auto | Used for tag optimization hints; auto is fine. |
| enable_tag_optimizationopt | BOOLEAN | true | Fix common tag variants and add helpful tags. |
| enable_padding_fixopt | BOOLEAN | true | Trim excessive padding tokens to improve conditioning. |
| auto_tag_orderingopt | BOOLEAN | true | Reorder tags for Illustrious-friendly hierarchy. |
| danbooru_weightingopt | BOOLEAN | true | Apply frequency-based weights to common tags. |
| clip_skipopt | INT | 21–12 | Number of CLIP layers to skip from the end. |
| quality_boostopt | FLOAT | 1.00.5–2 | Multiplier for quality tags (masterpiece, best_quality). |
| character_boostopt | FLOAT | 1.00.5–2 | Multiplier for character tags (1girl, long_hair). |
| composition_boostopt | FLOAT | 1.00.5–2 | Multiplier for composition tags (portrait, close-up). |
| enable_hybrid_modeopt | BOOLEAN | false | Convert some phrases to tags for v1.1+ models. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |
| processed_prompt | STRING | — |