Contact Sheet
lab_contact_sheetBuild a contact sheet for a generated clip — N frames spread evenly over its runtime, tiled into ONE image — and show it. This is how a clip gets judged at all: MCP has no video content type, so without a sheet a clip is just a URL and a promise. It is also the fastest way to SEE camera drift: measured 2026-08-04, the wander in one clip was a PSNR number until frames sat side by side. The sheet is cached on the video row — a second call returns the same URL without re-rendering (pass force to redo it). Rendering downloads the clip and runs ffmpeg, so the first call takes a few seconds.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cols | No | Grid columns (default 3) | |
| rows | No | Grid rows (default 3). cols x rows = number of frames | |
| force | No | Re-render even if a sheet already exists | |
| width | No | Total sheet width in px (default 1280) | |
| preview | No | Attach the sheet itself, downscaled to 512px, instead of only its URL. Default true — showing it is the whole point; pass false to get just the URL. | |
| video_id | Yes | Generated video id (from lab_animate/lab_job_status) — positive integer as string |