Videos · Concepts

Tasks and inputs

The task field says what kind of input conditions the video. It also decides which pool of GPUs runs the job.

The three tasks

taskRequiredOptionalWhat it does
t2vaprompt—Text to video and audio.
fl2vaconditions with 1 or 2 framespromptStart from a first frame, end on a last frame, or both.
ref2vaconditions with referencespromptCondition on reference images, video, or audio.

Requests are checked before a job is queued, so an invalid combination is rejected immediately with invalid_request_error instead of failing after it has used GPU time.

Text to video: t2va

POST /v1/videos
{
  "model": "minimax/h3",
  "task": "t2va",
  "prompt": "a paper boat drifting down a rain-slicked street at night, neon reflections",
  "seconds": 5
}

First and last frame: fl2va

Pass one or two entries in conditions, each a first_frame or last_frame with an image_url.

POST /v1/videos
{
  "model": "minimax/h3",
  "task": "fl2va",
  "prompt": "the boat drifts further down the street",
  "conditions": [{ "type": "first_frame", "image_url": "https://example.com/boat_start.png" }],
  "seconds": 5,
  "quality": "turbo"
}

References: ref2va

Pass references in conditions, each with a type of image, video, or audio and a url.

POST /v1/videos
{
  "model": "minimax/h3",
  "task": "ref2va",
  "prompt": "the same character walks into a rainy market",
  "conditions": [
    { "type": "image", "url": "https://example.com/character.png" },
    { "type": "audio", "url": "https://example.com/voice.wav" }
  ],
  "seconds": 8
}

Inputs are URLs, not uploads

  • Images, video, and audio are passed as URLs we fetch. There is no raw-file upload in the request.
  • We fetch and validate each input (size cap, content-type allowlist, moderation) before the job is queued, so a bad input fails fast. The exact size limits and allowed types are not final.
  • URLs must be reachable from our servers. A signed URL with a short expiry is fine as long as it is still valid when we fetch it.

Clips longer than 15 seconds

One job produces 4 to 15 seconds. To go longer today, chain jobs yourself: generate a clip, take its last frame, use it as the first_frame of an fl2va job, and concatenate the results (for example with ffmpeg). Inspect the joins before you ship. Built-in chaining is not part of the API.

Why tasks route differently

t2va and fl2va run on one checkpoint pool, and ref2va on another. A busy pool queues only its own tasks, so a rush of reference jobs does not delay text-to-video jobs.