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 5 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