Focal Point Styler (Advanced)
A dropdown of 'X focus' tags
- text_positive_g
- text_positive_l
- text_positive
- text_negative_g
- text_negative_l
- text_negative
FocalPoint is a menu of Danbooru "X focus" tags - 122 of them - that tell the model which part of the subject the image should center on: eye focus, hand focus, back focus, foot focus, and a good many body-part focuses that push this squarely into NSFW/booru territory. These are all real Danbooru tags, so on the anime SDXL models trained against that vocabulary they genuinely bias the framing and attention toward the named part. It's a niche tool for a specific kind of prompting, and it's honest about what it is.
If "X focus" tags aren't part of your workflow, this menu won't mean much to you. If they are, it saves you looking them up.
The "Advanced" part
This node ships only in the Advanced flavor, wired for SDXL's two text encoders - the big OpenCLIP-G and the smaller CLIP-L. You get text_positive_g and text_positive_l rather than one positive box, plus negative_prompt_to (Both / G only / L only). Put the same subject in both encoders unless you have a reason to split. And the whole thing only means something on SDXL: SD 1.5 has one encoder, and the 2026 LLM-encoded models don't have this architecture.
How it works
It's a fork of SDXL Prompt Styler. Each focus tag is a JSON template with a {prompt} slot; your subject drops in, the tag gets wrapped at a strong weight (~2.0), and rewritten prompt strings come out. Because these are literal booru tags, they behave best on the SDXL anime family (Illustrious, NoobAI, Pony) that learned them. Text only - nothing loads a model.
Inputs and outputs that matter
- focal point - the 122-entry "X focus" dropdown.
none= 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
- Wrong model family. "X focus" is booru vocabulary. On an anime SDXL checkpoint it works as intended; on a photoreal base or a 2026 LLM-encoded model it gets vague or reads literally, because the tag was never trained in the same way. This is a menu for the SDXL anime lineage.
- Focus isn't a crop. The tag biases attention and framing, it doesn't guarantee a tight shot of the named part. If you need a precise crop, compose it or inpaint.
- The Advanced split is SDXL-only. Off SDXL the
_g/_lsockets do nothing - and this node has no basic variant, so if you're not on SDXL, you'd just type the tag by hand.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| text_positive_g | STRING | — | |
| text_positive_l | STRING | — | |
| text_negative | STRING | — | |
| focal point | COMBO | 122 options: none, armpit focus, ass focus, back focus, breast focus, eye focus, +116 | |
| 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 | — |