IAMCCS Cine V2V Line Builder
The shot-line node with source ranges bolted on
- timeline_line
- shot_prompt
- source_range
- reference_token
- report
If Shot Line Builder is the "write one shot" node for generated scenes, V2V Line Builder is the same idea for footage you already have. It composes one shot's direction - framing, subject, action, dialogue, camera - and decides which slice of the source video that shot reuses. That second part is what makes it a V2V node: you're not just describing a shot, you're describing which frames of existing footage to transform.
How it works. The shot-composition half is identical in spirit to Shot Line Builder (framing, subject, action_prompt, dialogue_text, voice_direction, cut_mode, reference indices, continuity_note, prompt_override/extra_prompt). The addition is the source-range half, which picks the footage window:
source_video_index- which of up to 8 source videos this shot uses.source_range_mode-all,start_plus_count(default; usesource_start_frame+source_frame_count),frame_range(source_start_frame→source_end_frame),tail, orcustom(a string like0+96incustom_source_range).source_start_frame(default 0),source_frame_count(default 96),source_end_frame(default 96),custom_source_range(default0+96) - the numbers the modes above consume.audio_index- which audio line the shot is synced to.v2v_mode- the strategy:v2v_source_plus_reference,v2v_source_context,i2v_from_reference,two_segments_if_long, orloop_if_long. The last two are the "what do we do if the shot is longer than the source window" escape hatches: split it into two segments or loop the footage.
The outputs. timeline_line (the machine-readable V2V timeline entry), shot_prompt (the composed human-readable prompt), source_range (STRING - the resolved footage window, e.g. 0+96), reference_token (which reference to use), and report. The source_range output is the one to check when the shot comes back using the wrong part of the footage.
Where it fits. In the V2V timeline flow, after asset selection and before the director/sampler. It produces the per-shot line that the pack's V2V director consumes - same role Shot Line Builder plays in the generated-multigen flow, with source-range logic added.
Install. Pack-wide: ComfyUI Manager (search "IAMCCS"), or git clone https://github.com/IAMCCS/IAMCCS-nodes into custom_nodes, restart. Text/math only - no models, no VRAM.
Gotchas. Defaults will bite you if you forget them: source_range_mode defaults to start_plus_count, so a shot built without touching the range inputs silently reuses frames 0–96 of the selected source. And 96 frames at 24fps is 4 seconds - matching the 4-second default duration_seconds, which is deliberate, but change both together if you change either. The v2v_mode options like two_segments_if_long and loop_if_long only kick in when the shot outlasts the source window; if you're getting odd repetitions, check which mode is active.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| duration_seconds | FLOAT | 4.000.01–3600 | — |
| cut_mode | COMBO | hard_cut | 4 options: hard_cut, continuity_cut, soft_cut, match_cut |
| source_video_index | INT | 10–8 | — |
| source_range_mode | COMBO | start_plus_count | 5 options: all, start_plus_count, frame_range, tail, custom |
| source_start_frame | INT | 00–10000000 | — |
| source_frame_count | INT | 961–10000000 | — |
| source_end_frame | INT | 961–10000000 | — |
| custom_source_range | STRING | 0+96 | — |
| primary_reference_index | INT | 11–8 | — |
| reference_mode | COMBO | single | 3 options: single, start_to_end, dual |
| secondary_reference_index | INT | 00–8 | — |
| audio_index | INT | 10–8 | — |
| label | STRING | camera_A_mara | — |
| framing | COMBO | V2V close-up | 8 options: custom, V2V close-up, V2V medium close-up, V2V reverse angle, V2V over-the-shoulder, V2V wide shot, +2 |
| subject | STRING | Mara | — |
| action_prompt | STRING | speaking, preserve the original head movement and natural eye line | — |
| dialogue_text | STRING | You left the city without saying goodbye. | — |
| voice_direction | STRING | controlled hurt voice | — |
| v2v_mode | COMBO | v2v_source_plus_reference | 5 options: v2v_source_plus_reference, v2v_source_context, i2v_from_reference, two_segments_if_long, loop_if_long |
| continuity_note | STRING | keep source performance, improve cinematic lighting, stable identity | — |
| prompt_overrideopt | STRING | — | |
| extra_promptopt | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| timeline_line | STRING | — |
| shot_prompt | STRING | — |
| source_range | STRING | — |
| reference_token | STRING | — |
| report | STRING | — |