Lackluster-Camera
The original Qwen Multiangle Camera node, by its first name
- image
- prompt
- camera_info
Here's the confusing part about this pack's camera nodes: there are two "Lackluster-Camera" entries in the node menu, and they're the same node. LacklusterQwenMultiangleCameraNode is the original name - the one that pays homage to the Qwen-Image-Edit "multiangle" community trick - and LacklusterCameraNode is a shorter alias registered for the same class. Same schema, same outputs, same display name. If you've got one, you don't need the other.
So this page is really about the lineage. The whole idea came out of the Qwen-Image-Edit scene, where a Multiple-Angles LoRA turned camera framing into a slider and the community realized the "node" was really just a prompt writer: feed the model a natural-language angle phrase and it re-shoots your subject from that direction. That phrase - <sks> front-right quarter view eye-level shot medium shot - is exactly what this node produces from three numbers.
The inputs, since you're here
- horizontal_angle (0–360°) - azimuth, mapped to front/back/left/right and the quarter views
- vertical_angle (-30° to 60°) - elevation, mapped to low-angle/eye-level/elevated/high-angle
- zoom (0–10) - shot size, wide to close-up
- default_prompts - in the schema but effectively a no-op in the current source; the
<sks>prefix is always applied - camera_view and image - the optional 3D preview widgets
Outputs: prompt (STRING) and camera_info (LOAD_3D_CAMERA).
Why it's still worth reading about
Two reasons you might specifically hit this name. First, older shared workflows reference it, and now you know it's interchangeable with the shorter name. Second, the provenance matters for expectations: this is a prompt-formatter tuned to the Qwen multiangle convention, not a ControlNet or a camera-tracker. It writes text that a Qwen-Image-Edit-style workflow (or Flux, or anything LLM-encoded) can act on - it doesn't move a 3D scene. The 3D bits are just the preview.
Install is the pack, nothing extra: Manager → "ComfyUI Lackluster Nodes" (deps are requests + numpy). And same caveat as its alias - the three.js preview is compiled from qwen_src and not shipped built in the repo, so if the widget doesn't render, the prompt logic is unaffected.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| horizontal_angle | INT | 00–360 | Camera azimuth angle (0-360°) |
| vertical_angle | INT | 0-30–60 | Camera elevation angle (-30° to 60°) |
| zoom | FLOAT | 5.00–10 | Camera distance (0=wide, 10=close-up) |
| default_prompts | BOOLEAN | true | — |
| camera_view | BOOLEAN | false | Toggle camera perspective preview |
| imageopt | IMAGE | Optional input image to display in 3D scene |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| camera_info | LOAD_3D_CAMERA | — |