Model guide

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:

FLUX models compared
ModelModel idDoesSizesReference imagesPrice fromRoutes
FLUX 3flux-3text to image, editing1K, 1.5K, 2K, 4Kup to 10$0.05 / imageone route
FLUX 2 Proflux-2-protext to image, editing1 to 4 MPup to 8$0.03 / imagetwo routes
FLUX 2 Maxflux-2-maxtext to image, editing1 to 4 MPup to 8$0.07 / imageone route
FLUX Kontext Proflux-kontext-protext to image, editingmodel defaultup to 4$0.04 / imagetwo routes
FLUX Kontext Maxflux-kontext-maxtext to image, editingmodel defaultup to 4$0.07 / imagetwo routes
FLUX 3 Videoflux-3-videotext to video, image to video, with sounddraft, hd, fhd; 5 to 20 sone start image$0.06 / sone 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)

FLUX image price by size
ModelSizePer image100 images
FLUX 31K$0.05$5.00
FLUX 31.5K$0.07$7.00
FLUX 32K$0.10$10.00
FLUX 34K$0.61$61.00
FLUX 2 Pro1 MP$0.03$3.00
FLUX 2 Pro2 MP$0.05$5.00
FLUX 2 Pro4 MP$0.08$8.00
FLUX 2 Max1 MP$0.07$7.00
FLUX 2 Max4 MP$0.16$16.00
FLUX Kontext Proone size$0.04$4.00
FLUX Kontext Maxone 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:

FLUX 3 Video price per second and per clip
SettingPer second10 s clip20 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.

cURL
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"
Python
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.js
// 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:

Request body
{
  "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.