π₯ Simple Camera Control v3
Four camera modes, one node β Simple Camera Control v3 is the Swiss army camera
- prompt
- system_prompt
- description
Most camera nodes in the ArchAi3d Qwen pack do one move. ArchAi3D_Qwen_Simple_Camera_Control - display name "π₯ Simple Camera Control v3" - tries to do all of them, and mostly succeeds. It's the unified node: four modes (position relative to an object, move while tracking an object, free scene exploration, align with a surface), each with its own prompt structure, plus shared camera angle, lens and system-prompt controls. If you install one camera node from this pack, it's plausibly this one.
The headline feature is control_mode, which changes what the node asks you. Mode 1 is product/architectural detail ("camera two meters in front of the fireplace, looking at it"). Mode 2 is tracking shots - orbit, dolly in/out, arc, truck, pedestal - with the tooltip quoting research success rates (orbit 95%, dolly 90%). Mode 3 is free exploration (walkthroughs, establishing shots). Mode 4 aligns the camera with a surface: parallel to the wall, perpendicular to the countertop, whatever. Pick the mode, and the relevant fields matter while the others sit idle.
The inputs that matter
The schema is large but mode-gated, so you only touch a slice. The genuinely important ones:
- control_mode - the four modes above. Everything else is conditional on this.
- scene_context - the scene description. Defaults to "modern living room with grey sofa and fireplace," and it's the consistency anchor for the whole node.
- system_prompt_preset - research-validated system prompts with honesty in the names: "Scene Preservation Camera (95%)", "Virtual Camera Operator (92%)", "Cinematographer (85%)", or auto-select. The percentage is the author's reliability rating, and it's a nice touch that the rating is right there in the label.
- distance fields - phrased as words, not numbers: "two meters", "five feet". The tooltips insist on word form, and the pack's research is that Qwen reads "two meters" better than "2m".
- camera_angle and lens_type - apply to all modes. Fisheye for drama, telephoto for compression; Qwen honors lens words better than exact focal lengths.
- preservation_clause - free text to pin things ("keep furniture unchanged").
Outputs: prompt, system_prompt (both into your Qwen encoder), and description (a human-readable readout of what was built).
How it works
Each mode assembles a different prompt template - that's the whole trick. Mode 1 concatenates spatial relation + distance + orientation into a "position the camera [relation] the [object], [distance], [orientation]" instruction; Mode 2 uses the verified orbit/dolly phrasing with a tracking clause; Mode 4 lines the camera up with the named surface. The system_prompt_preset then picks the stabilizing system prompt, and automatic number-to-word conversion handles any numeric input. No pixels, no API - pure template + string assembly for Qwen-Edit.
Installing it
Part of ComfyUI-ArchAi3d-Qwen by Amir Ferdos (ArchAi3d):
# ComfyUI Manager: search "ArchAi3d Qwen"
cd ComfyUI/custom_nodes
git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
cd ComfyUI-ArchAi3d-Qwen
pip install -r requirements.txt
Restart. You supply the Qwen-Image-Edit model (GGUF-quantized for consumer VRAM) and the encoder.
Common issues
- "Simple" is a stretch on first open. The node has 28 inputs because it multiplexes four modes. Once you realize only the current mode's fields matter, it's fine - but the first load is intimidating.
- Numbers vs words. Feed distances as words ("two meters") as the tooltips insist; digits trip the model up more than they should.
- Tracking people can fail differently. Mode 2 with a person tracked is where the "model rotates the person instead of the camera" failure lives. Keep the subject centered.
- Drift, as always. Qwen-Edit re-emits the whole frame; the 95% system prompt reduces but doesn't eliminate scene mutation.
It's the pack's most capable camera node and the one I'd reach for first - the mode gating is a genuinely good idea, and the reliability ratings in the dropdowns are the kind of honest labeling you don't usually get.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| scene_context | STRING | modern living room with grey sofa and fireplace | Describe the scene. Ex: 'modern living room', 'brick building exterior' |
| control_mode | COMBO | Position Relative to Object | Choose mode based on what you want to do. Each mode uses different prompt structure. |
| target_object | STRING | the fireplace | [Mode 1] Object to position camera relative to. Ex: 'the sofa', 'the door', 'the table' |
| spatial_relation | COMBO | in front of | [Mode 1] Camera's spatial relationship to the object |
| distance_from_target | STRING | two meters | [Mode 1] Distance from object. Use WORDS: 'two meters', 'five feet', 'three meters' |
| camera_orientation | COMBO | looking at target | [Mode 1] Which way is camera pointing relative to object? |
| tracked_object | STRING | the sofa | [Mode 2] Object to keep in frame while moving. Ex: 'the chair', 'the person' |
| movement_type | COMBO | orbit | [Mode 2] Type of camera movement. Orbit=95% success, Dolly=90% |
| movement_direction | COMBO | right | [Mode 2] Direction for movement |
| movement_distance | STRING | five meters | [Mode 2] Movement distance. Use WORDS: 'five meters', 'ninety degrees' |
| tracking_behavior | COMBO | centered in frame | [Mode 2] How to keep object in frame during movement |
| exploration_direction | COMBO | forward | [Mode 3] Direction to move through scene |
| exploration_distance | STRING | three meters | [Mode 3] How far to move. Use WORDS: 'three meters', 'ten feet' |
| movement_style | COMBO | smooth glide | [Mode 3] Style of movement through space |
| direction_hint | STRING | [Mode 3] Optional: 'toward the window', 'past the kitchen', 'around the corner' | |
| reveal_what | STRING | [Mode 3] Optional: What's being revealed? 'more of the room', 'the dining area' | |
| alignment_target | COMBO | wall | [Mode 4] Surface or element to align camera with |
| alignment_type | COMBO | parallel to | [Mode 4] How camera relates to the surface |
| distance_from_surface | STRING | one meter | [Mode 4] Distance from surface. Use WORDS: 'one meter', 'two feet' |
| surface_detail | STRING | [Mode 4] Optional: 'brick texture', 'wood grain', 'tile pattern' | |
| camera_angle | COMBO | eye level | [All Modes] Camera angle/height |
| lens_type | COMBO | normal | [All Modes] Lens type affects field of view |
| system_prompt_preset | COMBO | Scene Preservation Camera (95%) | Research-validated system prompts. 95% = highest consistency rating |
| preservation_clause | STRING | Optional: Add preservation instructions. Ex: 'keep furniture unchanged', 'maintain lighting' | |
| debug_mode | BOOLEAN | false | Print generated prompts to console for debugging |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | β |
| system_prompt | STRING | β |
| description | STRING | β |