Nodes/IAMCCS-nodes/IAMCCS Cine Multi-Generation Director
ComfyUI Node

IAMCCS Cine Multi-Generation Director

The multi-shot planner that runs your dialogue scene shot by shot

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS Cine Multi-Generation Director
  • audio_1
  • audio_2
  • audio_3
  • audio_4
  • audio_5
  • audio_6
  • audio_7
  • audio_8
  • multigen_plan_json
  • shot_plan_json
  • shot_prompt
  • dialogue_text
  • voice_direction
  • shot_label
  • shot_render_id
  • shot_number
  • shot_count
  • total_scene_seconds
  • shot_start_seconds
  • shot_duration_seconds
  • shot_total_frames
  • primary_reference_index
  • secondary_reference_index
  • audio_index
  • audio_start_seconds
  • audio_duration_seconds
  • cut_mode
  • use_context_bridge
  • recommended_overlap_frames
  • report
shot_index1
render_idscene01
scene_promptA cinematic dialogue scene with coherent eyelines, natural acting, film lighting.
shot_lines4.0 | hard_cut | 1 | 1 | field_A | Medium close-up on character A, he speaks with restrained emotion | I knew you would come back. | tired intimate low voice 3.5 | hard_cut | 2 | 2 | reverse_B | Reverse angle on character B, she listens then answers | I never really left. | calm low voice 2.5 | hard_cut | 3 | 0 | insert_photo | Close-up insert of the old photograph on the table | | 4.0 | continuity_cut | 1>2 | 1 | return_A_pushin | Return to character A, slow push-in, visible hesitation | Then why does it feel different? | quiet broken voice
fps24.00
ltx_round_modeup
duration_modemax_line_audio
audio_padding_seconds0.20
default_duration_seconds4.00
default_cut_modehard_cut
default_audio_assignmentshot_number
prompt_modescene_plus_shot
default_reference_strength0.92
tail_reference_strength0.82
tail_anchor_modeauto
hard_cut_overlap_frames0
continuity_overlap_frames9

Here's the uncomfortable truth about multi-shot AI filmmaking: each shot is a separate generation, and the moment you stop, the model forgets who your character is, what room they're in, and where the camera was. IAMCCS Cine Multi-Generation Director is this pack's attempt to make that bookkeeping a planning problem instead of a luck problem. You write a scene as a list of shots, and it hands you, for each shot, the exact frame count, references, prompt, dialogue, voice direction, and cut mode - everything a multi-shot pipeline needs to generate shot N and hand continuity to shot N+1.

It's the "director" node in the Cine family, and its default state is a three-person dialogue scene with eyelines, reverse angles, and a photo insert. That's not an accident - dialogue scenes are where multi-shot continuity is both hardest and most worth planning.

How it works

The heart is the shot_lines input, one shot per line:

seconds | cut_mode | ref or ref>ref | audio_index | label | shot prompt | dialogue | voice direction

Example from the default:

4.0 | hard_cut | 1 | 1 | field_A | Medium close-up on character A, he speaks with restrained emotion | I knew you would come back. | tired intimate low voice

For each shot it computes: total scene seconds, shot start/duration, frame counts (with ltx_round_mode for the 8n+1 rule), the primary and secondary reference indices (1>2 means bridge from ref 1 into ref 2), the audio assignment and timing (it can use your audio_1audio_8 inputs to size and place each shot's sound), the cut mode (hard_cut vs continuity_cut - which sets overlap frames so the next shot starts from the previous one's tail), and whether to bridge context via use_context_bridge. The prompt_mode toggle decides if each shot prompt is scene_plus_shot or shot_only.

The two strengths are the continuity knobs: default_reference_strength (0.92) anchors each shot to its chosen reference, and tail_reference_strength (0.82) controls how hard the end of the shot holds, so the tail becomes a usable anchor for the next shot instead of drift. continuity_overlap_frames (default 9) is the overlap that makes continuity_cut actually continuous.

The outputs that matter

