Nodes/Zura Nodes/Zura V3 · Safe camera framing
ComfyUI Node

Zura V3 · Safe camera framing

Camera-Angle Prompts That Don't Decapitate Your Subject

By ZURAVFX·Created 22 days ago·Updated about 16 hours ago· 1
Zura V3 · Safe camera framing
    • STRING
    ◄camera_prompt—►
    ◄shot_size▾►

    Ask an image-editing model for "wide left three-quarter camera" and you'll get a lovely new angle with the top of your performer's head sliced off. It's the single most predictable failure of the whole angle-generation genre, and it happens because the model treats reframing as licence to crop. Zura V3 · Safe camera framing is a text node that appends a head-protection clause to your camera instruction before it goes to the encoder.

    Two inputs. camera_prompt is your angle instruction - whatever you'd type anyway. shot_size is an enum: wide, medium, close. One string output, which you wire into the CLIPTextEncode that feeds your candidate-angle generations.

    What it appends

    It picks a framing line by shot size:

    • close - Upper chest and shoulders remain in frame. It also rewrites the literal token close-up to medium close-up, which is the author quietly telling you the close-up prompt is the one that eats heads.
    • medium - Keep the upper torso comfortably in frame.
    • wide - Keep the whole upper body comfortably in frame.

    Then, for every size, it bolts on the same tail: keep the same person and room; show the entire head and hair with clear empty space above it; centre the performer; do not crop the forehead, hair, chin or shoulders.

    So your prompt becomes something like "wide left three-quarter camera. Keep the same person and room. Keep the whole upper body comfortably in frame. Show the entire head and hair, with clear empty space above it. Centre the performer; do not crop the forehead, hair, chin or shoulders."

    Why it's a separate node and not just docs

    Because the guardrail only works when it agrees with the shot size you say you're shooting. If you type a close-camera prompt and leave the dropdown on wide, the whole-upper-body line fights the framing you asked for, and the model splits the difference into mush. Set it to match the row of the angle grid you're generating - the nine-angle gallery's rows are literally wide, medium and close.

    It's also the base class for Zura V4 · Orbit whole scene with parallax, which is the same node with one sentence swapped for a much longer one about moving the camera around the room. If you're on the V3 path, keep the room; if you're on V4, use the V4 node.

    Install

    No dependencies, but it lives in the pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ZURAVFX/ComfyUI_zura_nodes
    

    Restart. That's the whole install. There's no model, no download, and no GPU cost - this is pure string assembly, which is worth saying out loud because in a graph full of 14B video models it's easy to assume every node is expensive.

    The honest caveat

    Framing clauses are a nudge, not a guarantee. Prompt-level guardrails on instruction-editing models are probabilistic, and the community's documented failure mode for this whole class is that the model re-emits the entire frame - so pixels move that you never asked about, and errors compound across a chain of edits. If your angle candidates are drifting on identity or composition, the fix that actually holds is structural: give the edit model the frame it needs and control the crop yourself. The prompt tail buys you headroom; it doesn't buy you consistency.

    CategoryZura/video/advanced

    Inputs (2)

    NameTypeDefaultDescription
    camera_promptSTRING—
    shot_sizeCOMBO3 options: wide, medium, close

    Outputs (1)

    NameTypeDescription
    STRINGSTRING—