Mood Styler (Advanced)
Mood presets wired for SDXL
- text_positive_g
- text_positive_l
- text_positive
- text_negative_g
- text_negative_l
- text_negative
Same job as MoodStyler - dial in the emotional tone of an image from a dropdown of Aggressive, Calm, Chaotic, Energetic, Happy, Mysterious, Relaxed, Romantic, Sad, Serene - but built for SDXL's two-encoder setup. If your workflow feeds a CLIPTextEncodeSDXL node with its separate text_g and text_l inputs, this is the version that slots in without an adapter.
The reason there's a split at all: SDXL encodes your prompt twice, through OpenCLIP-ViT/bigG and CLIP-ViT/L. That second encoder carries a real chunk of SDXL's control over tone and composition, so the Advanced node lets you talk to each one on its own terms instead of duplicating a string into both.
What you set
text_positive_g/text_positive_l- your prompt for each encoder. Same text in both is fine and normal.text_negative- your negative prompt.mood- the preset.No optiondisables it.negative_prompt_to-Both,G only, orL only, controlling where the mood's built-in negative is routed.Bothis the default and usually what you want.log_prompt- prints the assembled prompt to the console so you can see what went into G versus L.
Outputs cover everything: text_positive_g, text_positive_l, a merged text_positive, and the three matching negatives (text_negative_g, text_negative_l, text_negative). Send _g and _l into CLIPTextEncodeSDXL. Not on an SDXL dual-encode graph? Ignore the split and grab the merged text_positive / text_negative for a plain CLIP Text Encode.
Installing it
ComfyUI Manager, search ComfyUI_MileHighStyler. If it doesn't list (it's an older, niche pack and Manager is spotty about it), clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler
Restart ComfyUI. No models, no dependencies, no requirements.txt - just JSON templates, so it installs in seconds and uses no VRAM.
Common snags
Mood is a soft effect, and on a busy, heavily-specified prompt it can get drowned out - it lands best on portraits and clean compositions. If you're not sure it did anything, log_prompt shows you the truth. And the six outputs trip people up: pick a lane. SDXL dual-encode uses _g and _l; anything else uses the merged pair.
When to pick this over the basic MoodStyler: only if your graph actually feeds a CLIPTextEncodeSDXL node. On a plain single CLIP Text Encode the G/L split is dead weight and the basic node is tidier.
One honest limit worth repeating: this is CLIP-era tooling, and the whole two-encoder premise only exists on SDXL. On an LLM-encoded 2026 model (Flux 2, Z-Image, Anima) there's no G/L to split, the weighting is discarded, and the negative is inert at CFG 1. So MoodStylerAdvanced is a great fit on Illustrious, Pony, Juggernaut and friends, and a non-fit on the newer stuff.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive_g | STRING | — | |
| text_positive_l | STRING | — | |
| text_negative | STRING | — | |
| mood | COMBO | 11 options: No option, Aggressive, Calm, Chaotic, Energetic, Happy, +5 | |
| negative_prompt_to | COMBO | Both | 3 options: Both, G only, L only |
| log_prompt | BOOLEAN | true | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| text_positive_g | STRING | — |
| text_positive_l | STRING | — |
| text_positive | STRING | — |
| text_negative_g | STRING | — |
| text_negative_l | STRING | — |
| text_negative | STRING | — |