Nodes/ComfyUI Lackluster Nodes/Lackluster-Camera Sequence
ComfyUI Node

Lackluster-Camera Sequence

Queue a whole orbit of camera angles in one node

By LacklusterOpsec·Created 5 months ago·Updated 17 days ago· 1
Lackluster-Camera Sequence
  • image
  • prompts
  • prompt_text
  • camera_info
  • sequence_count
output_modesequential_batch
custom_prefix<sks>
horizontal_angle0
vertical_angle0
zoom5.0
camera_viewfalse
sequence_json[]

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_CAMERA list) - 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_json is 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: LacklusterCameraSequenceNode and LacklusterQwenMultiangleSequenceNode are 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.

CategoryLackluster/Camera

Inputs (8)

NameTypeDefaultDescription
output_modeCOMBOsequential_batchsequential_batch outputs a list triggering batch execution for each angle; multiline_text outputs concatenated prompts.
custom_prefixSTRING<sks>Prefix appended to each prompt (e.g. <sks>)
horizontal_angleINT00–360
vertical_angleINT0-30–60
zoomFLOAT5.00–10
camera_viewBOOLEANfalse
sequence_jsonoptSTRING[]JSON array of queued sequence angles
imageoptIMAGEOptional input image to display in 3D scene

Outputs (4)

NameTypeDescription
promptsSTRING
prompt_textSTRING
camera_infoLOAD_3D_CAMERA
sequence_countINT