Skip to content
English

FLUX 3 Max Keyframes to Video API

POST Base URL: https://api.hiapi.ai /v1/tasks

Image, video, and audio models are called through theUnified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).

Model summary

Model name flux-3-max/keyframes-to-video
Type Video generation (keyframes-to-video)
Endpoint POST /v1/tasks
Pricing See HiAPI Pricing

FLUX 3 Max keyframes-to-video places 1–10 keyframes, from a fishing harbor to an iced matcha latte, on a 24fps timeline and generates a 5–20 second clip at 720p or 1080p, with 7 fixed aspect ratios plus auto, synchronized audio, and low/high reasoning levels.

Production guidance

Production guidance
  • For production, pass callback.url at the top level of the request body so HiAPI can notify your service when the task reaches a terminal state.
  • GET /v1/tasks/:id is better for local debugging, low-volume jobs, or fallback reconciliation if a callback is missed.
  • Use callback.when=final. Both success and fail are terminal states, so your service should deduplicate by taskId.

Best suited for

Keyframe storyboards

Arrange 1–10 keyframes as scene checkpoints so the video reaches each specified image at the specified time.

keyframesprompt
Precise timing control

Use frame_index on the 24fps timeline to place each keyframe at an exact moment.

keyframes
Length and framing control

Choose any length from 5 to 20 seconds and set framing with seven fixed ratios or auto.

durationaspect_ratio

Request parameters

model string required

Fixed value flux-3-max/keyframes-to-video.

example flux-3-max/keyframes-to-video
input object required

Business parameters. Put FLUX 3 Max Keyframes to Video-specific configuration here.

prompt string required

Describes the scene changes, subject motion, and camera movement between the keyframes.

keyframes object[] required

Keyframe array with 1–10 items. Each item contains one keyframe image and its frame number on a 24fps timeline.

image_url string required

Public keyframe image URL. Supports PNG, JPEG, and WebP.

frame_index integer required

Frame number on a 24fps timeline, starting at 0. The maximum is duration × 24, and values must be unique within one request.

duration integer optional

Video length in seconds; an integer from 5 to 20 in 1-second steps.

default 5
resolution enum optional

Output video resolution: 720p or 1080p.

default 720p enum: 720p1080p
aspect_ratio enum optional

Output aspect ratio. auto lets the model choose; you can also set 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, or 9:16.

default auto enum: auto21:92:116:94:31:13:49:16
generate_audio boolean optional

Whether to generate synchronized audio with the video.

default true example true
reasoning_level enum optional

Reasoning effort before generation: low or high. Defaults to high.

default high enum: lowhigh
callback object optional

Optional callback configuration. When set, HiAPI notifies your service when the task reaches a terminal state.

url string required

Required when callback is set; HTTPS URL that receives terminal task notifications.

example https://your-domain.com/hiapi/callback
when enum optional

Callback trigger timing. Use final.

default final enum: final

Example requests

Harbor to iced matcha latte

A 5-second 720p clip that uses a harbor keyframe at frame 0 and an iced matcha latte keyframe at frame 120, with synchronized audio off and low reasoning.

Request body
{
  "model": "flux-3-max/keyframes-to-video",
  "input": {
    "prompt": "A continuous cinematic morph: the misty fishing harbor at sunrise smoothly dissolves into a close-up of an iced matcha latte on a wooden table, ending on the drink.",
    "keyframes": [
      {
        "image_url": "https://static.hiapi.ai/gallery/2026/07/8acba0f00bdacec3.jpg",
        "frame_index": 0
      },
      {
        "image_url": "https://static.hiapi.ai/admin-assets/2026/10/13/1791861916426-c01eb8e1b25f688a-wan3-prime-golden-cover.jpg",
        "frame_index": 120
      }
    ],
    "duration": 5,
    "resolution": "720p",
    "generate_audio": false,
    "reasoning_level": "low"
  }
}

Getting the result

  1. The response returns a taskId immediately without waiting for generation to finish.
  2. In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
  3. When status=success, download the generated video from output[].url.
  4. When status=fail, fix the request based on the returned error instead of retrying the same invalid payload.

FAQ

How is frame_index calculated?

The timeline runs at 24fps and frame_index starts at 0. The maximum is duration × 24, so duration=5 allows up to 120. frame_index values must be unique within one request.

How many keyframes can I pass?

keyframes accepts 1–10 items, each with image_url and frame_index. Every keyframe is placed on the same 24fps timeline by its frame_index.

Can I set the duration and aspect ratio?

Yes. duration is an integer from 5 to 20; aspect_ratio accepts auto, 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, or 9:16.

What are the image requirements?

Each keyframe image_url must be a publicly reachable PNG, JPEG, or WebP URL without hotlink protection or complex redirects.

How is it billed?

See the live prices on the HiAPI pricing page. View pricing

Next steps