Depth Styler (Advanced)
The SDXL dual-encoder version of the depth-of-field menu
- text_positive_g
- text_positive_l
- text_positive
- text_negative_g
- text_negative_l
- text_negative
The same 20-entry depth-of-field menu as the plain DepthStyler - Shallow, Deep, Macro, Landscape, Close-Up, Environmental Portrait - in the "Advanced" wrapper that exposes SDXL's two text encoders. If you're on SDXL and want more control over how the focus cue lands, this is the variant. Otherwise the basic node is identical minus the extra sockets.
What "Advanced" means
SDXL runs two text encoders - the big OpenCLIP-G and the smaller CLIP-L - together. 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 the negative. Practical advice: depth-of-field is a single clean concept, so feeding both encoders the same subject is the right call ninety percent of the time. The split is SDXL-only - 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 world.
How it works
It's a fork of SDXL Prompt Styler. Each DoF preset is a JSON template with a {prompt} slot; your subject drops in, the depth phrase gets wrapped at a strong weight (~2.0), and rewritten prompt strings come out. Text only - nothing loads a model. And to head off the obvious confusion: this is depth of field, a focus look, not a ControlNet depth map.
Inputs and outputs that matter
- depth - the 20-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
- Over-blurring. "Extreme shallow depth of field" at strong weight will melt the whole background and sometimes the edges of your subject. The Advanced wiring doesn't change that - ease the concept, not the encoders.
- Splitting G/L for a one-note concept. No payoff here. Same text both sides.
- Off SDXL, the split is inert. No dual encoders, no reason for
_g/_l. Use the plain node, or just write "shallow depth of field." - Stacking optical cues. A depth-of-field preset, a camera body, and a filter all pulling at
2.0will argue over the render. If your background is fighting your focus, thin the stack down to the one optical concept you actually care about and let it win.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive_g | STRING | — | |
| text_positive_l | STRING | — | |
| text_negative | STRING | — | |
| depth | COMBO | 20 options: No option, Architecture Depth of Field, Close-Up Depth of Field, Creative or Abstract Depth of Field, Deep Depth of Field, Environmental Portraits Depth of Field, +14 | |
| 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 | — |