IAMCCS WAN Shotboard Planner PURE
Plan a whole Wan video in one node, then let the loop chew through it
- cine_linx
If you've ever built one of those giant Wan 2.2 I2V chains and then copied it eleven times for a multi-scene video, this node is aimed squarely at you. IAMCCS WAN Shotboard Planner PURE is the front end of IAMCCS's "shotboard" system: instead of hand-placing every shot in the graph, you describe the whole board once - a list of images, a global prompt, a duration - and it bakes the entire plan into a single bundle the loop nodes can iterate over.
What it actually does
The node takes your shot list and turns it into a machine-readable plan. You feed it:
- image_paths - one image path per line, your reference frames in order.
- global_prompt - the prompt that applies to the whole board. Per-shot prompts can ride in via the optional timeline_data JSON (it also accepts its own
image_pathsfield, which wins if present). - duration_seconds and frame_rate - the timeline math. The plan splits your board into FLF chunks (start image → end image pairs) sized to the duration, so a 10-second board at 16fps becomes chunks whose frame counts add up.
- guide_policy -
every_checked_row(default),first_last_only, ornone. This decides which images become conditioning guides rather than just start/end anchors.first_last_onlyis the sane setting when you only care about the first and last frame;every_checked_rowpulls more of your reference stills into the conditioning. - image_width / image_height / image_resize_method / image_multiple_of - the images get normalized to a consistent canvas (832×480 by default) so every chunk runs at the same resolution. Wan wants multiples of 16; the default
multiple_ofis 16. - promptrelay_epsilon (0.12) - tuning for the prompt-relay chunking that splits a long prompt across segments. Defaults are fine until you're debugging why a prompt got mis-routed.
The one output is cine_linx, an IAMCCS_WAN_SHOTBOARD bundle containing the segments, FLF pairs, and prompt-relay chunks. It's not a video and not a latent - it's a plan. You'll never decode it directly; you hand it to IAMCCS_WanShotboardLoopInfo to read its numbers, or straight to IAMCCS_WanShotboardLoopChunkSelect to pull one chunk at a time inside a loop.
Where it sits in the wider workflow
This is the "PURE" flavor of IAMCCS's shotboard planning, meaning it skips the heavy cine-vision stuff and just does plan math - no model downloads, no CLIP, no extra dependencies. The flow looks like: Planner PURE → Loop Info → Loop Chunk Select → your motion/FLF node (WanImageMotionPro) → sampler → feed latents back as prev_samples for the next iteration. Planner PURE is the head of that chain and the only node where you touch the shot list.
Installing it
This ships in IAMCCS-nodes, the one-man pack by CCS (Carmine Cristallo Scalzi). It's on ComfyUI Manager - search for "IAMCCS" - or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Then restart ComfyUI. The README wants ComfyUI ≥ 0.3.0, Python ≥ 3.12, and torch ≥ 2.8. There's no requirements.txt and no model files to fetch for this node - it's pure planning logic. One real gotcha: this author ships updates constantly, and old workflow JSONs can reference renamed nodes. If a saved workflow won't load, update the pack first; that fixes the majority of "node not found" moments.
Common issues
The most common failure is a board with fewer than two usable image slots - the loop nodes downstream raise "no active FLF chunks" because you can't build a start→end pair from one image. Add at least two frames. And if chunks come out the wrong length, check duration_seconds against frame_rate before you go chasing promptrelay_epsilon; the math is boring and it's usually your numbers that are wrong, not the node.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| global_prompt | STRING | — | |
| timeline_data | STRING | — | |
| duration_seconds | FLOAT | 5.00000.0625–600 | — |
| frame_rate | INT | 161–240 | — |
| guide_policy | COMBO | every_checked_row | 3 options: every_checked_row, first_last_only, none |
| min_guide_gap_seconds | FLOAT | 0.00–60 | — |
| max_guides | INT | 500–200 | — |
| default_force | FLOAT | 1.001–2 | — |
| promptrelay_epsilon | FLOAT | 0.120–2 | — |
| wan_frame_round_mode | COMBO | none | 4 options: none, floor, ceil, nearest |
| image_paths | STRING | — | |
| image_width | INT | 83216–8192 | — |
| image_height | INT | 48016–8192 | — |
| image_resize_method | COMBO | crop | 4 options: crop, pad, stretch, none |
| image_multiple_of | INT | 161–128 | — |
| img_compression | INT | 00–100 | — |
| debug_verbose | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_WAN_SHOTBOARD | — |