GET
/v1/schemas/fal/video/minimax/h3-max/director
Accept:
| field | recorded source |
|---|---|
| schema | Source linked above. upstream-spec Source tracef2ce56df5f0cdaed84eab638b82da3105c9cbc0bef933568b8a8db9d1442ad94{
"fetchedAt": 1791090004,
"extractorVersion": "1",
"verifiedAt": null
} |
Request body
0 properties · 0 required · 0 $defsThis schema isn’t a plain object with properties — showing the raw JSON instead.
application/json
{
"provider": "fal",
"activity": "video",
"endpointId": "minimax/h3-max/director",
"kind": "input",
"contentHash": "3ec783fb9b9185702c72e2891f0533a21fbf9bd50493702658caf6d583650c1c",
"specRevision": null,
"provenance": {
"sourceUrl": "https://fal.ai/api/apps/fal-ai/minimax-h3-max-director/asyncapi.json",
"sourceHash": "f2ce56df5f0cdaed84eab638b82da3105c9cbc0bef933568b8a8db9d1442ad94",
"fetchedAt": 1791090004,
"extractorVersion": "1",
"derivation": "upstream-spec",
"verifiedAt": null
},
"createdAt": 1791090004,
"supersededAt": null,
"schema": {
"title": "Client messages",
"oneOf": [
{
"$ref": "#/$defs/MiniMaxH3MaxDirectorClientConfigureMessage"
},
{
"$ref": "#/$defs/MiniMaxH3MaxDirectorClientPingMessage"
},
{
"$ref": "#/$defs/MiniMaxH3MaxDirectorClientPromptMessage"
},
{
"$ref": "#/$defs/MiniMaxH3MaxDirectorClientStopMessage"
}
],
"$defs": {
"MiniMaxH3MaxDirectorClientConfigureMessage": {
"properties": {
"audio_url": {
"title": "Target audio",
"x-fal-ui": {
"field": "audio",
"order": 60
},
"description": "Optional startup soundtrack. The stream's audio is pinned to this recording from the first chunk as FL2VA target audio, not a Ref2VA reference: every chunk is conditioned on the next window of it (plus the regenerated seam) until it ends, and the source PCM itself is what plays. Live `prompt` messages can replace or queue more audio at any time.",
"default": null,
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"memory": {
"x-fal-ui": {
"advanced": true,
"order": 70
},
"title": "Memory",
"maximum": 50,
"default": 12,
"description": "Number of prior segment prompts retained as context for future prompt expansion.",
"type": "integer",
"minimum": 1
},
"prompt_version": {
"x-fal-ui": {
"hidden": true
},
"type": "integer",
"title": "Prompt Version",
"minimum": 1
},
"script": {
"default": null,
"description": "Optional upfront script: beats at whole-second offsets from the first generated video. `prompt` stays the series premise; a beat prompt directs from its offset on. Cannot be combined with `end_image_url` or `audio_url` (place them in the script).",
"title": "Script",
"anyOf": [
{
"minItems": 1,
"maxItems": 64,
"items": {
"$ref": "#/$defs/MiniMaxH3MaxDirectorClientScriptBeat"
},
"type": "array"
},
{
"type": "null"
}
]
},
"end_image_url": {
"title": "Last frame",
"x-fal-ui": {
"field": "image",
"order": 50
},
"description": "One-shot exact final frame for the first chunk. Director jointly plans that arrival and the following checkpoint continuation.",
"default": null,
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"prompt": {
"examples": [
"A continuous original live-action stream following a group of friends as they explore a new city."
],
"maxLength": 50000,
"minLength": 1,
"type": "string",
"x-fal-ui": {
"field": "textarea",
"order": 0
},
"title": "Prompt"
},
"resolution": {
"enum": [
"480p",
"768p",
"1080p"
],
"x-fal-ui": {
"order": 10
},
"type": "string",
"default": "768p",
"title": "Resolution"
},
"seed": {
"x-fal-ui": {
"advanced": true,
"order": 90
},
"title": "Seed",
"default": null,
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"aspect_ratio": {
"enum": [
"16:9",
"9:16",
"1:1"
],
"x-fal-ui": {
"order": 20
},
"type": "string",
"default": "16:9",
"title": "Aspect Ratio"
},
"image_url": {
"title": "First frame",
"x-fal-ui": {
"field": "image",
"order": 30
},
"description": "URL of the image to use as the exact first frame. The opening prompt expansion also sees this image, so the first segment's prompt is grounded in it.",
"default": null,
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"audio_bitrate": {
"examples": [
192000
],
"title": "Audio Bitrate",
"x-fal-ui": {
"advanced": true,
"order": 80
},
"description": "Session audio target in bits/s: 96000, 128000, or 192000. Explicit values use Opus audio mode on direct WebRTC; LiveKit uses its native mode with the same bitrate target. Null preserves transport defaults (WebRTC: 96000, voip). Immutable; reconnect to compare.",
"default": null,
"anyOf": [
{
"enum": [
96000,
128000,
192000
],
"type": "integer"
},
{
"type": "null"
}
]
},
"type": {
"const": "configure",
"x-fal-ui": {
"hidden": true
},
"type": "string",
"title": "Type"
},
"protocol_version": {
"const": 1,
"x-fal-ui": {
"hidden": true
},
"type": "integer",
"default": 1,
"title": "Protocol Version"
}
},
"required": [
"type",
"prompt_version",
"prompt"
],
"x-fal-order-properties": [
"type",
"protocol_version",
"prompt_version",
"prompt",
"aspect_ratio",
"resolution",
"memory",
"image_url",
"end_image_url",
"audio_url",
"audio_bitrate",
"seed",
"script"
],
"type": "object",
"title": "ConfigureMessage",
"additionalProperties": false
},
"MiniMaxH3MaxDirectorClientPingMessage": {
"properties": {
"ts": {
"type": "number",
"title": "Ts"
},
"type": {
"const": "ping",
"type": "string",
"title": "Type"
}
},
"required": [
"type",
"ts"
],
"type": "object",
"title": "PingMessage",
"additionalProperties": false
},
"MiniMaxH3MaxDirectorClientPromptMessage": {
"properties": {
"audio_url": {
"title": "Target audio",
"x-fal-ui": {
"field": "audio",
"order": 30
},
"description": "FL2VA target audio for future chunks; this is not a Ref2VA reference. With `audio_behavior` 'replace' (default) it starts at the next undispatched chunk and drops any queued audio; with 'queue' it plays after every previously accepted source ends, sample-exact.",
"default": null,
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"audio_behavior": {
"type": "string",
"enum": [
"replace",
"queue"
],
"x-fal-ui": {
"advanced": true,
"order": 40
},
"description": "'replace' cuts to this audio at the next chunk; 'queue' appends it.",
"default": "replace",
"title": "Audio Behavior"
},
"script": {
"default": null,
"description": "A new script: beats at whole-second offsets from the first video generated under it. Exclusive with prompt/end_image_url/audio_url. With `script_mode` 'replace' (default) it replaces the pending and current direction at the next undispatched chunk; 'append' starts at the chunk boundary after the running script's last text beat is represented and its audio tails have finished (queued behind earlier appended scripts). Beats without a prompt keep the current text direction.",
"title": "Script",
"anyOf": [
{
"minItems": 1,
"maxItems": 64,
"items": {
"$ref": "#/$defs/MiniMaxH3MaxDirectorClientScriptBeat"
},
"type": "array"
},
{
"type": "null"
}
]
},
"prompt_version": {
"x-fal-ui": {
"hidden": true
},
"type": "integer",
"title": "Prompt Version",
"minimum": 1
},
"end_image_url": {
"x-fal-ui": {
"field": "image",
"order": 20
},
"title": "Last frame",
"default": null,
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"prompt": {
"x-fal-ui": {
"field": "textarea",
"order": 10
},
"title": "Prompt",
"default": null,
"anyOf": [
{
"maxLength": 50000,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"script_mode": {
"enum": [
"replace",
"append"
],
"default": "replace",
"description": "'replace' cuts to the script at the next chunk; 'append' queues it.",
"type": "string",
"title": "Script Mode"
},
"type": {
"const": "prompt",
"x-fal-ui": {
"hidden": true
},
"type": "string",
"title": "Type"
},
"replan": {
"title": "Replan",
"x-fal-ui": {
"advanced": true,
"order": 50
},
"description": "When a prompt is included: true (default) busts the planned prompt queue so the new direction applies at the next undispatched chunk; false appends the direction after the already-planned chunks.",
"type": "boolean",
"default": true
}
},
"required": [
"type",
"prompt_version"
],
"type": "object",
"title": "PromptMessage",
"additionalProperties": false
},
"MiniMaxH3MaxDirectorClientScriptBeat": {
"title": "ScriptBeat",
"properties": {
"audio_url": {
"default": null,
"description": "Audio that starts playing exactly at this offset as FL2VA target audio; overlapping sources are mixed. The source PCM itself plays.",
"title": "Audio Url",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"end_image_url": {
"default": null,
"description": "Exact final frame of the chunk that ends at this offset. Offsets of successive end images must be at least three seconds apart.",
"title": "End Image Url",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"prompt": {
"default": null,
"description": "Direction that starts at this offset and persists until the next text beat; it also appears as a timed span inside the chunk.",
"title": "Prompt",
"anyOf": [
{
"maxLength": 50000,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
]
},
"offset": {
"title": "Offset",
"description": "Whole seconds from the start of the first video generated under this script. Text and audio placed here start at this second; an end image here is the exact final frame at this second.",
"type": "integer",
"minimum": 0
}
},
"required": [
"offset"
],
"description": "A direction on the associated video's clock, never the stream clock.",
"type": "object",
"additionalProperties": false
},
"MiniMaxH3MaxDirectorClientStopMessage": {
"properties": {
"type": {
"const": "stop",
"type": "string",
"title": "Type"
}
},
"required": [
"type"
],
"type": "object",
"title": "StopMessage",
"additionalProperties": false
}
}
}
}Validate a payload
before you spend tokensshell
$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"fal","endpointId":"minimax/h3-max/director","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}