FLUX 3 Max Keyframes to Video API
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
- 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
Arrange 1–10 keyframes as scene checkpoints so the video reaches each specified image at the specified time.
keyframespromptUse frame_index on the 24fps timeline to place each keyframe at an exact moment.
keyframesChoose any length from 5 to 20 seconds and set framing with seven fixed ratios or auto.
durationaspect_ratioRequest parameters
model string required Fixed value 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.
resolution enum optional Output video resolution: 720p or 1080p.
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.
generate_audio boolean optional Whether to generate synchronized audio with the video.
reasoning_level enum optional Reasoning effort before generation: low or high. Defaults to high.
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.
when enum optional Callback trigger timing. Use final.
Example requests
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.
{
"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
- The response returns a taskId immediately without waiting for generation to finish.
- In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
- When status=success, download the generated video from output[].url.
- 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