Camera Shot Presets (Legacy)
Camera language that actually moves the shot, without the typos
- camera_shot_prompt
Prompt engineering has one genuinely high-leverage phrase left in it, and it's camera language. Naming a physical camera setup - the shot size, the angle, the height - is one of the few things that reliably changes what the modern LLM-encoded models produce, because their encoders were trained on real captions that describe real shots. Camera Shot Presets (Legacy) is that vocabulary, pre-written: a dropdown of every camera move you'd type wrong at 1 a.m., each expanded into a proper instruction paragraph.
The templates are the real content here. BIRDS_EYE doesn't just say "overhead shot" - it explains the geometry: a 90-degree angle to the ground plane, no horizon line, shadows cast directly below, the subject flattened into the ground. LOW_ANGLE, DUTCH_ANGLE, OVER_THE_SHOULDER, POINT_OF_VIEW, ESTABLISHING, KEEP_ANGLE, and the full shot-size ladder (extreme wide → wide → full → medium → close-up → extreme close-up) all get the same treatment: the concept plus the visual consequences the model can actually act on. That expansion is why these work - the models respond to the described composition, not the two-word label.
The inputs that matter
- preset - the shot. Shot size (medium, close-up), angle (high, low, dutch), or specialty (POV, over-the-shoulder, birds-eye).
KEEP_ANGLEis the honest one: it tells the model not to move the camera, which is exactly what you want when preserving a composition. - escape_parentheses - off by default; the same guard as the other preset nodes.
The output
camera_shot_prompt - a STRING to drop into your prompt, usually near the front. Camera language composes with style and subject text; it's not a replacement for either. It's especially valuable for video prompts, where the shot description is what keeps the camera from inventing a new angle every frame.
Installing it
Part of silveroxides/ComfyUI-UtilsCollection. Install via ComfyUI Manager (search ComfyUI-UtilsCollection) or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart after. Dependencies: opencv-python, typing-extensions. Templates ship in the pack; nothing to download. "(Legacy)" marks the compat alias for the pack's canonical UC_CameraShotPresets.
Where people get burned
Over-stuffing. These paragraphs are long, and three camera presets concatenated is a prompt fighting itself - a birds-eye paragraph and a POV paragraph don't compose, they argue. Use one shot preset per prompt, as the camera instruction, and let the subject/style text do its own thing. And on SDXL-era checkpoints the long-form expansion is mostly wasted - this shelf is aimed at the encoder generation that reads descriptions as instructions, so judge the effect on the model you're actually running.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | BIRDS_EYE | 20 options: BIRDS_EYE, CLOSE_UP, DUTCH_ANGLE, ESTABLISHING, EXTREME_CLOSE_UP, EXTREME_WIDE, +14 |
| escape_parentheses | BOOLEAN | false | Prevents errors from parentheses left in the prompt. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| camera_shot_prompt | STRING | — |