Skip to content

FLUX 3 Max Keyframes to Video

Integrate

Model id blackforestlabs/flux-3-max/keyframes-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/blackforestlabs/flux-3-max/keyframes-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "keyframes": [
      {
        "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
        "frame_index": 0
      }
    ]
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: $0.425 425 API credits Run it on this page

Get API key
Black Forest Labs Image to Video Native audio5–20 sup to 1080p #keyframes#image-to-video#control

Generates a video from a prompt and up to 10 keyframe images pinned to frame positions, with optional audio

Black Forest Labs · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Text describing the video's motion between keyframes.

duration 5 s

Length of the output video, measured in seconds.

resolution default 720p

Resolution for the output video.

aspect_ratio default auto

Generated video's aspect ratio, with `auto` matching the first image unless the input is a text prompt, for which it selects 16:9.

•required

Keyframe images placed in the output video according to `frame_index`; provide no more than 10, without repeating an index.

Advanced reasoning_level · seed
reasoning_level default high

Reasoning effort controls the tradeoff between generation speed and the work the harness devotes to understanding the prompt: more effort takes longer.

Generation seed; a random value is used if omitted.

POST /run/blackforestlabs/flux-3-max/keyframes-to-video?wait=20 quote → $0.425
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/blackforestlabs/flux-3-max/keyframes-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "keyframes": [
      {
        "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
        "frame_index": 0
      }
    ]
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About FLUX 3 Max Keyframes to Video

Creates a video that moves between keyframes you pin in time. `keyframes` takes 1 to 10 images with unique `frame_index` values, and `prompt` describes the motion. `duration` runs from 5 to 20 seconds, `resolution` is 720p or 1080p, and `aspect_ratio` includes 21:9 through 9:16 or auto. `reasoning_level` (low or high) and `generate_audio` are also available.

Parameters

NameType DefaultAllowed Description
promptrequired
Typestring
Text describing the video's motion between keyframes.
keyframesrequired
Typeobject[]
≤ 10 items
Keyframe images placed in the output video according to `frame_index`; provide no more than 10, without repeating an index.
keyframes[].image_urlrequired
Typeurl · image
Keyframe image URL; accepts PNG, JPEG, or WebP.
keyframes[].frame_indexrequired
Typeinteger
≥ 0
Keyframe placement uses a distinct frame index for each keyframe, bounded above by `duration * 24`; the output runs at 24 fps.
durationoptional
Typeenum
Default5
567891011121314151617181920
Length of the output video, measured in seconds.
resolutionoptional
Typeenum
Default720p
720p1080p
Resolution for the output video.
reasoning_leveloptional
Typeenum
Defaulthigh
lowhigh
Reasoning effort controls the tradeoff between generation speed and the work the harness devotes to understanding the prompt: more effort takes longer.
aspect_ratiooptional
Typeenum
Defaultauto
auto21:92:116:94:31:13:49:16
Generated video's aspect ratio, with `auto` matching the first image unless the input is a text prompt, for which it selects 16:9.
generate_audiooptional
Typeboolean
Defaulttrue
Controls whether the video includes generated audio.
seedoptional
Typeinteger | null
Generation seed; a random value is used if omitted.
required

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "blackforestlabs/flux-3-max/keyframes-to-video",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 425,
    "usd": "0.425",
    "charged": 425,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "keyframes": [
      {
        "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
        "frame_index": 0
      }
    ]
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200,
      "width": 1024,
      "height": 768,
      "fps": 1.0,
      "duration": 5,
      "num_frames": 1
    },
    "seed": 42,
    "timings": {}
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size, width, height, fps, duration, num_frames}Video produced by the model.
seed
integerSeed value used during generation.
timings
objectTiming data with prompt expansion, decoding, and upload omitted from `inference`, which measures only the model's video denoising in seconds.

More models: Image to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/blackforestlabs/flux-3-max/keyframes-to-video.md. All models and guides: https://doitong.com/developers/llms.txt