VNCCS Visual Camera Control
The visual version of Position Control
- prompt
VNCCS Position Control works, but sliders are a bit clinical. VNCCS Visual Camera Control is the same prompt-builder with a proper visual widget instead: you click and drag on a camera-position pad to pick azimuth and distance, slide an elevation control, and the node writes the exact camera phrase a multi-angle LoRA understands. Same output convention, way friendlier input.
If you're doing a batch of character shots for the Qwen-Image-Edit-2511-Multiple-Angles LoRA, this is the node that makes exploring angles feel like moving a camera instead of arithmetic.
How it works
The Python node itself is almost a stub: it takes a hidden camera_data string, and its actual work is a JSON parse. The interesting part is the web widget (the node's frontend extension), which writes JSON into that hidden input whenever you move the controls:
{
"azimuth": 0,
"elevation": 0,
"distance": "medium shot",
"include_trigger": true,
"random": false,
"random_azimuth_mode": "full"
}
The backend then feeds those values through the exact same mapping table as Position Control - azimuth to one of the eight compass views, elevation to low/eye-level/elevated/high-angle, distance to close-up/medium/wide - and prepends <sks> if the trigger is enabled. If the JSON is missing or malformed, it falls back to a front, eye-level, medium shot with the trigger on, so a broken state never crashes your queue.
The inputs and outputs
The visible socket side is minimal: a hidden camera_data input (don't touch it, the widget owns it) and a prompt STRING output, same shape as Position Control - something like <sks> front-right quarter view eye-level shot medium shot.
The real controls are in the widget: the visual pad (azimuth + distance), the elevation slider, the trigger-word toggle, and the Random mode. Randomization is where this node earns its keep: enable it and every queued generation - including every item in a batch queue - gets a different angle. You can randomize across the full 360° or restrict azimuth to the front ±45° (front-left, front, front-right) for shots that stay camera-facing, while elevation and distance keep randomizing either way. For auto-generating a turn-around sheet of poses, that's a one-click feature that would otherwise take you a custom script.
Installing and using it
Standard VNCCS Utils install:
cd ComfyUI/custom_nodes
git clone https://github.com/AHEKOT/ComfyUI_VNCCS_Utils.git
cd ComfyUI_VNCCS_Utils
pip install -r requirements.txt
or find VNCCS Utils in ComfyUI Manager, install, restart. Wire prompt into a prompt-combine node alongside your main prompt, load a multi-angle Qwen-Image-Edit LoRA, and drag away.
One workflow note: this same prompt convention feeds VNCCS Pose Studio's camera_prompt input, so if you're building pose references and generating character shots in the same graph, this node is the shared "camera" both sides can read.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| camera_data | STRING | {} | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |