Nodes/IAMCCS-nodes/IAMCCS Storyboard Caption Sheet
ComfyUI Node

IAMCCS Storyboard Caption Sheet

A finished-looking storyboard sheet with titles and per-panel captions

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS Storyboard Caption Sheet
  • images
  • storyboard_sheet
storyboard_json
columns3
rows3
cell_width640
image_height360
title_override
footer_override
caption_height72
title_height86
footer_height120
gap4
margin16
font_size18
title_size44
background#F3F2EE
paper#FFFFFF
ink#1A1A1A
muted_ink#555555
line_color#C8C3B8
fitcover

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 StoryboardAutoCropGrid or 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.

CategoryIAMCCS/Cine/Storyboard

Inputs (21)

NameTypeDefaultDescription
imagesIMAGE
storyboard_jsonSTRING
columnsINT31–8
rowsINT31–8
cell_widthINT640128–2048
image_heightINT36096–2048
title_overrideoptSTRING
footer_overrideoptSTRING
caption_heightoptINT7224–256
title_heightoptINT860–256
footer_heightoptINT1200–256
gapoptINT40–48
marginoptINT160–96
font_sizeoptINT188–80
title_sizeoptINT4412–120
backgroundoptSTRING#F3F2EE
paperoptSTRING#FFFFFF
inkoptSTRING#1A1A1A
muted_inkoptSTRING#555555
line_coloroptSTRING#C8C3B8
fitoptCOMBOcover2 options: cover, contain

Outputs (1)

NameTypeDescription
storyboard_sheetIMAGE