IAMCCS Storyboard Caption Sheet
A finished-looking storyboard sheet with titles and per-panel captions
- images
- storyboard_sheet
Raw storyboard panels are useful to you, but they don't read as a storyboard until they have a title, captions under each panel, and a footer. IAMCCS_StoryboardCaptionSheet assembles exactly that: panels in, a publication-ready contact sheet out - title across the top, per-panel caption strips, footer, and a clean paper-and-ink color scheme. It's the "present it to the client" node of the pack's storyboard pipeline.
If you're producing storyboards as a deliverable (pitch decks, music video treatments, client reviews), this is where the output stops looking like generated images and starts looking like a document. It's also just a nicer way to review a whole sequence at a glance than scrolling a batch viewer.
How it works
You give it the panel images, the storyboard_json that holds the per-panel text, and the layout shape (columns × rows, defaults 3×3). It lays out a grid on a canvas with a title area (86px default), a caption_height strip under each panel, a footer area (120px), gaps and margins, and draws the captions pulled from the JSON. The look is fully tunable through color widgets: background (default #F3F2EE), paper (#FFFFFF), ink (#1A1A1A), muted_ink (#555555), and line_color (#C8C3B8) - a warm, understated editorial palette you can restyle to match a brand. fit (cover/contain) controls how each panel fills its cell, and title_override/footer_override replace the JSON-derived title and footer text.
The output is a single assembled IMAGE: storyboard_sheet.
Inputs that matter
- images - the cropped panel batch (from
StoryboardAutoCropGridor the crop-grid PRO). - storyboard_json - the captions/title/footer source.
- columns, rows, cell_width, image_height - grid geometry.
- The styling widgets above, plus font_size, title_size, caption_height, title_height, footer_height, gap, margin.
Installing
ComfyUI Manager → search "IAMCCS", or
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart. Pure Pillow drawing - needs no models, no fonts installed beyond what Pillow ships with, no pip deps.
Gotchas
Order matters twice: panels are placed in the order they arrive in the batch, and captions are matched to the JSON in order - so if your crop grid used a different panel_order than the JSON was written in, every caption lands on the wrong panel. And fit = cover center-crops each panel to fill its cell; if your panels are close to the target aspect this is invisible, but a very different aspect will crop content - switch to contain when the sheet must show the full frame. Caption text longer than the cell width is clipped rather than wrapped or shrunk, so keep captions short or bump font_size down.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| storyboard_json | STRING | — | |
| columns | INT | 31–8 | — |
| rows | INT | 31–8 | — |
| cell_width | INT | 640128–2048 | — |
| image_height | INT | 36096–2048 | — |
| title_overrideopt | STRING | — | |
| footer_overrideopt | STRING | — | |
| caption_heightopt | INT | 7224–256 | — |
| title_heightopt | INT | 860–256 | — |
| footer_heightopt | INT | 1200–256 | — |
| gapopt | INT | 40–48 | — |
| marginopt | INT | 160–96 | — |
| font_sizeopt | INT | 188–80 | — |
| title_sizeopt | INT | 4412–120 | — |
| backgroundopt | STRING | #F3F2EE | — |
| paperopt | STRING | #FFFFFF | — |
| inkopt | STRING | #1A1A1A | — |
| muted_inkopt | STRING | #555555 | — |
| line_coloropt | STRING | #C8C3B8 | — |
| fitopt | COMBO | cover | 2 options: cover, contain |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| storyboard_sheet | IMAGE | — |