Model API

FLUX.3 Video

FLUX.3 video from Black Forest Labs: edit a video with natural-language instructions, extend a clip, animate between a first and last frame or across keyframes, or try an idea as a cheaper draft first.

Model id

Use this in every request
blackforestlabs/flux-3/first-last-frame-to-video

This model has other modes with their own ids: blackforestlabs/flux-3/edit-video, blackforestlabs/flux-3/extend-video, blackforestlabs/flux-3/extend-video/draft, blackforestlabs/flux-3/first-last-frame-to-video/draft, blackforestlabs/flux-3/image-to-video/draft, blackforestlabs/flux-3/keyframes-to-video, blackforestlabs/flux-3/keyframes-to-video/draft, blackforestlabs/flux-3/text-to-video, blackforestlabs/flux-3/text-to-video/draft.

Run it

Quote the input, start the generation with the quote, then poll the job. Set RAYWAKE_API_KEY first; see Authentication.

# 1. Price the exact input (quotes are valid for up to 10 minutes)
curl -s https://api.raywake.com/v1/quotes \
  -H "Authorization: Bearer $RAYWAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "blackforestlabs/flux-3/first-last-frame-to-video",
  "input": {
    "prompt": "A red ceramic cup on a wooden table, soft morning light",
    "start_image_url": "https://example.com/input.png",
    "end_image_url": "https://example.com/input.png"
  }
}'

# 2. Start the generation with the quote_id from step 1
curl -s https://api.raywake.com/v1/generate \
  -H "Authorization: Bearer $RAYWAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"model": "blackforestlabs/flux-3/first-last-frame-to-video", "quote_id": "QUOTE_ID", "input": {"prompt":"A red ceramic cup on a wooden table, soft morning light","start_image_url":"https://example.com/input.png","end_image_url":"https://example.com/input.png"}}'

# 3. Poll until the status is terminal
curl -s https://api.raywake.com/v1/jobs/JOB_ID \
  -H "Authorization: Bearer $RAYWAKE_API_KEY"

Input

Input fields for blackforestlabs/flux-3/first-last-frame-to-video
NameTypeDescription
promptrequiredstring
The text prompt describing the video you want to generate.
aspect_ratiostring (enum)
Aspect ratio of the generated video. `auto` lets the model choose.

Default: auto

One of: auto, 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16

resolutionstring (enum)
Resolution of the generated video. `1080p`, `1440p` (2K) and `2160p` (4K) are finished by the video upsampler; exact dimensions depend on the aspect ratio.

Default: 720p

One of: 720p, 1080p

durationnumber (enum)
Duration of the generated video in seconds. An explicit duration is required to place the end frame.

Default: 5

One of: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

generate_audioboolean
Whether to generate audio for the video.

Default: true

safety_toleranceinteger
The safety tolerance level for the generated video. 0 is the strictest and 4 is the most permissive.

Default: 2

start_image_urlrequiredstring (image URL)
URL of the image used as the first frame of the video (PNG, JPEG, or WebP).
end_image_urlrequiredstring (image URL)
URL of the image used as the last frame of the video (PNG, JPEG, or WebP).

Output

A succeeded job lists its results under outputs, stored on our side. See Jobs for every field.

Job excerpt
"outputs": [
  { "type": "video", "url": "https://…", "mime_type": "video/mp4", "thumbnail_url": "https://…" }
]

Pricing

  • 720p$0.2694/ second
  • 1080p$0.4596/ second

The exact charge for your input comes from a quote. How charges settle