Theme Styler
Photographic genre presets in a dropdown
- text_positive
- text_negative
ThemeStyler picks the genre of photo you're going for. Its dropdown reads like the sections of a stock-photo site - Abstract, Aerial, Fashion, Landscape, Macro, Portrait, Sports, Street, Wedding, Wildlife - and choosing one wraps your prompt in the conventions of that genre. Macro pulls toward tight close-ups and shallow focus; Aerial pulls toward top-down and wide; Street leans candid and urban. It's a fast way to set the whole framing intent of a shot without hand-writing the genre cues.
The mechanism is the standard MileHighStyler one. Each theme is a text template with a {prompt} placeholder. Your prompt slots in, and the genre language the style adds gets automatically weighted up (around 2.0) so the theme pushes while your own subject stays at normal strength. It's a snippet inserter, not a model.
The inputs that matter
text_positive- your prompt.text_negative- your negatives; the theme may add its own.theme- the genre dropdown.No optionpasses the prompt through untouched.log_prompt- on by default, prints the finished prompt to the console.
Outputs are text_positive and text_negative, two strings for a CLIP Text Encode pair. On an SDXL workflow with split text_g / text_l inputs you'd want the Advanced-style split - but ThemeStyler itself is the single-pair basic node, which is what most graphs use.
Installing it
ComfyUI Manager, search ComfyUI_MileHighStyler. It's a niche pack Manager doesn't always index, so if the search comes up dry, clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler
Restart ComfyUI. No model downloads, no dependencies - the pack is JSON style templates and installs in seconds.
Common snags
theme overlaps with a couple of the other stylers - Portrait and Landscape touch framing that subject and composition also touch - so if you stack ThemeStyler with SubjectStyler or PerfectionStyler you can end up double-prompting the same idea and blowing past SDXL's 77-token window. Pick one place to say it. If a theme seems inert, log_prompt shows you exactly what got inserted.
Worth knowing: how much a theme moves things depends on the checkpoint. A model finetuned on wedding or fashion photography will lean into those genres hard; a general anime checkpoint will mostly ignore Wildlife. The styler supplies the words, but the model has to actually know the genre for the words to matter - so if a theme does nothing, it may be the checkpoint, not the node.
And the pack's standing limitation: this is CLIP-era tech, best on the SDXL lineage (Juggernaut, RealVis, Illustrious, Pony). On a 2026 LLM-encoded model - Flux 2, Z-Image, Anima - the weighted template is discarded and the negative does nothing at CFG 1, so the genre cue barely lands. On those, naming the genre in a plain sentence works better than routing it through the node.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive | STRING | — | |
| text_negative | STRING | — | |
| theme | COMBO | 11 options: No option, Abstract, Aerial, Fashion, Landscape, Macro, +5 | |
| log_prompt | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| text_positive | STRING | — |
| text_negative | STRING | — |