Skip to main content
Core.Today
|
Black Forest LabsMediumUltra

Flux 3 Image to Video

FLUX.3 is Black Forest Labs' frontier video model. This endpoint animates a single still image into coherent, natural motion at 720p or 1080p for 5-20 seconds, with synchronized audio generated alongside the video and a tunable safety tolerance.

1980 credits
per 5s 720p video โ€” billed per second (720p 395/s, 1080p 674/s)
1080p output โ€” the highest resolution tier among our image-to-video endpoints with native audio
5-20 second durations, billed per second
Audio generated alongside the video rather than dubbed afterwards
Eight aspect ratios from 21:9 to 9:16, or auto
Adjustable safety tolerance from 0 (strictest) to 4 (most permissive)

Run it right now

Test this model instantly in the Console Playground โ€” no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "blackforestlabs/flux-3/image-to-video",
  "input": {
    "prompt": "A red panda walks along a mossy log in a sunlit forest, one continuous unbroken shot. Ambient birdsong and rustling leaves.",
    "image_url": "https://storage.googleapis.com/falserverless/example_inputs/veo31_i2v_input.jpg",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "auto",
    "generate_audio": true
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes-The text prompt describing the video you want to generate.
image_urlstringYes-URL of the image the video starts from (PNG, JPEG, or WebP).
durationintegerYes5Duration of the generated video in seconds (5-20). Required โ€” upstream also accepts "auto", but the resulting length is unknown at request time and cannot be billed accurately, so this gateway requires an explicit duration.
resolutionstringNo720pResolution of the generated video.
720p1080p
aspect_ratiostringNoautoAspect ratio of the generated video. 'auto' lets the model choose.
auto21:92:116:94:31:13:49:16
generate_audiobooleanNotrueWhether to generate audio for the video.
safety_toleranceintegerNo2The safety tolerance level for the generated video. 0 is the strictest and 4 is the most permissive.

How to Provide File Input

There are 3 ways to provide files for the image_url parameter:

Recommended

Image URL

Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.

{
  "model": "blackforestlabs/flux-3/image-to-video",
  "input": {
    "prompt": "your prompt here",
    "image_url": "https://example.com/image.jpg"
  }
}

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=blackforestlabs/flux-3/image-to-video" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:image_url=@your_file.png"
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Single continuous shot from a still

Animate a photograph into one unbroken 5-second take at 720p, with ambient sound generated alongside.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "blackforestlabs/flux-3/image-to-video",
  "input": {
    "prompt": "A red panda walks along a mossy log in a sunlit forest, one continuous unbroken shot. Ambient birdsong and rustling leaves.",
    "image_url": "https://storage.googleapis.com/falserverless/example_inputs/veo31_i2v_input.jpg",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "auto",
    "generate_audio": true
  }
}'

1080p hero clip

Render the final cut at 1080p in a 16:9 frame once the motion has been validated at 720p.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "blackforestlabs/flux-3/image-to-video",
  "input": {
    "prompt": "Slow dolly-in on a ceramic coffee cup as steam rises, morning light through a window, shallow depth of field.",
    "image_url": "https://example.com/product-still.jpg",
    "duration": 8,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Tips & Best Practices

1Validate the motion at 720p first โ€” 1080p costs roughly 1.7x per second for the same duration.
2Billing is per second of output, so an 8-second clip costs about 60% more than a 5-second one.
3Describe one continuous camera move rather than a sequence of cuts; this endpoint animates a single still and holds up best on unbroken shots.
4safety_tolerance defaults to 2. Lower it for brand-safe placements; raise it only when a legitimate prompt is being over-filtered.

Use Cases

1080p hero clips for landing pages and paid placements where 720p is not enough
Animating key art or a product still into a short cinematic shot
Ambient b-roll generated from an existing photograph, with matching ambient sound
Motion tests at 720p before committing to a 1080p final render