IAMCCS Cine V2V Asset Selector
Route the right source video and references for each shot
- source_video_1
- source_video_2
- source_video_3
- source_video_4
- source_video_5
- source_video_6
- source_video_7
- source_video_8
- reference_1
- reference_2
- reference_3
- reference_4
- reference_5
- reference_6
- reference_7
- reference_8
- source_video
- primary_reference
- secondary_reference
- source_video_frames
- report
Video-to-video (V2V) work has a plumbing problem: a scene with several shots means several source clips and several reference stills, and every shot needs the right ones routed to it. Doing that with a pile of switches and manual rewiring is how you end up with a graph you're scared to touch. V2V Asset Selector is the pack's router for that mess: you keep up to eight source videos and up to eight references wired in once, and the node picks which ones each shot needs based on three index numbers.
How it works. source_video_index picks which of the connected source_video_1 through source_video_8 is the shot's driving footage. primary_reference_index and secondary_reference_index pick the references (from reference_1 through reference_8) that anchor identity/composition. If a selected input isn't connected, the fallback mode decides what happens: first_connected (default) silently grabs the first connected input instead, primary_reference_as_video substitutes the primary reference for the missing source video, and error raises so you notice the gap. The default behavior is the friendly one; error is the "tell me I misconfigured this" option.
The outputs. source_video (the selected driving footage as an IMAGE batch), primary_reference and secondary_reference (the selected stills), source_video_frames (INT - how many frames the source clip has, useful for range math downstream), and report (what got selected and any fallbacks applied). Wire source_video into your V2V input, the references into identity/reference conditioning.
Where it fits. This is a pure routing node - no pixels are modified, nothing is generated. It lives at the front of a V2V timeline: asset selection happens before the line builder decides the source range and the sampler does the work. If you're using the pack's V2V shotboard system, this is the "which footage am I even working on?" step.
Install. Pack-wide: ComfyUI Manager (search "IAMCCS"), or git clone https://github.com/IAMCCS/IAMCCS-nodes into custom_nodes, restart. No models, no heavy deps - it just passes IMAGE batches through.
Gotchas. Index semantics matter: primary_reference_index is strictly 1-based (min 1), while secondary_reference_index is 0-based (0 means "no secondary"). source_video_index runs 0–8 with a default of 1 - 0 is the "none/auto" slot. Mixing those up is the classic first-run mistake - a secondary of 0 is intentional, a primary of 0 would be a validation error. And remember first_connected fallback is silent: if the index you meant to use isn't wired, the node quietly grabs something else, so check report when output looks like it came from the wrong clip.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| source_video_index | INT | 10–8 | — |
| primary_reference_index | INT | 11–8 | — |
| secondary_reference_index | INT | 00–8 | — |
| fallback | COMBO | first_connected | 3 options: first_connected, primary_reference_as_video, error |
| source_video_1opt | IMAGE | — | |
| source_video_2opt | IMAGE | — | |
| source_video_3opt | IMAGE | — | |
| source_video_4opt | IMAGE | — | |
| source_video_5opt | IMAGE | — | |
| source_video_6opt | IMAGE | — | |
| source_video_7opt | IMAGE | — | |
| source_video_8opt | IMAGE | — | |
| reference_1opt | IMAGE | — | |
| reference_2opt | IMAGE | — | |
| reference_3opt | IMAGE | — | |
| reference_4opt | IMAGE | — | |
| reference_5opt | IMAGE | — | |
| reference_6opt | IMAGE | — | |
| reference_7opt | IMAGE | — | |
| reference_8opt | IMAGE | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| source_video | IMAGE | — |
| primary_reference | IMAGE | — |
| secondary_reference | IMAGE | — |
| source_video_frames | INT | — |
| report | STRING | — |