Nodes/ComfyUI_MileHighStyler/Composition Styler (Advanced)
ComfyUI Node

Composition Styler (Advanced)

The SDXL dual-encoder version of the composition menu

By TripleHeadedMonkey·Created 3 years ago·Updated about a year ago· 66
Composition Styler (Advanced)
    • text_positive_g
    • text_positive_l
    • text_positive
    • text_negative_g
    • text_negative_l
    • text_negative
    text_positive_g
    text_positive_l
    text_negative
    composition
    negative_prompt_toBoth
    log_prompttrue

    The same tidy 11-concept composition menu as the plain CompositionStyler - Rule of Thirds, Symmetry, Leading Lines, Negative Space, Framing, Balance, Perspective, Simplicity, Texture, Pattern - wrapped in the "Advanced" node that exposes SDXL's two text encoders. Use this if you're on SDXL and like the finer control; otherwise the basic node does the identical job with fewer sockets.

    What "Advanced" means

    SDXL runs two text encoders together - the big OpenCLIP-G and the smaller CLIP-L. This node splits your positive prompt into text_positive_g and text_positive_l, one per encoder, and adds negative_prompt_to (Both / G only / L only) for routing the negative. For a soft concept like composition, honestly, splitting G and L is overkill - put the same subject in both and move on. The split is also SDXL-only: SD 1.5 has one encoder, and 2026 LLM-encoded models (Flux 2, Z-Image, Qwen) don't have this architecture at all.

    How it works

    It's a fork of SDXL Prompt Styler. Each composition concept is a JSON template with a {prompt} slot; your subject drops in, the composition phrase gets wrapped at a strong weight (~2.0), and rewritten prompt strings come out. Text only - nothing loads a model. Remember that composition cues are a bias, not a crop; the model isn't repositioning your subject, it's leaning toward images tagged that way.

    Inputs and outputs that matter

    • composition - the 11-entry dropdown. No option = off.
    • text_positive_g / text_positive_l - your subject, once per SDXL encoder.
    • negative_prompt_to - Both (default), G only, or L only.

    log_prompt prints the built prompt. The node returns six strings - text_positive_g, text_positive_l, combined text_positive, and the three negatives. Route _g/_l into an SDXL dual CLIP Text Encode, or use the combined text_positive / text_negative.

    Installing it

    ComfyUI Manager: search ComfyUI_MileHighStyler, install, restart. Or:

    cd ComfyUI/custom_nodes && git clone https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler
    

    No models, no dependencies. Nodes appear under ali1234/stylers.

    Where people get burned

    • Expecting the Advanced node to enforce composition. It won't. Neither node places pixels; if you need a real off-center crop, use aspect ratio or ControlNet. The G/L split changes nothing about that.
    • Splitting a soft concept across encoders. Composition is fuzzy enough that G-vs-L micro-tuning is wasted effort. Same text both sides.
    • Off SDXL it's pointless. No dual encoders means the _g/_l sockets do nothing. Use the plain node, or just type "rule of thirds."
    • Symmetry runs away with it. "Symmetry" at a strong weight will happily mirror a face or body into the uncanny valley. If you get a too-perfect mirror image, that's the emphasis at work - pick a gentler composition concept or reassert the subject after it.
    Categoryali1234/stylers

    Inputs (6)

    NameTypeDefaultDescription
    text_positive_gSTRING
    text_positive_lSTRING
    text_negativeSTRING
    compositionCOMBO11 options: No option, Balance, Framing, LeadingLines, NegativeSpace, Pattern, +5
    negative_prompt_toCOMBOBoth3 options: Both, G only, L only
    log_promptBOOLEANtrue

    Outputs (6)

    NameTypeDescription
    text_positive_gSTRING
    text_positive_lSTRING
    text_positiveSTRING
    text_negative_gSTRING
    text_negative_lSTRING
    text_negativeSTRING