Filter Styler (Advanced)
The SDXL dual-encoder version of the photo-filter menu
- text_positive_g
- text_positive_l
- text_positive
- text_negative_g
- text_negative_l
- text_negative
Same 11-entry color-grade menu as the plain FilterStyler - Black and White, Sepia, Vintage, Monochrome, HDR, Vignette, Saturated, Warm, Cool, Contrast - in the "Advanced" node that exposes SDXL's two text encoders. For an 11-item filter menu the Advanced wiring is pretty overkill, but if you're already building an SDXL graph around the dual-encoder split, this slots in cleanly.
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, plus negative_prompt_to (Both / G only / L only) for the negative. A filter is a whole-image tone, so there's basically no reason to give G and L different text here - feed both the same subject. The split is SDXL-only anyway: SD 1.5 has one encoder, and the 2026 LLM-encoded models (Flux 2, Z-Image, Qwen) don't have this CLIP-G/CLIP-L architecture.
How it works
It's a fork of SDXL Prompt Styler. Each filter is a JSON template with a {prompt} slot; your subject drops in, the filter phrase gets wrapped at a strong weight (~2.0), and rewritten prompt strings come out. Text only - and it asks the model to generate the graded look, it doesn't post-process the output.
Inputs and outputs that matter
- filter - 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, orL 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 an actual grade. Neither Filter node applies a LUT; both bake a "sepia"-ish suggestion into the prompt that varies per seed. For an exact, repeatable color grade, filter the output image after generation.
- Splitting G/L on a whole-image tone. Pointless. Same text both sides.
- Stacking opposite filters. "Warm" plus "Cool" cancel; a strong "Black and White" overrides any color elsewhere. Pick one.
- Off SDXL the split does nothing. Use the plain node, or just type "vintage, warm tones."
- Reaching for a filter when you want a film stock. For real color control on the SDXL family, naming a specific film stock (Kodak Portra 400 for warm skin, Ilford HP5 for grainy black-and-white) steers the grade far more precisely than a generic "vintage." That's not in this 11-item menu, so type it by hand into the positive alongside the filter.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive_g | STRING | — | |
| text_positive_l | STRING | — | |
| text_negative | STRING | — | |
| filter | COMBO | 11 options: No option, BlackAndWhite, Contrast, Cool, HDR, Monochrome, +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 | — |