Reframe video
Take a finished clip and place it on a new canvas at a different aspect ratio, then let the model extend the scene to fill the space the original didn't cover. One horizontal master becomes a vertical cut for social or a square cut for a feed, without cropping away the subject, because the model generates the new edges. This is outpaint-style edge generation, distinct from edit-video (which reworks the look and holds the source aspect ratio) and from a plain crop (which throws pixels away).
Inputs to collect
- The source video (URL or upload). This is the clip being reframed.
- The target aspect ratio / canvas (e.g. 16:9 → 9:16, or 1:1). This sets the new
widthandheight. - What fills the new space. A short description of the surroundings to extend ("sky above and sea below", "more street to the left"). The prompt drives the extension.
- Optional: where the source sits in the new frame, if not centered (bias the new space toward one edge).
- Optional: target resolution tier (360p through 1080p).
Models
- Luma Ray 3.2 (
luma:ray@3.2) - the model for this outcome. It supportsinputs.videowith a new canvas at a different aspect ratio andsettings.sourcePositionfor placing the source. Confirm it isliveand inspect its schema via therunware-models+runware-runskills before calling. Never hardcode a stale choice. - No general fallback for reframing today. If reframing is unavailable, the alternative is a crop (loses the subject) or frame extension on a same-aspect canvas (see Technique).
Workflow
- Resolve the model schema (
runware-run) and confirminputs.video, the supportedwidth/heightpairs, and thesettings.sourcePositionshape. - Upload or pass the source clip URL into
inputs.video. - Run
videoInferenceasynchronously: the call returns ataskUUID, then pollgetResponseuntil terminal. Reframing is a video job, never block a sync call on it. - Set
widthandheightto a supported pair at the target aspect ratio (different from the source). - Write a prompt that names what continues into the new area so the model extends the scene instead of inventing unrelated content.
- Read the result from
videoURL. Review the extended edges, then retry with a clearer prompt or a differentsourcePositionif the extension drifts.
Technique
- Name what fills the new space. A reframe prompt describes the surroundings to extend ("continuing the sky above and the sea below the lighthouse, matching the source light and motion"), so the model continues the scene rather than guessing. The prompt matters as much as the canvas.
- Pick the new canvas from supported pairs.
width/heightmust be a real Ray 3.2 output size (the same set generation uses), landing at 360p through 1080p. Choose the pair whose ratio matches the target (e.g. 720 × 1280 for 9:16, 960 × 960 for 1:1). - Keep the subject off the edges you're growing. Reframing has the most room to work when the subject sits clear of the sides being extended.
- Position the source to bias where space opens. By default the source centers in the new canvas.
settings.sourcePositionoverrides that withx,y,width,heightas fractions of the canvas. Push the source toward one edge and the model fills the opposite side (raisexto pull it right so the new sea opens on the left, raiseyto pull it down so more sky opens on top). - Shrink the source to extend, not just convert. Set
sourcePositionwidth/height below1.0(e.g. the middle 60%) and the model extends the scene all the way around the original. That turns reframing into frame extension on any canvas, including a same-aspect one. - Reframe as a final step. Lock the look first with
edit-video, then reframe the result, so you extend footage that already looks right.
Parameters that matter
inputs.video- the source clip (URL or base64). Required.width/height- the new canvas. Must be a supported pair and should differ in aspect ratio from the source. Output tiers run 360p through 1080p.positivePrompt- describes what continues into the extended area. This steers the edge generation.settings.sourcePosition-{ x, y, width, height }, each a fraction of the canvas, all four required when used.x/yplace the source,width/heightsize it. Below1.0size means the model fills the border around the source.- Reframe runs as standard dynamic range only and bills per second. Confirm pricing via
runware-modelsor a dry-run (runware-run). - Confirm exact field names and the live supported pairs against the schema (
runware-run). Never guess.
Quality bar
- The output is at the target aspect ratio and the subject is fully kept, not cropped.
- The extended edges continue the source scene (matching light, motion, and content), not unrelated invented material.
- Motion in the original region stays stable across the reframe.
- If the extension drifts, retry with a prompt that names the surroundings more precisely or a
sourcePositionthat opens space where you want it.
Related skills
runware-run, runware-models, runware-prompting; edit-video (transform the look at the source aspect ratio, the sibling operation), and lock the look there before reframing as a final step.
