# Luma Ray 3.2 reframe agent

Needs prompt, video url and aspect ratio. Served by fal.ai.

Luma Ray 3.2 Reframe, served by fal.ai. The OpenAPI schema for the luma/agent/ray/v3.2/reframe queue. Price: Reframe is billed per started source second: $0.06/s at 540p, $0.12/s at 720p and $0.36/s at 1080p. A 5s source will cost $0.30 for 540p, $0.60 for 720p and $1.80 for 1080p. A 10s source costs $0.60 at 540p, $1.20 at 720p and $3.60 at 1080p. For $1 you can reframe approximately 3 five-second clips (540p). Actual-cost billing: the initial reservation is an estimate, not a maximum. 5 started source seconds at 1080p ($0.36/s); source duration, not requested output duration, determines actual cost. The unique Billing Events receipt for this exact endpoint and request_id is the final USD charge, including usage above the estimate. Missing receipts retain the reservation for reconciliation; no guessed final fee. Asynchronous: returns a request_id; poll fal/status and fetch fal/result with model "luma/agent" and that request_id. Billed once, when the result is ready; a generation that fails is refunded.

- Tool ID: `fal/luma-agent-ray-v3-2-reframe`
- Name in the catalog: Luma Ray 3.2 Reframe
- Provider: [fal.ai](/providers/fal.md)
- Capability: [AI video generation](/tools/video-generation.md)
- Price: usage based, the maximum is shown before a run
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

Billed at the exact provider cost, without a per-call cap. The initial reservation is an estimate; additional usage is debited and unused funds are refunded.


```json
{
  "model": "reported",
  "costPath": "cost_usd",
  "requireCost": true,
  "costMode": "actual",
  "reservationBasis": "5 started source seconds at 1080p ($0.36/s); source duration, not requested output duration, determines actual cost.",
  "maxUsdDefault": 1.8,
  "maxUsdCap": 1.8
}
```

Pricing source: [https://fal.ai/models/luma/agent/ray/v3.2/reframe](https://fal.ai/models/luma/agent/ray/v3.2/reframe). Reframe is billed per started source second: $0.06/s at 540p, $0.12/s at 720p and $0.36/s at 1080p. A 5s source will cost $0.30 for 540p, $0.60 for 720p and $1.80 for 1080p. A 10s source costs $0.60 at 540p, $1.20 at 720p and $3.60 at 1080p. For $1 you can reframe approximately 3 five-second clips (540p). Actual-cost billing: the initial reservation is an estimate, not a maximum. 5 started source seconds at 1080p ($0.36/s); source duration, not requested output duration, determines actual cost. The unique Billing Events receipt for this exact endpoint and request_id is the final USD charge, including usage above the estimate. Missing receipts retain the reservation for reconciliation; no guessed final fee..

Price verification date: 2026-10-07.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "source_position": {
      "anyOf": [
        {
          "x-fal-order-properties": [
            "x_norm",
            "y_norm",
            "w_norm",
            "h_norm"
          ],
          "required": [
            "x_norm",
            "y_norm",
            "w_norm",
            "h_norm"
          ],
          "title": "RayReframeSourcePosition",
          "properties": {
            "h_norm": {
              "exclusiveMinimum": 0,
              "description": "Height of the source rectangle as a fraction of output height.",
              "title": "H Norm",
              "maximum": 2,
              "type": "number"
            },
            "x_norm": {
              "description": "Left edge of the source rectangle as a fraction of output width.",
              "title": "X Norm",
              "minimum": -2,
              "maximum": 2,
              "type": "number"
            },
            "y_norm": {
              "description": "Top edge of the source rectangle as a fraction of output height.",
              "title": "Y Norm",
              "minimum": -2,
              "maximum": 2,
              "type": "number"
            },
            "w_norm": {
              "exclusiveMinimum": 0,
              "description": "Width of the source rectangle as a fraction of output width.",
              "title": "W Norm",
              "maximum": 2,
              "type": "number"
            }
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional normalized source rectangle controlling where the source video sits in the output canvas."
    },
    "resolution": {
      "default": "540p",
      "description": "Resolution of the reframed video. Higher resolutions cost more.",
      "enum": [
        "540p",
        "720p",
        "1080p"
      ],
      "title": "Resolution",
      "type": "string"
    },
    "duration": {
      "anyOf": [
        {
          "enum": [
            "5s",
            "10s"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Duration of the reframed video. Defaults to matching the source video's duration; set explicitly to 5s or 10s to override.",
      "title": "Duration"
    },
    "prompt": {
      "minLength": 1,
      "title": "Prompt",
      "maxLength": 6000,
      "description": "Text prompt describing the content to paint into the newly exposed canvas area when reframing to the target aspect ratio.",
      "type": "string"
    },
    "aspect_ratio": {
      "enum": [
        "3:4",
        "4:3",
        "1:1",
        "9:16",
        "16:9",
        "21:9"
      ],
      "title": "Aspect Ratio",
      "description": "Target aspect ratio for the reframed video.",
      "type": "string"
    },
    "video_url": {
      "minLength": 1,
      "title": "Video Url",
      "description": "URL of the source video to reframe (must be 10 seconds or less).",
      "type": "string"
    }
  },
  "required": [
    "prompt",
    "video_url",
    "aspect_ratio"
  ],
  "additionalProperties": false
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "fal/luma-agent-ray-v3-2-reframe",
  "input": {
    "prompt": "Extend the scene into cinematic widescreen with matching lighting and background detail.",
    "video_url": "https://storage.googleapis.com/falserverless/example_inputs/birefnet-video-input.mp4",
    "aspect_ratio": "21:9"
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

This tool uses deferred settlement. Follow its returned task/run instructions; preserve the existing reservation until the result is reconciled.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://fal.ai/models/luma/agent/ray/v3.2/reframe)

[REST inspection](https://api.agentik.cc/v1/tools/fal/luma-agent-ray-v3-2-reframe) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/fal/luma-agent-ray-v3-2-reframe) · [Agent index](/llms.txt)
