Lackluster-Camera Sequence
Queue a whole orbit of camera angles in one node
- image
- prompts
- prompt_text
- camera_info
- sequence_count
The single-shot "Lackluster-Camera" node is great for one angle. The moment you want a subject re-shot from six directions - a character turnaround, a location tour, coverage for an edit - you'd rather not drag out six copies. Lackluster-Camera Sequence is the batch version: it turns a list of angles into a list of prompts and, optionally, a list of LOAD_3D_CAMERA records, all from one node.
How it works
You feed it angles as a JSON array (the sequence_json input), which is what the interactive 3D widget builds for you if you use it - pick angles in the scene and it queues them. Each entry has the shape:
[
{"azimuth": 0, "elevation": 0, "distance": 5.0},
{"azimuth": 90, "elevation": 0, "distance": 4.0}
]
On run it converts each to a prompt, same phrasing as the single node - custom_prefix (default <sks>) prepended to every one.
output_mode decides what comes out:
sequential_batch- emits the prompts as a list, which triggers one ComfyUI execution per angle (the workflow runs once per shot).multiline_text- joins them into one multiline string instead, for when you're pasting or reviewing rather than batching.
Outputs
- prompts (STRING list) - one prompt per angle
- prompt_text (STRING) - all prompts joined
- camera_info (
LOAD_3D_CAMERAlist) - the 3D metadata, one per angle - sequence_count (INT) - how many angles got queued
Use sequence_count or a Show Text node to confirm the queue looks right before you kick off a long batch.
Notes and gotchas
- If
sequence_jsonis empty or invalid, it silently falls back to a single default angle - check the count before assuming you queued what you think you queued. - Same alias situation as its sibling:
LacklusterCameraSequenceNodeandLacklusterQwenMultiangleSequenceNodeare the same node registered twice, so don't install it twice or get confused by the menu. - The 3D preview widget is a compiled Vue/three.js app the repo doesn't ship built - if the preview doesn't render, the sequence logic still works fine.
For character-consistency work this is the node you actually reach for: same subject, N camera angles, one run.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| output_mode | COMBO | sequential_batch | sequential_batch outputs a list triggering batch execution for each angle; multiline_text outputs concatenated prompts. |
| custom_prefix | STRING | <sks> | Prefix appended to each prompt (e.g. <sks>) |
| horizontal_angle | INT | 00–360 | — |
| vertical_angle | INT | 0-30–60 | — |
| zoom | FLOAT | 5.00–10 | — |
| camera_view | BOOLEAN | false | — |
| sequence_jsonopt | STRING | [] | JSON array of queued sequence angles |
| imageopt | IMAGE | Optional input image to display in 3D scene |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| prompts | STRING | — |
| prompt_text | STRING | — |
| camera_info | LOAD_3D_CAMERA | — |
| sequence_count | INT | — |