IAMCCS Cine Reference Board
One text box, fifty reference frames, all pre-sized for the pipeline
- multi_output
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- image_11
- image_12
- image_13
- image_14
- image_15
- image_16
- image_17
- image_18
- image_19
- image_20
- image_21
- image_22
- image_23
- image_24
- image_25
- image_26
- image_27
- image_28
- image_29
- image_30
- image_31
- image_32
- image_33
- image_34
- image_35
- image_36
- image_37
- image_38
- image_39
- image_40
- image_41
- image_42
- image_43
- image_44
- image_45
- image_46
- image_47
- image_48
- image_49
- image_50
IAMCCS_CineReferenceBoard is the load-your-references step of the IAMCCS Cine pipeline: you paste a list of image paths into one multiline box, and out come up to 50 individually-named IMAGE outputs (image_1 through image_50) plus a batch multi_output. Every image is loaded, resized to your target width/height, snapped to a multiple of 32, and normalized - so the reference board the model sees is uniform regardless of what you dropped in.
Why a dedicated node for what sounds like "just load some images"? Because in this pack the reference board feeds the FLF engine and the ShotPlanner, and those need a predictable batch: a known count, a known resolution, and per-image slots (image_1, image_2, …) that map 1:1 to timeline reference indices. The CineInfoV2 / CineAllInOneFLFEngine side then talks about "ref 3" and it means this board's image_3. If the board feeds 5 images but your timeline references 8, you get an immediate, understandable mismatch - which is a lot easier to debug than a wall of silently-wrong frames.
How it works
image_paths takes one path per line. resize_method decides how non-matching images fit the target: crop (fill the frame, cut the overflow), pad, keep proportion, or stretch. interpolation picks the resampling filter (lanczos is the default and the right call for stills; nearest only if you're pixel-testing). multiple_of (default 32) snaps dimensions up to the video-friendly multiple the latent pipeline wants. img_compression (0–100) re-compresses on load - a debug/bandwidth knob; leave it at 0 unless you're deliberately testing quality loss.
Outputs: multi_output (the whole batch as one IMAGE tensor) plus image_1 through image_50 (each a single IMAGE). If you have fewer than 50 paths, the trailing outputs are simply empty - no error.
Installing it
Part of the IAMCCS-nodes pack. ComfyUI Manager → search IAMCCS, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI; it's under IAMCCS/Cine/01 Reference Board. No pip requirements, no model downloads. README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.
Where people get burned
- Path format: this reads filesystem paths, not ComfyUI's input-folder relative names. A path ComfyUI's own Load Image would accept ("myrefs/face.png") won't resolve here unless it's reachable from the working directory - use absolute paths or paths relative to where ComfyUI runs.
- The output-count confusion:
multi_outputis the batch you feed a board-style consumer;image_Nslots are for per-reference wiring. Mixing them up is the classic "my timeline references the wrong character" bug, and it's usually because someone wired a slot with the wrong index. resize_methodstretchon mixed-aspect inputs is a fast way to get everyone looking like a funhouse mirror.croporkeep proportionwith padding keeps faces sane - which matters when these frames become identity references for a character.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image_paths | STRING | — | |
| width | INT | 7680–8192 | — |
| height | INT | 4320–8192 | — |
| interpolation | COMBO | lanczos | 6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact |
| resize_method | COMBO | crop | 4 options: crop, pad, keep proportion, stretch |
| multiple_of | INT | 320–512 | — |
| img_compression | INT | 00–100 | — |
Outputs (51)
| Name | Type | Description |
|---|---|---|
| multi_output | IMAGE | — |
| image_1 | IMAGE | — |
| image_2 | IMAGE | — |
| image_3 | IMAGE | — |
| image_4 | IMAGE | — |
| image_5 | IMAGE | — |
| image_6 | IMAGE | — |
| image_7 | IMAGE | — |
| image_8 | IMAGE | — |
| image_9 | IMAGE | — |
| image_10 | IMAGE | — |
| image_11 | IMAGE | — |
| image_12 | IMAGE | — |
| image_13 | IMAGE | — |
| image_14 | IMAGE | — |
| image_15 | IMAGE | — |
| image_16 | IMAGE | — |
| image_17 | IMAGE | — |
| image_18 | IMAGE | — |
| image_19 | IMAGE | — |
| image_20 | IMAGE | — |
| image_21 | IMAGE | — |
| image_22 | IMAGE | — |
| image_23 | IMAGE | — |
| image_24 | IMAGE | — |
| image_25 | IMAGE | — |
| image_26 | IMAGE | — |
| image_27 | IMAGE | — |
| image_28 | IMAGE | — |
| image_29 | IMAGE | — |
| image_30 | IMAGE | — |
| image_31 | IMAGE | — |
| image_32 | IMAGE | — |
| image_33 | IMAGE | — |
| image_34 | IMAGE | — |
| image_35 | IMAGE | — |
| image_36 | IMAGE | — |
| image_37 | IMAGE | — |
| image_38 | IMAGE | — |
| image_39 | IMAGE | — |
| image_40 | IMAGE | — |
| image_41 | IMAGE | — |
| image_42 | IMAGE | — |
| image_43 | IMAGE | — |
| image_44 | IMAGE | — |
| image_45 | IMAGE | — |
| image_46 | IMAGE | — |
| image_47 | IMAGE | — |
| image_48 | IMAGE | — |
| image_49 | IMAGE | — |
| image_50 | IMAGE | — |