Nodes/ComfyUI_MileHighStyler/Camera_Angles Styler (Advanced)
ComfyUI Node

Camera_Angles Styler (Advanced)

Shot angles for SDXL

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

    This one's about where the camera is, not what it is. Camera_AnglesStylerAdvanced is a dropdown of ~39 shot angles - dutch angle, fisheye, from above, from below, from behind, pov, perspective - that it injects into your prompt. If you've ever fought to get a low-angle hero shot or a proper bird's-eye and kept landing on the same eye-level framing, this is a menu for exactly that. Most of these are also real Danbooru composition tags, so they land well on booru-trained models.

    The "Advanced" part means it's the SDXL dual-CLIP variant. Same angle menu as a basic styler would have, but with the positive prompt split across SDXL's two text encoders and a knob for where the negative goes.

    How the "Advanced" plumbing works

    SDXL uses two text encoders - CLIP-G and CLIP-L - and this node lets you feed them separately: text_positive_g to G, text_positive_l to L. The angle phrasing is applied to both and wrapped at the pack's strong default weight (~2.0); MileHighStyler is a fork of the classic SDXL Prompt Styler. negative_prompt_to (Both / G only / L only) decides which encoder gets the entry's built-in negative, defaulting to Both.

    None of this is image processing - it's prompt assembly. The output is text; your CLIP Text Encode and sampler produce the actual shot.

    The inputs and outputs that matter

    • camera_angles - the ~39-entry dropdown; none is off.
    • text_positive_g / text_positive_l - your subject per encoder; use the same text in both if you're unsure.
    • text_negative - your negative, with the style's negative routed by negative_prompt_to.

    log_prompt prints the result to the console. Six outputs: text_positive_g, text_positive_l, merged text_positive, and text_negative_g / text_negative_l / merged text_negative. Feed _g and _l into a CLIPTextEncodeSDXL, or just take the merged text_positive / text_negative into a normal CLIP Text Encode.

    Installing it

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

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

    then restart. No models, no requirements.txt, no dependencies. Nodes appear under ali1234/stylers.

    Where people get burned

    • Advanced when you wanted simple. If you're not driving a CLIPTextEncodeSDXL with deliberately different G/L text, the split is overkill - just use the merged outputs, or a basic styler.
    • Angle tags aren't a camera rig. from below biases the framing; it won't guarantee a clean, consistent angle across seeds. Pair it with subject phrasing that implies the same viewpoint.
    • Booru-trained models respond best. Many of these are Danbooru tags - they land hardest on Pony/Illustrious/NoobAI/WAI and SD1.5 anime, and softer on photoreal or base SDXL.
    • Model era. Dual-CLIP is SDXL-only. This node is meaningless on the 2026 LLM-encoded models (Flux 2, Z-Image, Qwen) - no G/L pair, weighting discarded. On those, write the angle in plain words.
    Categoryali1234/stylers

    Inputs (6)

    NameTypeDefaultDescription
    text_positive_gSTRING
    text_positive_lSTRING
    text_negativeSTRING
    camera_anglesCOMBO39 options: none, dutch angle, fisheye, from above, from behind, from below, +33
    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