reframe_sheet
Review framing decisions by drawing each placement's window on its source frame, with split rows per crossed boundary and red rects. Use it to see what a crop leaves out, exposing misplacements that motion hides.
Instructions
Draw every placement's framing window on its own source frames.
A framing decision is unreviewable without this. The hand-framed teaser had 2 of its 15 windows wrong and neither was visible in motion — a badly-placed window reads as framing. Drawn on the whole source frame, what the window leaves out sits right beside it.
Every placement the render shows is walked window by window, the window in
force drawn in red and labelled with its rect. A row is a window shown,
not a placement: each placement is split at the boundaries it crosses,
so a window covering a small slice of a long placement still gets a row.
window on a row is the source address reframe --src-start takes;
windows is how many the whole placement crosses. Stills come back under
skipped — a card is re-authored, never cropped.
A tile is evidence about an instant, not an approval of the span. A
static rect over a moving subject has a best moment and a sample can land
on it; extremes draws where the subject is leftmost, median and
rightmost instead, worst first, with worst_offset on the row to sort by.
A page of rows comes back as an image, six windows by default, at a
width vision reads verbatim; row keeps its project-wide number on every
page. per_page: null is the whole project as a PNG path, for a person.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| out | No | Write the image to this path as well, replacing whatever file is there. Unset, it goes to the project's own sheet cache and only the bytes come back. | |
| page | No | Which page of rows to draw, from 1. Unset, the first. | |
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| moments | No | Fractions of each window to draw tiles at, e.g. `[0.1, 0.5, 0.9]`. A tile is evidence about one instant while a rect is a claim about a stretch, so where the subject moves these decide what the sheet can see. Refused alongside `extremes`. | |
| extremes | No | Draw the subject's own leftmost and rightmost moments, worst first, instead of fixed fractions — the rect does not move inside a stretch, so that is where a static window is worst. Off by default: it costs the face detector and about half a second a probe. Read `worst_offset` beside `multi_face`, never after it. | |
| per_page | No | Rows per page. `null` draws the whole project in one montage, which returns a path rather than readable bytes — for a person to open, not for an agent to read. |