FLUX API: FLUX 3, FLUX 2, Kontext and FLUX 3 Video
Black Forest Labs now ships several FLUX image models and a video model. This guide covers which FLUX to use for which job, what each costs at every size and how to call them through one API.
The FLUX models on Revana
FLUX is Black Forest Labs' family of image models, and now a video model too. The catalogue carries the newest generation, FLUX 3, alongside FLUX 2 and the Kontext edit models. All take the same request format:
| Model | Model id | Does | Sizes | Reference images | Price from | Routes |
|---|---|---|---|---|---|---|
| FLUX 3 | flux-3 | text to image, editing | 1K, 1.5K, 2K, 4K | up to 10 | $0.05 / image | one route |
| FLUX 2 Pro | flux-2-pro | text to image, editing | 1 to 4 MP | up to 8 | $0.03 / image | two routes |
| FLUX 2 Max | flux-2-max | text to image, editing | 1 to 4 MP | up to 8 | $0.07 / image | one route |
| FLUX Kontext Pro | flux-kontext-pro | text to image, editing | model default | up to 4 | $0.04 / image | two routes |
| FLUX Kontext Max | flux-kontext-max | text to image, editing | model default | up to 4 | $0.07 / image | two routes |
| FLUX 3 Video | flux-3-video | text to video, image to video, with sound | draft, hd, fhd; 5 to 20 s | one start image | $0.06 / s | one route |
FLUX 2 sizes are given in megapixels (1MP to 4MP) with an auto aspect ratio option that follows your reference image. FLUX 3 uses the 1K to 4K names the other image models use.
Which FLUX to use
- FLUX 2 Pro is the workhorse: known for photoreal detail and reliable hands and faces, with up to eight references, from $0.03 per image at 1 MP. It has two routes.
- FLUX 3 is the newest image model and takes up to ten references. It costs $0.05 at 1K and $0.10 at 2K; its 4K setting is much dearer at $0.61, so only ask for 4K when you need it.
- FLUX 2 Max costs more per image at small sizes but less than FLUX 3 at its biggest: $0.16 at 4 MP.
- FLUX Kontext Pro and Max are built for editing by instruction with up to four pictures, at a flat price per image.
We do not publish quality rankings between them; try your prompts on two or three and compare.
FLUX image pricing (October 2026)
| Model | Size | Per image | 100 images |
|---|---|---|---|
| FLUX 3 | 1K | $0.05 | $5.00 |
| FLUX 3 | 1.5K | $0.07 | $7.00 |
| FLUX 3 | 2K | $0.10 | $10.00 |
| FLUX 3 | 4K | $0.61 | $61.00 |
| FLUX 2 Pro | 1 MP | $0.03 | $3.00 |
| FLUX 2 Pro | 2 MP | $0.05 | $5.00 |
| FLUX 2 Pro | 4 MP | $0.08 | $8.00 |
| FLUX 2 Max | 1 MP | $0.07 | $7.00 |
| FLUX 2 Max | 4 MP | $0.16 | $16.00 |
| FLUX Kontext Pro | one size | $0.04 | $4.00 |
| FLUX Kontext Max | one size | $0.07 | $7.00 |
FLUX 3 Video
FLUX 3 Video makes clips of 5 to 20 seconds from a prompt or a start image, with sound if you ask for it. It is billed per second of output at three quality levels:
| Setting | Per second | 10 s clip | 20 s clip |
|---|---|---|---|
| draft | $0.06 | $0.60 | $1.20 |
| hd | $0.17 | $1.70 | $3.40 |
| fhd | $0.29 | $2.90 | $5.80 |
Pass the setting in resolution. The draft setting is a cheap way to check motion and framing before you pay for fhd. For how this compares with other video models, see the best AI video API guide.
Generate a FLUX 2 Pro image
Send POST /v1/generations with the model id and an input, then poll until the job has succeeded or failed. This 2 MP image costs $0.05.
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-pro",
"input": {
"prompt": "Close-up portrait of a potter at her wheel, clay on her hands, late afternoon light through a dusty workshop window, 85mm lens look.",
"resolution": "2MP",
"aspect_ratio": "3:4"
},
"max_cost_usd": 0.1
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "flux-2-pro",
"input": {
"prompt": "Close-up portrait of a potter at her wheel, clay on her hands, late afternoon light through a dusty workshop window, 85mm lens look.",
"resolution": "2MP",
"aspect_ratio": "3:4",
},
"max_cost_usd": 0.1,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(3)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "flux-2-pro",
input: {
prompt: "Close-up portrait of a potter at her wheel, clay on her hands, late afternoon light through a dusty workshop window, 85mm lens look.",
resolution: "2MP",
aspect_ratio: "3:4",
},
max_cost_usd: 0.1,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);A FLUX 3 Video clip from a start image
For video, send a start frame in image_url, the length in duration and audio: true for sound. This 10 second hd clip costs $1.70:
{
"model": "flux-3-video",
"input": {
"prompt": "The potter slowly lifts the finished bowl from the wheel and turns it toward the light. Soft hum of the wheel winding down.",
"image_url": "https://example.com/potter.png",
"resolution": "hd",
"duration": 10,
"audio": true
},
"max_cost_usd": 2.1
}Each job's price is held from your balance when you submit and charged only if it succeeds. If a job fails, the hold is released and you pay nothing.
Every FLUX model is on the models page. The docs list every input field, and credit packs are on the pricing page. Get an API key to start.
Frequently asked questions
How much does the FLUX 3 API cost?
In October 2026, FLUX 3 costs $0.05 per image at 1K, $0.07 at 1.5K, $0.10 at 2K and $0.61 at 4K.
How much does FLUX 2 Pro cost?
From $0.03 per image at 1 megapixel up to $0.08 at 4 megapixels.
Can FLUX edit images?
Yes. FLUX 3 takes up to 10 reference images, FLUX 2 Pro and Max up to 8, and FLUX Kontext Pro and Max up to 4, all in image_urls.
Is there a FLUX video API?
Yes. FLUX 3 Video makes 5 to 20 second clips from text or a start image, with optional sound, from $0.06 per second at the draft setting.
What sizes does FLUX 2 take?
Sizes are in megapixels: 1MP, 2MP, 3MP or 4MP, with aspect ratios from 21:9 to 9:21 or auto.
Try FLUX with one key
One API key for every FLUX model and every other image and video model. Prepaid credit from $10, charged only for jobs that succeed.