Nodes/ComfyUI_MileHighStyler/Lighting Styler (Advanced)
ComfyUI Node

Lighting Styler (Advanced)

Lighting presets for SDXL's dual encoders

By TripleHeadedMonkey·Created 3 years ago·Updated about a year ago· 66
Lighting 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
    lighting
    negative_prompt_toBoth
    log_prompttrue

    Same lighting presets as the plain LightingStyler - Ambient, Artificial, Backlit, Diffused, Flash, Harsh, Natural, SideLit, Soft, Spotlight - but this one is built for SDXL specifically. If your workflow uses a CLIPTextEncodeSDXL node with separate text_g and text_l boxes, this is the version that fits it cleanly.

    Here's why the split exists. SDXL runs two text encoders at once: OpenCLIP-ViT/bigG and CLIP-ViT/L. They're not redundant - the second encoder is a big part of where SDXL's extra control over composition and lighting comes from. So the Advanced node lets you address each one separately instead of shoving the same string into both.

    What you set

    • text_positive_g and text_positive_l - your prompt for the G encoder and the L encoder. Most of the time you put the same scene in both; the option to differ is there when you want it.
    • text_negative - your negative prompt.
    • lighting - the preset. No option disables styling.
    • negative_prompt_to - Both, G only, or L only. This decides where the style's built-in negative gets sent. Both is the sane default; the per-encoder options are for when a negative is fighting one encoder more than the other.
    • log_prompt - prints the assembled result to the console so you can actually see what landed in G versus L.

    The outputs give you every piece: text_positive_g, text_positive_l, and a merged text_positive, plus text_negative_g, text_negative_l, and a merged text_negative. Run _g and _l into CLIPTextEncodeSDXL's matching inputs. If you're not actually on an SDXL dual-encode setup, don't overthink it - grab the merged text_positive / text_negative and feed a normal CLIP Text Encode, which is exactly what the basic LightingStyler was built to hand you.

    Installing it

    ComfyUI Manager, search ComfyUI_MileHighStyler. Manager is patchy about listing this pack, so if it's not there, clone it:

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

    Restart ComfyUI. No models, no dependencies - it's pure JSON templates, so install is instant and it uses no VRAM.

    Common snags

    The most common confusion is the six outputs. You don't wire all of them - you pick a lane. SDXL dual-encode? Use _g and _l. Everything else? Use the merged pair. Wiring _g into a plain CLIP Text Encode won't break anything, it just wastes the split.

    And the pack-wide caveat holds here too: this is CLIP-encoder technology. It's at home on SDXL and its finetunes (Illustrious, Pony, Juggernaut, NoobAI), where the two-encoder split and the weighted style templates are exactly right. On an LLM-encoded model like Flux 2 or Z-Image there aren't two CLIP encoders to split, the weighting is discarded, and the negative does nothing at CFG 1 - so this node is solving a problem those models don't have. Keep it on the SDXL side of your rig.

    Categoryali1234/stylers

    Inputs (6)

    NameTypeDefaultDescription
    text_positive_gSTRING
    text_positive_lSTRING
    text_negativeSTRING
    lightingCOMBO11 options: No option, Ambient, Artificial, Backlit, Diffused, Flash, +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