ComfyUI Node

Theme Styler

Photographic genre presets in a dropdown

By TripleHeadedMonkey·Created 3 years ago·Updated about a year ago· 66
Theme Styler
    • text_positive
    • text_negative
    text_positive
    text_negative
    theme
    log_prompttrue

    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 option passes 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.

    Categoryali1234/stylers

    Inputs (4)

    NameTypeDefaultDescription
    text_positiveSTRING
    text_negativeSTRING
    themeCOMBO11 options: No option, Abstract, Aerial, Fashion, Landscape, Macro, +5
    log_promptBOOLEANtrue

    Outputs (2)

    NameTypeDescription
    text_positiveSTRING
    text_negativeSTRING