Nodes/IAMCCS-nodes/IAMCCS Cine V2V Timeline Director
ComfyUI Node

IAMCCS Cine V2V Timeline Director

Write a shot list in one text box, get a plan back

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS Cine V2V Timeline Director
  • source_video_1
  • source_video_2
  • source_video_3
  • source_video_4
  • source_video_5
  • source_video_6
  • source_video_7
  • source_video_8
  • audio_1
  • audio_2
  • audio_3
  • audio_4
  • audio_5
  • audio_6
  • audio_7
  • audio_8
  • timeline_plan_json
  • shot_plan_json
  • shot_prompt
  • dialogue_text
  • voice_direction
  • shot_label
  • shot_render_id
  • current_segment
  • total_segments
  • shot_number
  • total_scene_seconds
  • shot_start_seconds
  • shot_duration_seconds
  • shot_total_frames
  • source_video_index
  • source_start_frame
  • source_end_frame
  • source_frame_count
  • primary_reference_index
  • secondary_reference_index
  • audio_index
  • audio_duration_seconds
  • cut_mode
  • recommended_generation_mode
  • use_context_bridge
  • recommended_overlap_frames
  • report
segment_index0
render_idv2v_scene01
scene_promptA cinematic V2V sequence with coherent continuity, controlled cuts, natural motion.
timeline_lines4.0 | hard_cut | 1 | all | 1 | 1 | field_A | V2V close-up on character A speaking, keep source motion | I knew you would come back. | tired low voice | v2v_source_plus_reference 3.5 | hard_cut | 2 | all | 2 | 2 | reverse_B | V2V reverse angle on character B answering | I never really left. | calm low voice | v2v_source_plus_reference 6.0 | continuity_cut | 1 | 48+145 | 1>2 | 0 | return_A | Continue from source video 1, slow push-in and reaction | | | two_segments_if_long
fps24.00
ltx_round_modeup
duration_modemax_line_audio_source
audio_padding_seconds0.20
default_duration_seconds4.00
default_cut_modehard_cut
default_v2v_modev2v_source_plus_reference
prompt_modescene_plus_shot
default_reference_strength0.88
tail_reference_strength0.72
tail_anchor_modeauto
hard_cut_overlap_frames0
continuity_overlap_frames9
max_single_v2v_seconds10.0

Your whole scene's shot plan, written as a table

V2V with LTX-2 means a chain of re-rendered clips with continuity - and if you've ever built that by hand, you know the actual work is deciding, per shot: how long it runs, what cut type, which source video, what prompt, what dialogue, which v2v mode. This node turns that decision list into a plain-text table you type once, and it does the segment math for the whole scene from there.

The timeline language

The magic is timeline_lines, and the tooltip spells out the column order: seconds | cut_mode | source_video | source_range | reference | audio | label | prompt | dialogue | voice | v2v_mode. Look at the default - it's three example lines, and they read like a shooting script:

4.0 | hard_cut | 1 | all | 1 | 1 | field_A | V2V close-up on character A speaking, keep source motion | I knew you would come back. | tired low voice | v2v_source_plus_reference
3.5 | hard_cut | 2 | all | 2 | 2 | reverse_B | V2V reverse angle on character B answering | I never really left. | calm low voice | v2v_source_plus_reference
6.0 | continuity_cut | 1 | 48+145 | 1>2 | 0 | return_A | Continue from source video 1, slow push-in and reaction | | | two_segments_if_long

Each pipe-separated column is a field: shot duration, cut mode, which source video index, a frame range (all or 48+145 meaning a range from source), which reference frames to use (1>2), which audio track, a human label, the shot prompt, dialogue, voice direction, and the v2v mode. You can leave columns empty and let defaults fill in - the third line leaves dialogue and voice blank, and the mode two_segments_if_long tells the planner to split long shots.

That's the whole product: parse this text, resolve every segment's duration, frames, audio bounds, references, and cut strategy, and emit the plan for the generation chain.

The knobs that shape the math

