GET

/v1/schemas/fal/video/minimax/h3-max/camera-controls

kind inputactivity videohash e9256d35…extracted Nov 6, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
cb4b87c8405f8989270cf88ae1c594502b1310e2614a6651bdad3be9940eb028
{
  "fetchedAt": 1793941202,
  "extractorVersion": "1",
  "verifiedAt": null
}

Request body

12 properties · 2 required · 2 $defs
propertytypedescriptionconstraints
image_url*stringURL of the image to use as the first frame.length ≥ 1
prompt_expansion_mode*stringHow 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.default: "balanced"
resolutionenumThe native generation resolution, or 1080P latent refinement from a native 768P source.480P | 768P | 1080P · default: "480P"
camera_trajectoryH3MaxCameraKeyframe[]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.items ≥ 2 · items ≤ 12
sync_modebooleanReturn the generated video as base64 instead of a CDN URL.default: false
free_camera_presetenumA fixed free-camera move. Truck, pedestal, and dolly slide the camera; pan, tilt, and roll turn it in place. The path is not editable. When this is set, camera_trajectory is ignored. Each move is one training-scale step: one near-depth unit, 30 degrees of pan, or 20 degrees of tilt or roll.truck_right | truck_left | pedestal_up | pedestal_down | dolly_in | dolly_out · +7 more · nullable
camera_poses_scalenumberMultiplier on imported camera translations. One model unit is the depth of the nearest scene content in the first frame, so a Blender scene whose nearest object is 5 m away needs 0.2.0 < n ≤ 10000 · default: 1
seedintegerRandom seed. A random seed is selected when omitted.nullable
camera_posesH3MaxCameraPosesPer-frame camera-to-world matrices, e.g. Blender ``matrix_world``.nullable
durationnumberVideo length in seconds. The output can run up to about 0.7 s longer than requested.0.92 ≤ n ≤ 15 · default: 5
promptstringText prompt for video generation. When omitted or blank, defaults to preserving the frozen reference scene while only the camera moves.length ≤ 50000 · default: "The same elements in the refere…
enable_safety_checkerbooleanIf set to true, the safety checker will be enabled.default: true

Types

2 $defs

H3MaxCameraKeyframeobject

One camera pose at a normalized point in the generated clip.

distance*numberCamera distance from the subject in normalized scene units.n > 0
time*numberNormalized video time, from 0 at the start to 1 at the end.0 ≤ n ≤ 1
azimuth*numberHorizontal camera angle around the subject, in degrees.
elevation*numberVertical camera angle around the subject, in degrees.-90 ≤ n ≤ 90

H3MaxCameraPosesobject

Per-frame camera-to-world matrices, e.g. Blender ``matrix_world``.

convention*enumCamera axes of the matrices: blender (looks down -Z, Y up) or opencv (looks down +Z, Y down). The world frame does not matter.blender | opencv
c2w*number[][][]One 4x4 row-major camera-to-world matrix per frame.items ≥ 2 · items ≤ 2048

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"fal","endpointId":"minimax/h3-max/camera-controls","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}