# MiniMax H3 Max camera controls

Needs image url and prompt expansion mode. Served by fal.ai.

H3 Max Camera Controls, served by fal.ai. The OpenAPI schema for the minimax/h3-max/camera-controls queue. Price: Video costs $0.03 per second at 480p, $0.048 per second at 768p, and $0.096 per second at 1080p. Note: these are promotional rates, 40% off for a limited time. The discount ends October 15, after which 480p is $0.05/second, 768p is $0.08/second, and 1080p is $0.16/second. Queued execution; final USD charge comes from the unique billing event matching this exact endpoint and request_id. A missing receipt retains the reservation; no guessed final fee. Reservation covers the published standard rate after October 15 ($0.05/$0.08/$0.16 per second), including during the promotion; the receipt settles the actual promotional charge. Camera Controls documents about 0.7 seconds of possible output overrun: reserve an additional whole second at the standard rate, refunded from the actual receipt. Asynchronous: returns a request_id; poll fal/status and fetch fal/result with model "minimax/h3-max" and that request_id. Billed once, when the result is ready; a generation that fails is refunded.

- Tool ID: `fal/minimax-h3-max-camera-controls`
- Name in the catalog: H3 Max Camera Controls
- Provider: [fal.ai](/providers/fal.md)
- Capability: [MiniMax Hailuo](/tools/video-generation/minimax.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

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_unit",
  "amountUsd": 0.16,
  "unitsField": "duration",
  "unitsDefault": 5,
  "maxUnits": 15,
  "fractional": true,
  "multipliers": [
    {
      "when": {
        "field": "resolution",
        "equals": "480P"
      },
      "setUsd": 0.05
    },
    {
      "when": {
        "field": "resolution",
        "equals": "768P"
      },
      "setUsd": 0.08
    },
    {
      "when": {
        "field": "resolution",
        "equals": "1080P"
      },
      "setUsd": 0.16
    },
    {
      "when": {
        "field": "resolution",
        "equals": "480P"
      },
      "addUsd": 0.05
    },
    {
      "when": {
        "field": "resolution",
        "equals": "768P"
      },
      "addUsd": 0.08
    },
    {
      "when": {
        "field": "resolution",
        "equals": "1080P"
      },
      "addUsd": 0.16
    }
  ]
}
```

Pricing source: [https://fal.ai/models/minimax/h3-max/camera-controls](https://fal.ai/models/minimax/h3-max/camera-controls). Video costs $0.03 per second at 480p, $0.048 per second at 768p, and $0.096 per second at 1080p.  Note: these are promotional rates, 40% off for a limited time. The discount ends October 15, after which 480p is $0.05/second, 768p is $0.08/second, and 1080p is $0.16/second. Queued execution; final USD charge comes from the unique billing event matching this exact endpoint and request_id. A missing receipt retains the reservation; no guessed final fee. Reservation covers the published standard rate after October 15 ($0.05/$0.08/$0.16 per second), including during the promotion; the receipt settles the actual promotional charge. Camera Controls documents about 0.7 seconds of possible output overrun: reserve an additional whole second at the standard rate, refunded from the actual receipt..

Price verification date: 2026-10-07.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "prompt_expansion_mode": {
      "default": "balanced",
      "description": "How much effort to spend rewriting the prompt before generation. 'disabled' skips prompt expansion. 'balanced' returns in about a second. 'quality' spends up to ~30s on a richer prompt.",
      "title": "Prompt Expansion Mode",
      "type": "string",
      "enum": [
        "disabled",
        "balanced",
        "quality"
      ]
    },
    "camera_trajectory": {
      "description": "Ordered camera keyframes. The first pose is held before its time and the final pose is held for the remainder of the video. Signed full turns are preserved, with at most 32 turns of total azimuth travel.",
      "title": "Camera Trajectory",
      "items": {
        "description": "One camera pose at a normalized point in the generated clip.",
        "title": "H3MaxCameraKeyframe",
        "x-fal-order-properties": [
          "time",
          "azimuth",
          "elevation",
          "distance"
        ],
        "properties": {
          "azimuth": {
            "description": "Horizontal camera angle around the subject, in degrees.",
            "title": "Azimuth",
            "type": "number"
          },
          "distance": {
            "description": "Camera distance from the subject in normalized scene units.",
            "title": "Distance",
            "type": "number",
            "exclusiveMinimum": 0
          },
          "elevation": {
            "maximum": 90,
            "minimum": -90,
            "title": "Elevation",
            "description": "Vertical camera angle around the subject, in degrees.",
            "type": "number"
          },
          "time": {
            "maximum": 1,
            "minimum": 0,
            "title": "Time",
            "description": "Normalized video time, from 0 at the start to 1 at the end.",
            "type": "number"
          }
        },
        "required": [
          "time",
          "azimuth",
          "elevation",
          "distance"
        ],
        "type": "object"
      },
      "maxItems": 12,
      "type": "array",
      "minItems": 2
    },
    "duration": {
      "default": 5,
      "maximum": 15,
      "minimum": 0.92,
      "title": "Duration",
      "description": "Video length in seconds. The output can run up to about 0.7 s longer than requested.",
      "type": "number"
    },
    "prompt": {
      "default": "The same elements in the reference are rigid. Preserve every element exactly. The entire scene is frozen. Only the camera moves. no scene motion only camera motion",
      "description": "Text prompt for video generation. When omitted or blank, defaults to preserving the frozen reference scene while only the camera moves.",
      "title": "Prompt",
      "type": "string",
      "maxLength": 50000
    },
    "seed": {
      "description": "Random seed. A random seed is selected when omitted.",
      "title": "Seed",
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "enable_safety_checker": {
      "default": true,
      "description": "If set to true, the safety checker will be enabled.",
      "title": "Enable Safety Checker",
      "type": "boolean"
    },
    "image_url": {
      "description": "URL of the image to use as the first frame.",
      "title": "Image URL",
      "minLength": 1,
      "type": "string"
    },
    "resolution": {
      "default": "480P",
      "enum": [
        "480P",
        "768P",
        "1080P"
      ],
      "title": "Resolution",
      "description": "The native generation resolution, or 1080P latent refinement from a native 768P source.",
      "type": "string"
    }
  },
  "required": [
    "image_url",
    "prompt_expansion_mode"
  ],
  "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/minimax-h3-max-camera-controls",
  "input": {
    "prompt_expansion_mode": "disabled",
    "image_url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg"
  }
}
```

## 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/minimax/h3-max/camera-controls)

[REST inspection](https://api.agentik.cc/v1/tools/fal/minimax-h3-max-camera-controls) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/fal/minimax-h3-max-camera-controls) · [Agent index](/llms.txt)
