Reframe for a vertical or square platform
auto_reframePROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. THE tool for 'make it 9:16 / vertical / for TikTok'. It samples frames across the kept footage and MEASURES two things before writing the frame: where the subject is (faces found in the pixels; vision or a detail-energy estimate only when there is no face), and whether a crop is the right operation at all — how much of the picture's detail would survive the crop window. With mode='auto' (default) footage with a subject gets a crop aimed at it, and footage whose content runs to the edges (gameplay, screen recordings, wide scenes) is FITTED into the new frame over a blurred backdrop so nothing is cut off — cropping those is the 'it just truncated my video instead of adjusting it' complaint. Low-resolution footage a crop would enlarge past ~2.5x (480p/archival 4:3) is FITTED as a window instead, with the free headline band reported. A crop slides off a burned-in inset or border that would leave a thin sliver at its edge (an EDGE BAND note asks you to look when it cannot). FOLLOW (default on): inside each shot the crop follows the speaker's face, measured on the kept footage (4 fps) — it holds STILL while they sway and glides (eased, speed-limited, never a whip, never across a cut) only when they move far enough that a still crop would cut the head or lose the composition; a re-aim that can land on a jump cut happens on the cut. A speaker who stays put gets no motion; a shot with two or more people keeps its aim. follow=false keeps one aim per shot. A tight close-up whose speaker TURNS keeps the leading edge of the face (the nose side) clear of the frame edge — the re-aim happens when the face nears the edge, never on every sway; a turned head the detector loses is tracked through the turn. SCREEN INSETS: a burned-in screen or picture-in-picture box the crop would cut through is slid out of the crop when the speaker stays framed (SCREEN INSET CLEARED), else named with the calls that show it legibly (a speaker + screen stack per camera shot, or for a beat set_picture_card source='inset'). A crop that shows NO FACE for over a second while someone speaks is named with the fix. Pass mode explicitly to force one. Read what it reports and repeat THAT.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| ratio | Yes | ||
| follow | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |