Storyboard · Sheet
Turn your generated shots into one labeled contact sheet
- images
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- sheet
You've rendered a storyboard's worth of frames and now you need to actually look at them as a sequence - a contact sheet, labeled, one glance. That's StoryboardSheet. It takes images that already exist in your pipeline - a batch out of the sampler, or a handful of Load Image nodes - and stitches them into a single labeled grid you can save or preview.
It's the "review the shoot" half of Storyboard Suite (Smyshnikof/comfyui-storyboard-suite), @itsmyshnikov's dependency-free planning pack. Everything here runs on plain Python + PIL, no GPU, no model. The sheet builder is genuinely the workhorse of the whole pack - it's the same code the Cells node reuses.
How it works
Feed it images one of two ways: the images input takes a whole IMAGE batch (the natural output of a sampler → VAEDecode chain), or you use the nine optional slots image_1 … image_9 - connect up to nine Load Image nodes directly, no Batch Images node required. Labels come from the multiline labels input, one line per frame.
For each image the node letterboxes it (fit, not crop - no part of the frame is lost) into a uniform cell, draws a label bar underneath, and tiles the cells into a grid on the background color. It returns a single IMAGE and, because it's an output node, saves a PNG preview to ComfyUI/output/storyboard_suite/ and shows it in the node itself.
The inputs that matter
- images / image_1 … image_9 - where the pixels come from. Both can be connected at once (batch first, then slots).
- labels - multiline, one label per image, in order.
- columns - grid width, 1–8 (default 3).
- cell_gap - spacing between cells in pixels (default 8).
- show_labels - master switch for the label bars (on by default).
- label_font_size, label_bar_height, label_color, label_bg_color - label styling. Set label_bar_height to 0 (the default) and it auto-sizes to the font plus padding. Color fields take hex like
#e8e8f0. - bg_color - the sheet background (default
#0e0e12, a dark review-board look).
A nice touch worth calling out: the pack ships DejaVuSans.ttf, so Cyrillic labels render correctly out of the box instead of turning into boxes.
The output that matters
sheet - a single IMAGE. Wire it to SaveImage or PreviewImage and you're done. It's the natural end of the batch example workflow: FrameGridBatch → sampler → StoryboardSheet → Save.
Install
The whole pack is one dependency-free clone:
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 → Sheet.
Gotchas
- Labels apply per image in order: extras are dropped, missing ones become blank bars. Keep
labelsline count in sync with your frame count. image_1…9slots are optional - an unwired slot is simply skipped, so you can build a 4-shot sheet without creating empty cells.- Don't reach for this node when your source images are files rather than pipeline output - that's what
StoryboardCellsis for (loads files straight into the node). The README is explicit: Sheet is for images from the pipeline, Cells is for files. - It's a young, small pack. If the in-node preview doesn't appear, check
output/storyboard_suite/for the saved PNG - the data path works even when the frontend preview hiccups.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| columns | INT | 31–8 | — |
| cell_gap | INT | 80–64 | — |
| bg_color | STRING | #0e0e12 | — |
| show_labels | BOOLEAN | true | — |
| label_font_size | INT | 1810–48 | — |
| label_bar_height | INT | 00–96 | — |
| label_color | STRING | #e8e8f0 | — |
| label_bg_color | STRING | #1a1a22 | — |
| imagesopt | IMAGE | — | |
| labelsopt | STRING | — | |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sheet | IMAGE | — |