Nodes/jan-prompt-presets/Camera Presets
ComfyUI Node

Camera Presets

Shot language you don't have to type from memory

By kursopiko·Created 6 months ago·Updated 6 months ago· 0
Camera Presets
    • camera_prompt
    presetNone / Custom
    custom_override

    Naming the shot is one of the cheapest quality moves in prompting. "Low angle, dramatic perspective, foreshortening" tells the model what a camera did a lot more reliably than "epic, dramatic, cool" ever will - the models were trained on captions that name real photographic situations, so the vocabulary carries real weight. Camera Presets is a tiny dictionary of exactly that kind of shot language: pick a framing from a dropdown, get a ready-made camera prompt string.

    How it works

    There's no model, no API, nothing clever - it's a lookup table. Each preset maps to a short prose phrase describing a shot type. You select the preset, the node returns the matching string, and you feed that into your positive prompt. The strings are written in the plain descriptive style that works across SDXL and the newer LLM-encoded models - concrete physical referents, not quality fluff.

    The one genuinely useful design choice is the custom_override input. If you fill it in, it replaces the dropdown entirely - the preset is ignored and your text goes straight out. So the node doubles as a "remember my favorite shot description" box when you want to keep a specific framing phrase around without retyping it.

    The options

    Seven presets:

    • Cinematic Hero - low angle, dramatic perspective, foreshortening
    • Dynamic Action - dutch angle, tilted camera, wide angle lens
    • Intimate Portrait - close-up, eye level, shallow depth of field
    • Character Showcase - full body, eye level, centered composition
    • Over-the-Shoulder Scene - OTS framing, medium shot, depth of field
    • Epic Wide Scene - wide shot, low angle, cinematic framing
    • None / Custom - empty output; use the override

    Inputs: preset (the dropdown) and optional custom_override (multiline). Output: camera_prompt, a plain STRING that wires straight into a prompt field or a concat node.

    When it's actually worth it

    Honestly, these are phrases you could type. The value is consistency and speed: when you're batching a character across different shots and want the same framing language every time, or when you're building a template workflow you'll share. One node, one stable string, no typos, no "was it low-angle or low angle" second-guessing mid-batch. That's the whole pitch, and it's a fair one for a node this cheap.

    Installing it

    Ships in jan-prompt-presets (https://github.com/kursopiko/jan-prompt-presets) by JAN (@kursopiko). Via ComfyUI Manager: search jan-prompt-presets, install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kursopiko/jan-prompt-presets
    

    Restart ComfyUI. No dependencies, no model downloads - it's a dict in a Python file. Look for it under prompt/presets.

    Troubleshooting

    • Empty output. You're on "None / Custom" with no override filled in. Pick a real preset or type something in the override.
    • My override is being ignored. Double-check it's not just whitespace - the override is stripped, so a box full of spaces counts as empty and falls back to the dropdown.
    • Node missing. Pack not installed or no restart yet; search the prompt/presets category.
    Categoryprompt/presets

    Inputs (2)

    NameTypeDefaultDescription
    presetCOMBONone / CustomSelect a predefined camera/shot preset for your SDXL prompt.
    custom_overrideoptSTRINGIf filled, this overrides the dropdown selection entirely.

    Outputs (1)

    NameTypeDescription
    camera_promptSTRING