Storyboard · Frame Grid (Batch)
Render the whole storyboard in one Queue run
- prompt
- name
- aspect_ratio
- width
- height
- frame_count
FrameGrid is for planning one shot at a time. FrameGridBatch is the version that says "screw it, render them all." It takes the same shot list - name, prompt, aspect per frame - and instead of picking a single frame, it outputs every frame's data as parallel lists. One Queue press, every frame in the storyboard runs.
It's the batch sibling inside Storyboard Suite (Smyshnikof/comfyui-storyboard-suite), @itsmyshnikov's dependency-free pre-production pack. Same drag-sortable card grid editor, same 13 aspect presets, same zero dependencies. The difference is entirely in the outputs and the engine mechanics behind them.
How it works
Under the hood it's the OUTPUT_IS_LIST mechanic - the node declares its prompt, name, aspect_ratio, width, and height outputs as lists, and ComfyUI fans those lists out to any downstream node that accepts list inputs. Each frame gets its width/height computed the same way FrameGrid does: long edge = base_resolution, short edge proportional, both rounded down to a multiple of 8. You get one list per output, in the same order as your shots, and the engine iterates the whole chain once per frame.
There's no select here and no columns - the batch node has no "active frame" concept and no card-grid layout. It's all-or-nothing, which is exactly the point. frame_count is the one scalar output, a plain INT so you know how many shots you're running.
The inputs that matter
- frames_data - the shot list, same JSON shape as
FrameGrid. - base_resolution - the long edge in pixels (default 1024, range 512–2048).
- default_aspect - fallback aspect for frames that don't set their own.
The outputs that matter
- prompt, name, aspect_ratio, width, height - all lists, one entry per frame, in shot order.
- frame_count - scalar INT.
The pack's own contact-sheet example shows the intended shape: FrameGridBatch → sampler → StoryboardSheet → Save. Every frame renders, lands on a single labeled contact sheet, and you review the whole shoot in one image instead of ten SaveImage nodes.
Install
Identical to the rest of the pack - no dependencies, no models:
cd ComfyUI/custom_nodes
git clone https://github.com/Smyshnikof/comfyui-storyboard-suite
or ComfyUI Manager, search "comfyui-storyboard-suite", restart, right-click → Add Node → Storyboard → Frame Grid (Batch).
Gotchas
- List outputs only work when the downstream nodes accept lists. A plain
CLIP Text Encodeisn't list-aware, so you can't just slam this into a normal chain - you need nodes that declare list inputs (the sampler/VAEDecode route in the example workflow qualifies). - No per-frame preview: since there's no
select, you can't quietly eyeball one shot before committing the whole batch. UseFrameGridfor that,FrameGridBatchfor the full run. - An empty
frames_datareturns empty lists andframe_count0 - nothing crashes, but nothing renders either. Check the board before you Queue. - Brand-new, small pack: if the card-grid UI doesn't show after install, hard-refresh the browser; the raw JSON widget underneath still works.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| frames_data | STRING | [ { "id": "frame-1", "name": "opening", "prompt": "wide establishing shot, city skyline at dawn", "aspect": "16:9" }, { "id": "frame-2", "name": "hero", "prompt": "medium shot, protagonist walking through crowd", "aspect": "16:9" }, { "id": "frame-3", "name": "detail", "prompt": "close-up on hands holding a letter", "aspect": "9:16" } ] | — |
| base_resolution | INT | 1024512–2048 | — |
| default_aspect | COMBO | 16:9 | 13 options: 21:9, 16:9, 16:10, 3:2, 4:3, 5:4, +7 |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| name | STRING | — |
| aspect_ratio | STRING | — |
| width | INT | — |
| height | INT | — |
| frame_count | INT | — |