ArchAi3D_Qwen_Person_Cinematographer
A film set for one — Person Cinematographer directs the camera around a character
- prompt
- system_prompt
- multi_frame_prompts
- frame_count
- preset_description
- technical_notes
ArchAi3D_Qwen_Person_Cinematographer is the pack's "direct the shot" node for people, and it has the most intimidating input list in the whole set - emotion, eyes, pose, lighting, mood, orbit angle, distance - until you notice the default preset is a thing called ascendra_man_threatening and realize this thing comes with cinematic scenarios pre-built. The ASCENDRA presets are named little film moments; pick one and a wall of dropdowns configures itself.
Which is exactly the pitch: a cinematographer in a box for Qwen-Edit. It moves the camera around a character (orbit is the headline movement, with orbit_angle up to 360°) while the generated system prompt works to keep the character's face, clothes, hairstyle and core pose intact - the hard problem for any edit model, and the one Qwen-Edit is honestly weakest at without help.
The inputs that matter
The full list is genuinely long (emotion with 20 options, eyes with 17, pose with 25+, 8 lighting setups, 9 moods). You will not touch most of it. What matters:
- preset - the cinematic scenarios,
ascendra_man_threateningby default. This is the "why did I install this" feature: one click, done. - scene_context - the character and setting ("hooded man in dark jacket on train platform at night"). This is the input that carries most of the quality.
- movement + orbit_angle - camera path and how far it travels. Orbit is the most reliable movement for Qwen, per the pack's research.
- multi_frame_mode + steps - for 360° turnarounds or emotion cycles. Same chain-edits pattern as the rotation nodes: each frame is a full Qwen-Edit pass.
Outputs: prompt and system_prompt (the two you wire into the encoder), plus multi_frame_prompts, frame_count, preset_description, and a technical_notes string that gives tips for the selected shot - a nice touch you don't get on the other camera nodes.
How it works
Underneath, it assembles a director-style instruction - movement, angle, emotion, eye direction, pose, lighting, mood - into one sentence for the edit model, wrapped with a system prompt that tells the model it's a professional cinematographer preserving the actor's identity across the camera move. Identity preservation is the load-bearing part: Qwen-Edit re-emits the whole frame, so without explicit "keep the face identical" language, your character becomes someone else between angles.
Installing it
Inside 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).
Common issues
- Faces drift. The system prompt helps, but the KB and the community agree: Qwen-Edit struggles most with faces it hasn't seen in training. For a character that must stay identical, expect to inpaint the face back afterward. Strict identity work is still "inpaint a face back in" territory.
- The model may move the person, not the camera. When people are in frame, Qwen sometimes re-poses them instead of orbiting the camera. Centered subject, short orbit angles, and the system prompt are your levers.
- Multi-frame chains drift. Each frame builds on the last; errors compound. Regenerate from the source image rather than the previous output if a sequence wanders.
It's the most "fun" node in the pack - the preset list alone invites experimentation - and it's the right tool for character-focused camera moves, with the honest caveat that identity preservation is prompt-assisted, not guaranteed.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | ascendra_man_threatening | Select cinematic preset or 'custom' for manual control. ASCENDRA presets included! |
| scene_context | STRING | Describe the character and scene. Example: 'hooded man in dark jacket on train platform at night' | |
| movement | COMBO | orbit_right | Camera movement type. Orbit = rotate around character (most important!) |
| orbit_angle | INT | 451–360 | Angle for orbit movement (45°, 90°, 180°, 360°) |
| distance | COMBO | medium | Camera distance from subject |
| angle | COMBO | eye_level | Camera angle. Low=powerful, high=vulnerable |
| emotion | COMBO | neutral | Character emotion/expression (20 options) |
| emotion_intensity | COMBO | moderate | Emotion intensity level |
| eyes | COMBO | at_camera | Where character is looking (17 options) |
| eye_expression | COMBO | normal | Eye expression modifier |
| pose | COMBO | standing_neutral | Character pose and body language (25+ options) |
| lighting | COMBO | front_lighting | Lighting style (8 professional setups) |
| mood | COMBO | neutral_balanced | Scene mood and atmosphere (9 options) |
| multi_frame_mode | BOOLEAN | false | Generate multi-frame sequence (360° turnaround, emotion cycle, etc.) |
| steps | INT | 82–24 | Number of frames for sequence (8=standard, 12=detailed, 24=ultra-smooth) |
| debug_mode | BOOLEAN | false | Print detailed prompt information to console |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | Generated cinematographer prompt |
| system_prompt | STRING | ⭐ Professional cinematographer system prompt |
| multi_frame_prompts | STRING | Multi-frame sequence prompts (if multi_frame_mode=True) |
| frame_count | INT | Number of frames (1 for single, or steps for sequence) |
| preset_description | STRING | Description of selected preset |
| technical_notes | STRING | Technical notes and tips for this shot |