---
title: "Generate a video with FLUX 3."
method: POST
path: "/v1/flux-3-video"
tags: ["Models"]
---

# Generate a video with FLUX 3.

`POST /v1/flux-3-video`

Submits a video generation task to FLUX 3 via the harness. The mode is explicit: t2v (`text-to-video`), i2v (`image-continuation`, keyframes), v2v (`video-continuation`, start_video), or draft_enhance (`draft-enhance`, full-quality render of a prior draft's `draft_cache`); the spelled-out aliases are accepted anywhere the short key is.

## Request body

- union — Route body wrapper: FastAPI drops the union's discriminator when the bare union is the top-level body param, so 422s enumerate every mode class instead of the one the client sent. The RootModel keeps discrimination inside pydantic; routes unwrap `.root`.
  - Flux3VideoT2VInputs
    - `prompt` string, required — Free-form prompt describing the video.
    - `aspect_ratio` union — Output aspect ratio. `auto` lets the harness choose from the prompt and any references.
      - '21:9' | '2:1' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16'
      - 'auto'
    - `duration` union — Video duration in seconds (any whole second from 5 to 20), or `auto` to fit the content.
      - integer
      - 'auto'
    - `resolution` 'hd' | 'fhd' — Video resolution class: `hd`, or `fhd` for a higher-resolution result finished by the video upsampler. Exact dimensions vary with the aspect ratio.
    - `version` 'latest' — Endpoint version. `latest` (default) serves the current release; dated pinnable release tags are added here as they are published.
    - `generate_audio` boolean — Generate synchronized audio alongside the video.
    - `safety_tolerance` integer — Tolerance level for input and output harm moderation. Between 0 and 4, with 0 the strictest. Sexual content is limited to level 3 and hate content to level 2 regardless of the requested tolerance. Contextual safety signals can tighten the requested level.
    - `draft` boolean — Draft mode: generate a fast preview and return a `draft_cache` download URL in the result. Download that bundle and pass it back later to render the full-quality version of the same generation.
    - `mode` 't2v', required
  - Flux3VideoI2VInputs — Image continuation: your images become frames of the video. One image starts the video; two start and end it; with more, the first starts it, the last ends it, and the rest fall evenly in between. To control the timing yourself, send `[seconds, image]` pairs: each image becomes the frame at that second.
    - `prompt` string, required — Free-form prompt describing the video.
    - `aspect_ratio` union — Output aspect ratio. `auto` lets the harness choose from the prompt and any references.
      - '21:9' | '2:1' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16'
      - 'auto'
    - `duration` union — Video duration in seconds (any whole second from 5 to 20), or `auto` to fit the content.
      - integer
      - 'auto'
    - `resolution` 'hd' | 'fhd' — Video resolution class: `hd`, or `fhd` for a higher-resolution result finished by the video upsampler. Exact dimensions vary with the aspect ratio.
    - `version` 'latest' — Endpoint version. `latest` (default) serves the current release; dated pinnable release tags are added here as they are published.
    - `generate_audio` boolean — Generate synchronized audio alongside the video.
    - `safety_tolerance` integer — Tolerance level for input and output harm moderation. Between 0 and 4, with 0 the strictest. Sexual content is limited to level 3 and hate content to level 2 regardless of the requested tolerance. Contextual safety signals can tighten the requested level.
    - `draft` boolean — Draft mode: generate a fast preview and return a `draft_cache` download URL in the result. Download that bundle and pass it back later to render the full-quality version of the same generation.
    - `mode` 'i2v', required
    - `keyframes` union, required — Your images become frames of the video; each is an http(s) URL or base64, one to ten total. Plain images: one starts the video, two start and end it, with more the first starts it, the last ends it, and the rest fall evenly in between (3 or more need a set `duration`). To control the timing yourself, send `[seconds, image]` pairs in time order, e.g. `[[0, "..."], [3.5, "..."]]`: each image becomes the frame at that second, and with `duration: "auto"` the video runs to the last pair's second, rounded up (20s max).
      - string
      - string[]
      - array[]
        - unknown[]
          - unknown
  - Flux3VideoV2VInputs — Video continuation: the generated clip carries on from your video's final frames.
    - `prompt` string, required — Free-form prompt describing the video.
    - `aspect_ratio` union — Output aspect ratio. `auto` lets the harness choose from the prompt and any references.
      - '21:9' | '2:1' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16'
      - 'auto'
    - `duration` union — Video duration in seconds (any whole second from 5 to 20), or `auto` to fit the content.
      - integer
      - 'auto'
    - `resolution` 'hd' | 'fhd' — Video resolution class: `hd`, or `fhd` for a higher-resolution result finished by the video upsampler. Exact dimensions vary with the aspect ratio.
    - `version` 'latest' — Endpoint version. `latest` (default) serves the current release; dated pinnable release tags are added here as they are published.
    - `generate_audio` boolean — Generate synchronized audio alongside the video.
    - `safety_tolerance` integer — Tolerance level for input and output harm moderation. Between 0 and 4, with 0 the strictest. Sexual content is limited to level 3 and hate content to level 2 regardless of the requested tolerance. Contextual safety signals can tighten the requested level.
    - `draft` boolean — Draft mode: generate a fast preview and return a `draft_cache` download URL in the result. Download that bundle and pass it back later to render the full-quality version of the same generation.
    - `mode` 'v2v', required
    - `start_video` string, required — The video to continue, an http(s) URL or base64 mp4; the generated clip carries on from its final frames.
  - Flux3VideoDraftEnhanceInputs — Full-quality render of a prior `draft` generation. The bundle pins the generation itself -- the original mode, prompt, seed, and conditioning media -- so `resolution` is the only output choice left to the caller.
    - `mode` 'draft_enhance', required
    - `draft_cache` string, required — Encrypted draft-cache bundle from a prior `draft` generation. Primary form: the base64-encoded `.bin` file downloaded from the prior result's `draft_cache` URL. An http(s) URL is also accepted for replays within the download URL's expiry window. The harness is skipped and the original FLUX call is reproduced at full quality; the original inputs are embedded in the bundle.
    - `resolution` 'hd' | 'fhd' — Video resolution class of the enhanced result: `fhd` (default) finishes the reproduced generation with the video upsampler, `hd` returns it without that pass. The reproduced generation is identical either way; only the finishing pass differs.
    - `safety_tolerance` integer — Tolerance level for replay input and output harm moderation. Between 0 and 4, with 0 the strictest. Sexual content is limited to level 3 and hate content to level 2 regardless of the requested tolerance.

## Response `200`

Successful Response

- union
  - AsyncResponse
    - `id` string, required
    - `polling_url` string, required
    - `cost` number, nullable — Cost in credits for this request
    - `input_mp` number, nullable — Input megapixels (2 decimal places)
    - `output_mp` number, nullable — Output megapixels (2 decimal places)
  - AsyncWebhookResponse
    - `id` string, required
    - `status` string, required
    - `webhook_url` string, required
    - `cost` number, nullable — Cost in credits for this request
    - `input_mp` number, nullable — Input megapixels (2 decimal places)
    - `output_mp` number, nullable — Output megapixels (2 decimal places)

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/bfl/apis/bfl-api.md) · [All operations](https://skmtc.net/bfl/apis/bfl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bfl/bfl-api/revisions/a0209bab18e1/schema)
