Nodes/IAMCCS-nodes/IAMCCS Cine V2V Line Builder
ComfyUI Node

IAMCCS Cine V2V Line Builder

The shot-line node with source ranges bolted on

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS Cine V2V Line Builder
    • timeline_line
    • shot_prompt
    • source_range
    • reference_token
    • report
    duration_seconds4.00
    cut_modehard_cut
    source_video_index1
    source_range_modestart_plus_count
    source_start_frame0
    source_frame_count96
    source_end_frame96
    custom_source_range0+96
    primary_reference_index1
    reference_modesingle
    secondary_reference_index0
    audio_index1
    labelcamera_A_mara
    framingV2V close-up
    subjectMara
    action_promptspeaking, preserve the original head movement and natural eye line
    dialogue_textYou left the city without saying goodbye.
    voice_directioncontrolled hurt voice
    v2v_modev2v_source_plus_reference
    continuity_notekeep source performance, improve cinematic lighting, stable identity
    prompt_override
    extra_prompt

    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; use source_start_frame + source_frame_count), frame_range (source_start_framesource_end_frame), tail, or custom (a string like 0+96 in custom_source_range).
    • source_start_frame (default 0), source_frame_count (default 96), source_end_frame (default 96), custom_source_range (default 0+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, or loop_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.

    CategoryIAMCCS/Cine/04 V2V Timeline

    Inputs (22)

    NameTypeDefaultDescription
    duration_secondsFLOAT4.000.01–3600
    cut_modeCOMBOhard_cut4 options: hard_cut, continuity_cut, soft_cut, match_cut
    source_video_indexINT10–8
    source_range_modeCOMBOstart_plus_count5 options: all, start_plus_count, frame_range, tail, custom
    source_start_frameINT00–10000000
    source_frame_countINT961–10000000
    source_end_frameINT961–10000000
    custom_source_rangeSTRING0+96
    primary_reference_indexINT11–8
    reference_modeCOMBOsingle3 options: single, start_to_end, dual
    secondary_reference_indexINT00–8
    audio_indexINT10–8
    labelSTRINGcamera_A_mara
    framingCOMBOV2V close-up8 options: custom, V2V close-up, V2V medium close-up, V2V reverse angle, V2V over-the-shoulder, V2V wide shot, +2
    subjectSTRINGMara
    action_promptSTRINGspeaking, preserve the original head movement and natural eye line
    dialogue_textSTRINGYou left the city without saying goodbye.
    voice_directionSTRINGcontrolled hurt voice
    v2v_modeCOMBOv2v_source_plus_reference5 options: v2v_source_plus_reference, v2v_source_context, i2v_from_reference, two_segments_if_long, loop_if_long
    continuity_noteSTRINGkeep source performance, improve cinematic lighting, stable identity
    prompt_overrideoptSTRING
    extra_promptoptSTRING

    Outputs (5)

    NameTypeDescription
    timeline_lineSTRING
    shot_promptSTRING
    source_rangeSTRING
    reference_tokenSTRING
    reportSTRING