Theme Styler (Advanced)
Eleven clean photo themes
- text_positive_g
- text_positive_l
- text_positive
- text_negative_g
- text_negative_l
- text_negative
After scrolling this pack's 7,000-artist and 3,500-verb monsters, ThemeStylerAdvanced is a relief: a short, sane menu of eleven photographic themes - Portrait, Landscape, Macro, Street, Wedding, Wildlife, Sports, Aerial, Abstract, Fashion. Pick one, and it nudges the whole image toward that genre of photography. It's the kind of small, curated list that actually gets used, because you can hold the entire menu in your head.
The "Advanced" tag means it's the SDXL dual-CLIP variant - the theme menu, with the positive prompt split across SDXL's two encoders and a knob for the negative.
What a "theme" actually does is pull in a bundle of genre conventions at once. Pick Wedding and you're nudging toward soft light, formalwear, and a certain palette without spelling any of it out; Wildlife leans telephoto, natural light, animal subject. That's the appeal of a small curated list like this over the pack's giant menus - every entry is a broad, legible concept the model has seen thousands of times, so it lands more reliably than some one-off style name buried in a 1,500-entry dropdown.
How the "Advanced" plumbing works
SDXL runs two text encoders, CLIP-G and CLIP-L. This node feeds them separately: text_positive_g to G, text_positive_l to L. The chosen theme is applied to both and wrapped at the pack's strong default weight (~2.0) - MileHighStyler being a fork of the classic SDXL Prompt Styler. negative_prompt_to (Both / G only / L only) routes the theme's built-in negative; default Both.
The inputs and outputs that matter
- theme - the 11-entry dropdown;
No optionis off. - text_positive_g / text_positive_l - your subject per encoder; same text in both if you're unsure.
- text_negative - your negative, with the theme's negative routed by
negative_prompt_to.
log_prompt prints the assembled prompt to the console. Six outputs: text_positive_g, text_positive_l, merged text_positive, and text_negative_g / text_negative_l / merged text_negative. Feed _g / _l into a CLIPTextEncodeSDXL, or just take the merged text_positive / text_negative into a normal CLIP Text Encode.
Installing it
ComfyUI Manager: search ComfyUI_MileHighStyler, install, restart. Or:
cd ComfyUI/custom_nodes && git clone https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler
then restart. No models, no requirements.txt, no dependencies - Python and JSON. Nodes appear under ali1234/stylers.
Where people get burned
- Advanced when basic would do. The G/L split only matters with a CLIPTextEncodeSDXL and deliberately different per-encoder text. For a single-word theme, that's almost never you - use the merged outputs.
- Theme fights an explicit scene. If your positive text already fully describes, say, a studio portrait, adding
Landscapeon top just muddies it. Let the theme lead or let your text lead, not both. - Model era. Dual-CLIP is SDXL-only. Meaningless on the 2026 LLM-encoded models (Flux 2, Z-Image, Qwen). On those, a plain word like "portrait photography" does the job.
- It's a nudge, not a genre lock. Eleven themes cover broad territory; expect a lean, not a guarantee. Reinforce with lighting and composition if you need it to stick.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive_g | STRING | — | |
| text_positive_l | STRING | — | |
| text_negative | STRING | — | |
| theme | COMBO | 11 options: No option, Abstract, Aerial, Fashion, Landscape, Macro, +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 | — |