Nodes/MKRShift_Nodes/Studio Contact Sheet
ComfyUI Node

Studio Contact Sheet

Every frame in the batch, labeled and laid out

By criskb·Created 7 months ago·Updated 6 months ago· 0
Studio Contact Sheet
  • images
  • image
  • contact_sheet_info
◄titleDaily Selects►
◄subtitleBatch review board►
◄themeCarbon►
◄badgeCONTACT SHEET►
◄columns4►
◄cell_width360►
◄gap_px24►
◄margin_px40►
◄header_px112►
◄footer_px56►
◄label_prefixSHOT►
◄start_index1►
◄show_ratiotrue►
◄show_resolutiontrue►
◄delivery_plan_json►
◄selection_json►

A batch of 40 renders is a wall of thumbnails until somebody labels them. MKRStudioContactSheet turns an IMAGE batch into a proper review board: a grid of cells, each with its index, aspect ratio, and resolution printed under it, all on a themed canvas with a header and footer. It's the "today's selects" sheet for people who review generations the way editors review dailies.

The mechanism is a simple, dependable layout: take the batch, arrange the images into columns worth of cells at a fixed cell_width, compute each cell's height from the image's own aspect ratio, and tile them top-to-bottom with gap_px spacing. Because cell height follows aspect ratio, mixed landscape/portrait batches still come out readable instead of letterboxed into a uniform grid.

The inputs that matter

  • images - the batch. Anything that outputs a multi-frame IMAGE works: a KSampler batch, a batch collage, an image sequence.
  • columns and cell_width - grid shape and cell size. 4 columns × 360px is a good default for review; more columns means smaller cells but more per page.
  • label_prefix and start_index - cell labels read "SHOT 1", "SHOT 2"... with the defaults. Keep the prefix stable and the numbering matches your shot list.
  • show_ratio / show_resolution - print "16:9 · 1024×576" under each cell. This is the quiet killer feature for delivery: the client can reference frames by number and you both know what you're looking at.
  • theme, title, subtitle, badge - the board identity; default badge is "CONTACT SHEET".
  • Optional selection_json - feed in a selection set's JSON and the sheet can reflect which frames got picked.

What comes out

image (the sheet) and contact_sheet_info (JSON describing every cell). The info string is the handoff - MKRStudioDeliveryPlan accepts it directly, so the delivery sheet can enumerate exactly what's on this board.

Installing it

Part of criskb/MKRShift_Nodes from Cris K B. ComfyUI Manager search "MKRShift_Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes

Restart. No pip requirements, no models.

The honest caveats

Big batches make big boards - 40 frames at 360px wide and 4 columns is a tall image, so either lower cell_width or accept a long scroll. And because it lays out by index, the sheet's story is only as good as your batch order: sort upstream before you sheet, or your "hero" lands in cell 27. It's the batch counterpart to MKRStudioCompareBoard's two-up; for a full batch review this is the one you want.

CategoryMKRShift Nodes/Studio/Boards

Inputs (17)

NameTypeDefaultDescription
imagesIMAGE—
titleSTRINGDaily Selects—
subtitleSTRINGBatch review board—
themeCOMBOCarbon4 options: Carbon, Paper, Signal, Blueprint
badgeSTRINGCONTACT SHEET—
columnsINT41–8—
cell_widthINT36080–2048—
gap_pxINT240–128—
margin_pxINT408–256—
header_pxINT11248–320—
footer_pxINT5624–160—
label_prefixSTRINGSHOT—
start_indexINT10–9999—
show_ratioBOOLEANtrue—
show_resolutionBOOLEANtrue—
delivery_plan_jsonoptSTRING—
selection_jsonoptSTRING—

Outputs (2)

NameTypeDescription
imageIMAGE—
contact_sheet_infoSTRING—