GET
/v1/schemas/fal/video/minimax/h3-max/camera-controls
Accept:
| field | recorded source |
|---|---|
| schema | Source linked above. upstream-spec Source tracecb4b87c8405f8989270cf88ae1c594502b1310e2614a6651bdad3be9940eb028{
"fetchedAt": 1793941202,
"extractorVersion": "1",
"verifiedAt": null
} |
Request body
12 properties · 2 required · 2 $defs| property | type | description | constraints |
|---|---|---|---|
| image_url* | string | URL of the image to use as the first frame. | length ≥ 1 |
| prompt_expansion_mode* | string | 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. | default: "balanced" |
| resolution | enum | The native generation resolution, or 1080P latent refinement from a native 768P source. | 480P | 768P | 1080P · default: "480P" |
| camera_trajectory | H3MaxCameraKeyframe[] | 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_mode | boolean | Return the generated video as base64 instead of a CDN URL. | default: false |
| free_camera_preset | enum | A 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_scale | number | Multiplier 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 |
| seed | integer | Random seed. A random seed is selected when omitted. | nullable |
| camera_poses | H3MaxCameraPoses | Per-frame camera-to-world matrices, e.g. Blender ``matrix_world``. | nullable |
| duration | number | Video length in seconds. The output can run up to about 0.7 s longer than requested. | 0.92 ≤ n ≤ 15 · default: 5 |
| prompt | string | Text 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_checker | boolean | If set to true, the safety checker will be enabled. | default: true |
Types
2 $defsH3MaxCameraKeyframeobject
One camera pose at a normalized point in the generated clip.
| distance* | number | Camera distance from the subject in normalized scene units. | n > 0 |
| time* | number | Normalized video time, from 0 at the start to 1 at the end. | 0 ≤ n ≤ 1 |
| azimuth* | number | Horizontal camera angle around the subject, in degrees. | |
| elevation* | number | Vertical camera angle around the subject, in degrees. | -90 ≤ n ≤ 90 |
H3MaxCameraPosesobject
Per-frame camera-to-world matrices, e.g. Blender ``matrix_world``.
| convention* | enum | Camera 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 tokensshell
$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"fal","endpointId":"minimax/h3-max/camera-controls","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}