Camera Modifier (Single)
Lens, angle, and framing as text you can swap by number
- modified_prompt
Camera Modifier is the node that changes how the shot is taken without touching the subject. Twenty photography-technique descriptions covering focal length, angle, shot type, and depth - wide angle, telephoto compression, eye-level, low angle, Dutch angle, macro, medium shot, aerial - each appended to your base prompt by ID. It's the most "photographer's vocabulary" of all the dimensions, and it's the one where an accurate description genuinely moves images on camera-aware checkpoints.
The 20 modifiers map to real technique: 1 is wide angle with environmental context, 4 is portrait focal length with subject isolation, 5 is telephoto compression, 6 is eye-level, 7 is the low-angle "heroic view" the pack's README loves for car shots, 8 is high angle, 9 is bird's-eye plan view, 10 is the Dutch angle, 11–14 run from extreme close-up through full shot, and the upper range covers camera motion and depth-of-field treatment. These are the exact terms SDXL and Pony-era models were trained on heavily, so it's one of the dimensions where the comma-joined format pays off most directly.
The inputs: text (base prompt), modifier_id (1–20, default 7), and preserve_base (default true). The default of 7 is a low-angle shot, which is a fine default for dramatic subjects but easy to forget - check it if your renders keep coming out heroic when you wanted eye-level. Output is the usual single STRING, modified_prompt.
Mechanically it's the pack standard: a table of 20 descriptions loaded by the orchestrator, a string append, zero dependencies, no model downloads. Install: ComfyUI Manager → search "Variationator" → install → restart, or cd ComfyUI/custom_nodes && git clone https://github.com/MushroomFleet/ComfyUI-Variationator.git. No requirements.txt to install (the repo's install-portable.bat references one that doesn't ship). The node sits under Prompt Orchestration.
The classic move with this node is stacking it last in a pipeline: lighting and weather set the light and sky, camera sets the vantage. The README's "professional look" example chains Lighting #7 → Location #14 → Mood #13 → Camera #12, and camera descriptions layer cleanly on top of the others because they don't overlap in vocabulary. Two cautions: some camera terms ("ultra-wide dramatic perspective, distorted edges") can fight with your subject if the base already implies framing, so preserve_base off is worth trying when the result feels off; and a prompt that says both "eye-level" and "low angle" - from chaining nodes carelessly - will confuse any encoder. One camera dimension, one answer, is the rule.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Subject description here | — |
| modifier_id | INT | 71–20 | — |
| preserve_base | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| modified_prompt | STRING | — |