Skip to main content
Black Forest LabsSlowHigh

FLUX 3

Black Forest Labs' multimodal FLUX 3 generates 5-20 second video with synchronized audio from a text prompt, from one or more images (first frame, first+last frame, or a storyboard of up to 10), or by continuing an existing clip — at 720p or 1080p, with a low-cost draft mode.

1980 credits
per second — 720p 395/s, 1080p 674/s, draft (720p) 140/s; video continuation (start_video) 720p 953/s, 1080p 1232/s, draft 279/s; 5-20s (default 5s at 720p = 1980; 'auto' reserves 20s and settles on the actual length)
Synchronized audio generated with the video (can be turned off)
Text-to-video, image-to-video, first+last frame and storyboards of up to 10 images
Video continuation from an existing clip via start_video
720p or 1080p output, 5-20 seconds or 'auto' length
Draft mode for fast, low-cost 720p previews

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": "black-forest-labs/flux-3",
  "input": {
    "prompt": "a home video of a futuristic san francisco with people riding hoverboards",
    "images": [],
    "duration": "5",
    "resolution": "720p",
    "aspect_ratio": "auto",
    "generate_audio": true,
    "draft": false,
    "safety_tolerance": 2
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes-Text description of the video. Describe the scene, action, camera moves, and any audio you want — the prompt is interpreted and expanded before generation
imagesarrayNo[]Optional images placed pixel for pixel: 1 = first frame, 2 = first and last frame, 3-10 = storyboard (needs an explicit duration). PNG, JPEG or WebP. Can't be combined with start_video
start_videostringNo-A video to continue from its final frames (mp4, ≤50MB, ≤15s). Billed at the video-continuation rate. Can't be combined with images
aspect_ratiostringNoautoAspect ratio of the generated video. 'auto' picks a ratio from your prompt and inputs
auto21:92:116:94:31:13:49:16
resolutionstringNo720pOutput resolution. Ignored in draft mode (drafts are 720p)
720p1080p
durationstringNo5Clip length in seconds ("5"-"20"). Defaults to "5" when omitted. 'auto' lets the model choose (5-20s) and is billed on the actual output length (20s is reserved up front)
auto567891011121314151617181920
generate_audiobooleanNotrueGenerate synchronized audio (ambient sound, speech, effects). Set to false for a silent clip
draftbooleanNofalseGenerate a fast, low-cost 720p draft preview instead of a full-quality clip
safety_toleranceintegerNo2Moderation tolerance, 0 (strictest) to 4 (most permissive). Requests with image or video inputs are limited to 2

How to Provide File Input

There are 3 ways to provide files for the imagesstart_video parameters:

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": "black-forest-labs/flux-3",
  "input": {
    "prompt": "your prompt here",
    "images": ["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=black-forest-labs/flux-3" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:images=@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

Text-to-Video (720p)

A 5-second 720p clip with audio — 5s at 395/s = 1,980 credits

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "black-forest-labs/flux-3",
  "input": {
    "prompt": "a home video of a futuristic san francisco with people riding hoverboards",
    "images": [],
    "duration": "5",
    "resolution": "720p",
    "aspect_ratio": "auto",
    "generate_audio": true,
    "draft": false,
    "safety_tolerance": 2
  }
}'

Draft Preview

Fast 720p draft to check the idea — 8s at 140/s

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "black-forest-labs/flux-3",
  "input": {
    "prompt": "A red panda walks along a mossy log in a sunlit forest, one continuous shot, birdsong",
    "duration": "8",
    "draft": true
  }
}'

Tips & Best Practices

1Iterate with draft: true (140/s) and only render the final at full quality
2'auto' duration reserves the 20-second maximum up front and refunds the difference once the actual length is known — set an explicit duration if your balance is tight
3start_video (video continuation) costs more than twice the text/image rate — use it for extending shots, not as a general input
4Three or more images form a storyboard and need an explicit duration
5Requests with image or video inputs are limited to safety_tolerance 2

Use Cases

Storyboard-driven shots where keyframes are fixed in advance
Extending a shot or chaining clips into a longer sequence
Cheap draft passes before a full-quality 1080p render
Animating a still image with matching sound

Model Info

ProviderBlack Forest Labs
Version3
CategoryVideo Generation
Price1980 credits

API Endpoint

POST /v1/predictions
Try in ConsoleBack to Docs