For each shot it emits (among many): shot_prompt, dialogue_text, voice_direction, shot_label, shot_render_id, shot_number/shot_count, total_scene_seconds, shot_start_seconds, shot_duration_seconds, shot_total_frames, primary_reference_index, secondary_reference_index, audio_index, audio_start_seconds, cut_mode, recommended_overlap_frames, plus multigen_plan_json and shot_plan_json for the pipeline. Wire shot_index to a counter/loop and this node becomes the per-iteration brain of a multi-generation loop.

Install

One node in IAMCCS-nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

or Manager → search IAMCCS. README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8. No extra deps for the planner itself.

Where people get burned

  • Continuity is earned, not granted. The plan sets up overlap frames and tail strengths, but if your sampler chain doesn't actually use the previous shot's tail as the next shot's first frame, continuity_cut is decorative. The output use_context_bridge exists so the pipeline knows to do that.
  • Line format is strict. Eight pipe-separated fields, in order. A missing field shifts everything. The Cine Line Stacker node exists precisely to build these lines without typos.
  • Audio timing surprises. duration_mode = max_line_audio (default) takes the longer of the line's seconds or the audio's length. If a 2-second line has a 6-second audio, your shot becomes 6 seconds. That's often what you want for dialogue; know it's happening.
  • shot_index is 1-based here. Unlike its sibling planners, the director starts at 1. Off-by-one errors are the most common "why is shot 0 wrong" confusion when you loop this.
  • Zero search impressions, one-author tooling, and the README barely covers the Cine family. This node is powerful but it's the centerpiece of a pipeline - budget time to read the report outputs while tuning.
CategoryIAMCCS/Cine/03 Multi Generation

Inputs (25)

NameTypeDefaultDescription
shot_indexINT11–100000
render_idSTRINGscene01
scene_promptSTRINGA cinematic dialogue scene with coherent eyelines, natural acting, film lighting.
shot_linesSTRING4.0 | hard_cut | 1 | 1 | field_A | Medium close-up on character A, he speaks with restrained emotion | I knew you would come back. | tired intimate low voice 3.5 | hard_cut | 2 | 2 | reverse_B | Reverse angle on character B, she listens then answers | I never really left. | calm low voice 2.5 | hard_cut | 3 | 0 | insert_photo | Close-up insert of the old photograph on the table | | 4.0 | continuity_cut | 1>2 | 1 | return_A_pushin | Return to character A, slow push-in, visible hesitation | Then why does it feel different? | quiet broken voiceOne shot per line: seconds | cut_mode | ref or ref>ref | audio_index | label | shot prompt | dialogue | voice direction
fpsFLOAT24.000.001–240
ltx_round_modeCOMBOup4 options: up, nearest, down, none
duration_modeCOMBOmax_line_audio3 options: line_seconds, audio_when_available, max_line_audio
audio_padding_secondsFLOAT0.200–30
default_duration_secondsFLOAT4.000.01–3600
default_cut_modeCOMBOhard_cut4 options: hard_cut, continuity_cut, soft_cut, match_cut
default_audio_assignmentCOMBOshot_number2 options: shot_number, none
prompt_modeCOMBOscene_plus_shot2 options: scene_plus_shot, shot_only
default_reference_strengthFLOAT0.920–1
tail_reference_strengthFLOAT0.820–1
tail_anchor_modeCOMBOauto4 options: auto, same_reference, secondary_only, none
hard_cut_overlap_framesINT00–4096
continuity_overlap_framesINT90–4096
audio_1optAUDIO
audio_2optAUDIO
audio_3optAUDIO
audio_4optAUDIO
audio_5optAUDIO
audio_6optAUDIO
audio_7optAUDIO
audio_8optAUDIO

Outputs (22)

NameTypeDescription
multigen_plan_jsonSTRING
shot_plan_jsonSTRING
shot_promptSTRING
dialogue_textSTRING
voice_directionSTRING
shot_labelSTRING
shot_render_idSTRING
shot_numberINT
shot_countINT
total_scene_secondsFLOAT
shot_start_secondsFLOAT
shot_duration_secondsFLOAT
shot_total_framesINT
primary_reference_indexINT
secondary_reference_indexINT
audio_indexINT
audio_start_secondsFLOAT
audio_duration_secondsFLOAT
cut_modeSTRING
use_context_bridgeBOOLEAN
recommended_overlap_framesINT
reportSTRING