Nodes/Comfyui-EasyIllustrious/⌘ CLIP Text Encode (Illustrious)
ComfyUI Node

⌘ CLIP Text Encode (Illustrious)

Tag-aware positive encoding with weight dials

By regiellis·Created 12 months ago·Updated 4 months ago· 82
⌘ CLIP Text Encode (Illustrious)
  • clip
  • conditioning
  • processed_prompt
textmasterpiece, best quality, 1girl
illustrious_versionauto
enable_tag_optimizationtrue
enable_padding_fixtrue
auto_tag_orderingtrue
danbooru_weightingtrue
clip_skip2
quality_boost1.0
character_boost1.0
composition_boost1.0
enable_hybrid_modefalse

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

  • clip and text are required - text defaults to a starter prompt (masterpiece, best quality, 1girl) so you always have something in the box.
  • clip_skip defaults 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.

CategoryEasy Illustrious / Encoder

Inputs (12)

NameTypeDefaultDescription
clipCLIPCLIP text encoder from your base model.
textSTRINGmasterpiece, best quality, 1girlPrompt text (comma-separated tags work well).
illustrious_versionoptCOMBOautoUsed for tag optimization hints; auto is fine.
enable_tag_optimizationoptBOOLEANtrueFix common tag variants and add helpful tags.
enable_padding_fixoptBOOLEANtrueTrim excessive padding tokens to improve conditioning.
auto_tag_orderingoptBOOLEANtrueReorder tags for Illustrious-friendly hierarchy.
danbooru_weightingoptBOOLEANtrueApply frequency-based weights to common tags.
clip_skipoptINT21–12Number of CLIP layers to skip from the end.
quality_boostoptFLOAT1.00.5–2Multiplier for quality tags (masterpiece, best_quality).
character_boostoptFLOAT1.00.5–2Multiplier for character tags (1girl, long_hair).
composition_boostoptFLOAT1.00.5–2Multiplier for composition tags (portrait, close-up).
enable_hybrid_modeoptBOOLEANfalseConvert some phrases to tags for v1.1+ models.

Outputs (2)

NameTypeDescription
conditioningCONDITIONING
processed_promptSTRING