Beyond the table, a set of defaults governs anything you leave blank: default_cut_mode (hard_cut), default_v2v_mode, default_duration_seconds (4), prompt_mode (scene_plus_shot vs shot_only), and the reference-strength pair default_reference_strength (0.88) and tail_reference_strength (0.72). The overlap knobs matter for continuity: hard_cut_overlap_frames (0) vs continuity_overlap_frames (9) - continuity cuts borrow a 9-frame tail so the next shot doesn't jump-cut on a moving subject. max_single_v2v_seconds caps how long any one v2v pass can be before the planner splits it.

What you get back

A wall of useful outputs: shot_prompt, dialogue_text, voice_direction, shot_label, shot_render_id, current_segment/total_segments, shot_start_seconds, shot_duration_seconds, shot_total_frames, source_start_frame/source_end_frame, recommended_generation_mode, use_context_bridge, and recommended_overlap_frames - plus the full timeline_plan_json and shot_plan_json for saving or debugging. Wire the per-shot values into your V2V conditioning and the next shot's numbers are just there.

It ships in IAMCCS-nodes (Manager: "IAMCCS", or clone the repo into custom_nodes). The honest catch: this node is the brain, not the muscles - it needs the pack's Cine V2V backend stages and a working LTX-2 audio-video pipeline around it to be useful. Start from one of the author's example timelines rather than inventing columns from scratch.

CategoryIAMCCS/Cine/04 V2V Timeline

Inputs (34)

NameTypeDefaultDescription
segment_indexINT00–100000
render_idSTRINGv2v_scene01
scene_promptSTRINGA cinematic V2V sequence with coherent continuity, controlled cuts, natural motion.
timeline_linesSTRING4.0 | hard_cut | 1 | all | 1 | 1 | field_A | V2V close-up on character A speaking, keep source motion | I knew you would come back. | tired low voice | v2v_source_plus_reference 3.5 | hard_cut | 2 | all | 2 | 2 | reverse_B | V2V reverse angle on character B answering | I never really left. | calm low voice | v2v_source_plus_reference 6.0 | continuity_cut | 1 | 48+145 | 1>2 | 0 | return_A | Continue from source video 1, slow push-in and reaction | | | two_segments_if_longseconds | cut_mode | source_video | source_range | reference | audio | label | prompt | dialogue | voice | v2v_mode
fpsFLOAT24.000.001–240
ltx_round_modeCOMBOup4 options: up, nearest, down, none
duration_modeCOMBOmax_line_audio_source4 options: line_seconds, source_range_when_known, audio_when_available, max_line_audio_source
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_v2v_modeCOMBOv2v_source_plus_reference5 options: v2v_source_plus_reference, v2v_source_context, i2v_from_reference, two_segments_if_long, loop_if_long
prompt_modeCOMBOscene_plus_shot2 options: scene_plus_shot, shot_only
default_reference_strengthFLOAT0.880–1
tail_reference_strengthFLOAT0.720–1
tail_anchor_modeCOMBOauto4 options: auto, same_reference, secondary_only, none
hard_cut_overlap_framesINT00–4096
continuity_overlap_framesINT90–4096
max_single_v2v_secondsFLOAT10.00.1–3600
source_video_1optIMAGE
source_video_2optIMAGE
source_video_3optIMAGE
source_video_4optIMAGE
source_video_5optIMAGE
source_video_6optIMAGE
source_video_7optIMAGE
source_video_8optIMAGE
audio_1optAUDIO
audio_2optAUDIO
audio_3optAUDIO
audio_4optAUDIO
audio_5optAUDIO
audio_6optAUDIO
audio_7optAUDIO
audio_8optAUDIO

Outputs (27)

NameTypeDescription
timeline_plan_jsonSTRING
shot_plan_jsonSTRING
shot_promptSTRING
dialogue_textSTRING
voice_directionSTRING
shot_labelSTRING
shot_render_idSTRING
current_segmentINT
total_segmentsINT
shot_numberINT
total_scene_secondsFLOAT
shot_start_secondsFLOAT
shot_duration_secondsFLOAT
shot_total_framesINT
source_video_indexINT
source_start_frameINT
source_end_frameINT
source_frame_countINT
primary_reference_indexINT
secondary_reference_indexINT
audio_indexINT
audio_duration_secondsFLOAT
cut_modeSTRING
recommended_generation_modeSTRING
use_context_bridgeBOOLEAN
recommended_overlap_framesINT
reportSTRING