---
title: Reframing video for any aspect ratio — Ray3.2 | Runware Docs
url: https://runware.ai/docs/models/luma-ray3-2/guides/reframing-video
description: "How to reframe footage with Luma Ray 3.2: convert a clip to a new aspect ratio or a larger canvas while the model extends the scene, using inputs.video and sourcePosition."
---
### [Introduction](https://runware.ai/docs/models/luma-ray3-2/guides/reframing-video#introduction)

Reframing takes a finished clip and places it on a **new canvas**, then extends the scene to fill whatever space the original didn't cover. It's how one horizontal master becomes a vertical cut for social or a square cut for a feed, without cropping away the subject, because Ray 3.2 **generates the new edges** rather than trimming the old ones.

[Watch video](https://runware.ai/docs/assets/source-wide.C_gAxOiO.mp4)

*Source (16:9)*

[Watch video](https://runware.ai/docs/assets/output-vertical.hj3H2FSs.mp4)

*Reframed to 9:16*

This is a different operation from [editing](https://runware.ai/docs/models/luma-ray3-2/guides/editing-video) . Editing reworks the look and holds the source aspect ratio. Reframing keeps the look and changes the canvas. This guide covers the reframe request and `settings.sourcePosition` for placing the source inside a larger frame.

### [The request](https://runware.ai/docs/models/luma-ray3-2/guides/reframing-video#the-request)

A reframe is a video request with the clip in `inputs.video` and a new `width` and `height` **at a different aspect ratio**. The prompt describes what should fill the extended area, so the model continues the scene instead of guessing.

**Request**:

```json
[
  {
    "taskType": "videoInference",
    "taskUUID": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
    "model": "luma:ray@3.2",
    "positivePrompt": "Extend the scene into a tall vertical frame, continuing the sky above and the sea below the lighthouse naturally, matching the source light and motion.",
    "width": 720,
    "height": 1280,
    "inputs": {
      "video": "https://example.com/lighthouse.mp4"
    }
  }
]
```

**Response**:

```json
{
  "data": [
    {
      "taskType": "videoInference",
      "taskUUID": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
      "videoUUID": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
      "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e.mp4"
    }
  ]
}
```

### [Repurposing across aspect ratios](https://runware.ai/docs/models/luma-ray3-2/guides/reframing-video#repurposing-across-aspect-ratios)

The same 16:9 source reframes to whatever target you need. To a **9:16** canvas the model paints sky above and sea below. To a **1:1** canvas it continues the scene out to the sides. The lighthouse and its motion stay put while the surroundings grow to fit.

[Watch video](https://runware.ai/docs/assets/output-vertical.hj3H2FSs.mp4)

*9:16 (720 × 1280)*

[Watch video](https://runware.ai/docs/assets/output-square.ZZDC6PKA.mp4)

*1:1 (960 × 960)*

Width and height come from Ray's supported pairs, the same set the [generation guide](https://runware.ai/docs/models/luma-ray3-2/guides/generating-video) uses, so a reframe lands on a real output size at 360p through 1080p.

### [Positioning the source](https://runware.ai/docs/models/luma-ray3-2/guides/reframing-video#positioning-the-source)

By default the source sits centered in the new canvas. `settings.sourcePosition` overrides that, placing the source at an exact spot and size given as **fractions of the canvas**. Shrink the source below full size and the model extends the scene all the way around it, which turns reframing into frame extension.

[Watch video](https://runware.ai/docs/assets/output-extend.B3NrNusy.mp4)

*Source placed at 60% on a wider canvas, surroundings extended*

The four fields are `x` and `y` for the source's position and `width` and `height` for its size, each a fraction of the canvas. The values below put the source in the middle 60% and let the model fill the border all around.

```json
"settings": {
  "sourcePosition": { "x": 0.2, "y": 0.2, "width": 0.6, "height": 0.6 }
}
```

Shifting `x` and `y` biases where the new space opens. Push the source toward one edge and the model fills the opposite side. Both clips below use the same lighthouse and the same 1920 × 1080 canvas, changing only the source's position:

[Watch video](https://runware.ai/docs/assets/output-extend-left.Bwu_Kn-0.mp4)

*More sea on the left (x 0.4)*

[Watch video](https://runware.ai/docs/assets/output-extend-top.DhrFT16K.mp4)

*More sky on top (y 0.4)*

Raising `x` to `0.4` pushes the source flush against the right edge, so the new canvas opens on the left and the prompt's extra sea fills it. Raising `y` to `0.4` pushes it to the bottom, opening the top for more sky.

> [!NOTE]
> The prompt matters as much in reframing as the canvas. Describe what continues into the new area, like "sky above and sea below", so the extension matches the source instead of drifting into unrelated content.

### [Tips](https://runware.ai/docs/models/luma-ray3-2/guides/reframing-video#tips)

1. **Name what fills the new space.** A reframe prompt should describe the surroundings to extend, so the model continues the scene rather than inventing something unrelated.
    
2. **Keep the subject off the edges you're extending.** Reframing has the most room to work when the subject sits clear of the sides being grown.
    
3. **Reach for `sourcePosition` to extend, not just convert.** Shrinking the source on a same-aspect canvas turns reframing into frame extension, adding scenery around the original.
    
4. **Reframe as a final step.** Lock the look with [editing](https://runware.ai/docs/models/luma-ray3-2/guides/editing-video) first, then reframe the result, so you're extending footage that already looks right.