Free to try Flux 3 Text-to-Video AI Model API by Black Forest Labs for native-audio video, expressive motion, multilingual dialogue, and multimodal scene creation.
// Step 1: Submit generation request
const response = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'flux-3.0-text-to-video',
prompt: 'A cinematic aerial shot of a coastal city at sunrise',
resolution: '1080p',
aspect_ratio: '16:9',
duration: 10,
sound: true
})
});
const { data } = await response.json();
const taskId = data.;
Black Forest Labs FLUX 3 Text-to-Video API turns natural-language prompts into polished video with optional native audio. Built on a unified multimodal foundation model trained across image, video, and sound, FLUX 3 can coordinate motion, physical events, speech, effects, and atmosphere within one generation workflow. Through Best Image AI, developers and creative teams can integrate expressive text-to-video generation into production pipelines for advertising, storytelling, social content, and visual experimentation.
Note
Please ensure prompts and content generated with FLUX 3 comply with Black Forest Labs' usage and safety requirements. If a request fails, review the prompt for restricted content, simplify conflicting instructions, and try again.
FLUX 3 vs. FLUX.2
FLUX.2 focuses on high-quality image generation and editing. FLUX 3 extends the FLUX family into prompt-driven video
and optional native audio through a unified multimodal architecture.
FLUX 3 vs. Veo 3.1 Text-to-Video
Veo 3.1 provides cinematic video and audio generation within Google's creative ecosystem. FLUX 3 offers a distinct
API option centered on broad stylistic range, expressive performance, typography, and multimodal world modeling.
FLUX 3 vs. Kling 3.0 Text-to-Video
Kling 3.0 is designed for controllable motion and cinematic scene generation. FLUX 3 differentiates through joint
video-audio reasoning, multilingual speech, varied visual styles, and connected multi-scene creation.
FLUX 3 vs. Runway Gen-4.5
Runway Gen-4.5 emphasizes visual fidelity, prompt adherence, and integration with established creative tooling. FLUX
3 combines API-based video generation with optional native audio, animated design, and a multimodal model of physical
events.
FLUX 3 vs. Seedance 2.0
Seedance 2.0 supports multimodal references, audiovisual generation, and production-oriented control. FLUX 3 provides
an alternative focused on unified image-video-audio learning, diverse aesthetics, expressive characters, and flexible
prompt-led workflows.
// Step 2: Poll for results
const taskId = data.task_id;
const pollResult = async (taskId) => {
const res = await fetch(`https://api.flaq.ai/api/v1/video/${taskId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
return res.json();
};
while (true) {
const pollResultData = await pollResult(taskId);
const status = pollResultData.data.task_status;
if (status === 'succeed') {
console.log(pollResultData.data.task_result.videos[0].url);
break;
}
if (status === 'failed') {
console.error(pollResultData.data.task_status_msg);
break;
}
await new Promise(resolve => setTimeout(resolve, 10000));
}
# Step 1: Submit generation request
import requests
response = requests.post(
'https://api.flaq.ai/api/v1/video/task',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
json={
'model_name': 'flux-3.0-text-to-video',
'prompt': 'A cinematic aerial shot of a coastal city at sunrise',
'resolution': '1080p',
'aspect_ratio': '16:9',
'duration': 10,
'sound': True
}
)
result = response.json()
task_id = result['data']['task_id']
# Step 2: Poll for results
task_id = response.json()['data']['task_id']
poll_url = f"https://api.flaq.ai/api/v1/video/{task_id}"
while True:
poll_result = requests.get(poll_url, headers={'Authorization': 'Bearer YOUR_API_KEY'}).json()
status = poll_result['data']['task_status']
if status == 'succeed':
print(poll_result['data']['task_result']['videos'][0]['url'])
break
if status == 'failed':
print(poll_result['data']['task_status_msg'])
break
time.sleep(10)
# Step 1: Submit generation request
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model_name": "flux-3.0-text-to-video",
"prompt": "A cinematic aerial shot of a coastal city at sunrise",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 10,
"sound": true
}'
# Step 2: Poll for results
# Replace {task_id} with the task_id returned from the submit response
curl -X GET "https://api.flaq.ai/api/v1/video/{task_id}" \
-H "Authorization: Bearer YOUR_API_KEY"