Black Forest Labs
FLUX 3 Max
flux-3-max/text-to-video
A video generation model that supports text-to-video and image-to-video, focused on low-latency, fast turnaround; public benchmarks report roughly 11–12 seconds to generate a 10-second clip, making it well suited to creative iteration and short-video assets
Try flux-3-max/text-to-video
Input
Showcases
View all showcasesOutput
videoPricing
flux-3-max/text-to-video per second
| Specifications | Unit Price |
|---|---|
| 720P | $0.0608 |
| 1080P | $0.1036 |
Overview
flux-3-max/text-to-video is the text-only input video generation route in the flux-3-max series. Developers only need to submit a prompt to generate a video clip with synchronized audio at the specified duration, resolution, and aspect ratio. This route supports durations from 5 to 20 seconds, 720p and 1080p resolutions, and provides reasoning intensity adjustment to balance complex scene fidelity against generation latency. It is suitable for creators and product teams that need rapid concept validation, draft storyboards, and marketing short videos, invoked through the unified HiAPI.ai interface without needing to integrate multiple upstream protocols.
Key Highlights
- Prompt-to-video, no source material required — Video generation is completed by submitting only a text prompt, ideal for zero-based creative exploration and batch output.
- Wide controllable range of duration and aspect ratio — Duration can be specified between 5 and 20 seconds, with eight aspect ratio options from 21:9 to 9:16, directly matching distribution channel ratios.
- Native synchronized audio — Synchronized audio is generated alongside the video by default, eliminating separate post-production dubbing and audio alignment steps.
- Adjustable reasoning intensity — reasoning_level offers low and high settings; high is better suited for complex scenes, while low focuses on reducing wait times.
Capabilities
Direct text-to-video generation: A prompt of up to 6000 characters serves as the only required input, returning a complete video file, ideal for quickly converting text scripts into previewable dynamic assets.
Duration and resolution configuration: A single generation can specify a duration of 5 to 20 seconds and choose between 720p and 1080p, making it easy to match clarity and duration budgets to placement positions.
Multiple aspect ratio outputs: Supports eight ratios: auto, 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, and 9:16, enabling both vertical short videos and widescreen materials within the same route.
Synchronized audio generation: generate_audio is enabled by default, producing a synchronized audio track alongside the visuals, reducing post-processing steps for the final output.
Prompt reasoning intensity switching: reasoning_level controls prompt parsing depth; complex orchestration scenarios can use high, while prioritizing throughput calls for low.
Use Cases
- Script concept validation for creative teams — Directly generate short videos from a text idea for internal review and direction screening, reducing the back-and-forth cost of storyboarding before rendering.
- Marketing and social media short video production — Batch-generate product and brand short video assets in ratios such as 9:16 or 16:9, feeding directly into distribution and editing workflows.
- Storyboard previews and draft production — Generate 5 to 20-second clips using cinematic prompts as dynamic draft references before formal production.
- Video experimentation for independent creators — Leverage adjustable reasoning intensity and multiple aspect ratio options to test different visual styles and pacing at low cost.
Limitations and Selection Advice
This route accepts text input only; when reference images are needed to constrain the visuals, switch to the image-to-video or keyframe routes in the same series. Public materials mainly cover 720p and approximately 10-second specifications. When prompt descriptions are overly complex or durations are extended, it is recommended to first run small-batch generations to verify whether visuals and audio meet standards. Generation speed data in public benchmarks comes from vendor-side environments; actual time consumption is affected by prompts, load, and deployment conditions. For projects with high requirements for deterministic image quality and long-form narrative, it is recommended to evaluate sample clips before scaling up.
What's new
View changelog →- New model flux-3-max/text-to-video video generation model now available
- Price update flux-3-max/text-to-video Pricing Adjustment
- Price update flux-3-max/image-to-video price update: new pricing at $0.0608
Frequently asked questions
View all FAQs →-
What inputs does FLUX 3 Max Image to Video need?
prompt and image_url (the first frame, PNG/JPEG/WebP) are required. Optional: end_image_url as the last frame, plus duration, resolution, aspect_ratio, generate_audio and reasoning_level.
-
Can I set the video length?
Yes. duration accepts whole seconds from 5 to 20, 5 by default. Image to video shares the same per-second pricing as text to video, and a 5-second check shows whether the source stays stable.
-
What decides the aspect ratio?
aspect_ratio defaults to auto, which follows the first frame's ratio. You can also set 21:9, 2:1, 16:9, 4:3, 1:1, 3:4 or 9:16. If a manual ratio differs from the image, the frame may be cropped.
-
How do first and last frames work?
Pass the first frame in image_url and the last in end_image_url; the video moves from one to the other. The prompt only needs to describe the change in between, and the closer the two frames match in framing and light, the smoother the transition.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: flux-3-max/text-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for flux-3-max/text-to-video and route default — see the parameter table below.
promptstringRequiredminLength 1maxLength 6000Text description of the video to generate, which determines the visual content and how the scene unfolds.
durationintegerOptionalDefault: 5min 5max 20Output video duration in seconds, ranging from 5 to 20, default 5.
resolutionstringOptionalDefault: "720p"Resolution of the output video, default 720p.
720p1080paspect_ratiostringOptionalDefault: "auto"Aspect ratio of the output video, default auto, meaning it follows the input image.
auto21:92:116:94:31:13:49:16generate_audiobooleanOptionalDefault: trueWhether to generate audio synchronized with the video, default true.
reasoning_levelstringOptionalDefault: "high"Controls the reasoning intensity when parsing the prompt; set to high to improve performance on complex scenes, at the cost of higher latency, default high.
lowhighcallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-3-max/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "auto",
"generate_audio": true,
"reasoning_level": "high"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "flux-3-max/text-to-video",
input: {
"prompt": "…",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "auto",
"generate_audio": true,
"reasoning_level": "high"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "flux-3-max/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "auto",
"generate_audio": True,
"reasoning_level": "high"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Gemini Omni Google -- -
Seedance 2.0 ByteDance $0.017 /second -
Grok Imagine 1.5 xAI $0.011 /second -
Veo 3.1 Lite Google $0.060 /second -
Wan 3.0 Video Alibaba $0.040 /second -
PixVerse V6 PixVerse $0.036 /second -
Veo 3.1 Google $0.290 /second -
Creatify Boreal Creatify $0.015 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
Vidu Q4 Preview Vidu $0.051 /second -
Gemini Omni 1.1 Flash Google $0.450 /video -
FLUX 3 Video Black Forest Labs $0.090 /second
Same Provider
-
FLUX 3 Video Black Forest Labs $0.090 /second -
FLUX.2 Black Forest Labs $0.035 /image -
FLUX 3 Image Black Forest Labs $0.041 /image -
FLUX.2 Klein 9B Black Forest Labs $0.0086 /image -
FLUX.1 Fill Pro Black Forest Labs $0.071 /image -
FLUX.1 Schnell Black Forest Labs $0.005 /image -
FLUX.1 Kontext Max Black Forest Labs $0.071 /image -
FLUX 3 Max Black Forest Labs $0.061 /second -
FLUX 1.1 Pro Black Forest Labs $0.050 /image -
FLUX.2 Klein 4B Black Forest Labs $0.0004 /image