Home › Guides › FLUX variants

Choosing among the FLUX models in the catalog

Updated 2026-10-02

FLUX is a family from Black Forest Labs, and the catalog carries more of its members than most people expect: the FLUX.2 line in dev, pro, max, flex and two klein sizes, flux-3-image, the Kontext editing models, and earlier FLUX.1 entries. The naming does not tell you which to pick. This page separates what VideoRouter's documentation and catalog actually say about each group from what you have to measure yourself. It makes no claims about relative image quality, because none are documented.

Get the exact ids first

Slugs vary in case and punctuation across the catalog (for example flux-3-image and flux-kontext-pro versus the FLUX.2 names), so do not type them from memory. List them:

import requests

models = requests.get("https://videorouter.sh/api/v1/images/models",
                      headers={"Authorization": "Bearer llmr_sk_live_..."}).json()["data"]
flux = sorted(m["id"] for m in models if "flux" in m["id"].lower())
print(flux)

GET /v1/images/models is unbilled and returns bare ids; the models index has the per-model pages with hosts and prices.

The groups, and what is known

GroupWhat the catalog tells youWhat you must test
FLUX.2 devThe [dev] checkpoint of FLUX.2. Re-served by several hosts, and some price it per output megapixel, so the size you request changes the cost.Output quality against pro or max on your prompts; whether its pricing basis suits your sizes.
FLUX.2 pro, max, flexSeparate model ids, each with its own hosts. Pricing basis varies by host: some flat per image, some tiered or per megapixel.What each adds over the others for your content. The names signal tiers, not documented behaviours.
FLUX.2 klein (two sizes)Two separate ids with a size in the name.Whether the smaller one is good enough for drafts. Do not assume speed or quality from the name.
flux-3-imageA newer BFL model. The docs state one endpoint covers text-to-image and editing, with up to 10 reference images.Whether it beats FLUX.2 on your prompts, and how many references your workflow really needs.
Kontext (pro, max)Black Forest Labs' editing-oriented models. Catalog entries exist for both.Edit fidelity versus your reference images, compared against flux-3-image editing.
FLUX.1 entriesEarlier generation ids remain in the catalog.Whether you have a reason to stay on them, such as an existing prompt library.

One important detail: not every FLUX id accepts input_references. Only edit-capable models do. If your product needs editing, shortlist flux-3-image and the Kontext ids first rather than discovering a 400 later.

A decision order that works

  1. Do you need image-to-image? If so, restrict to the edit-capable ids above. Everything else is text-to-image only.
  2. Do you control output size? Per-megapixel pricing on some hosts means large sizes cost more on those. Flat-priced ids are easier to budget. The model page states the basis.
  3. What is the stage? Exploration and thumbnails are where a smaller or cheaper variant earns its place. Delivery assets are where you compare the top ids.
  4. Which host? The same id may be sold by several hosts at different prices. Let routing pick the cheapest healthy one unless you have a reason to pin. The model/host suffix expresses a preference and still allows fallback.

An A/B harness

import itertools, json, requests

API = "https://videorouter.sh/api/v1"
H = {"Authorization": "Bearer llmr_sk_live_..."}
SHORTLIST = ["flux-3-image", "flux-kontext-pro"]   # plus the FLUX.2 ids from /images/models
PROMPTS = json.load(open("prompts.json"))          # 20-30 prompts that look like your traffic

rows = []
for model, (i, prompt) in itertools.product(SHORTLIST, enumerate(PROMPTS)):
    r = requests.post(f"{API}/images", headers=H,
                      json={"model": model, "prompt": prompt, "aspect_ratio": "1:1"}).json()
    rows.append({"model": model, "prompt_id": i, "cost": r["usage"]["cost"],
                 "image": r["data"][0].get("b64_json") or r["data"][0].get("url")})
json.dump(rows, open("ab_run.json", "w"))

Keep everything but model constant, including size. Then shuffle and strip model names, have the people who accept the output score each image against a short rubric (prompt adherence, text legibility, subject fidelity, artifacts), and join the scores back to the cost you logged. Compare cost per accepted image, not list price. Kontext and flux-3-image need a second run with input_references on your real edit inputs, scored on how well the original subject is preserved.

Common selection mistakes

Live comparison

ModelCheapest hostPriciest hostCheapest isHosts
black-forest-labs/flux.2-devMachGen
$0.0031 / image
Fal
$0.012 / image
74% lower2
google/nano-banana-2MachGen
$0.034 / image
Fal
$0.08 / image
57% lower2
google/nano-banana-proMachGen
$0.0672 / image
Fal
$0.15 / image
55% lower2
black-forest-labs/flux.2-proDeepInfra
$0.015 / image
Black Forest Labs
$0.03 / image
50% lower3
black-forest-labs/FLUX.1-devDeepInfra
$0.009 / image
SiliconFlow
$0.014 / image
36% lower2
alibaba/wan-2.6Atlas Cloud
$0.021 / image
DeepInfra
$0.03 / image
30% lower2
black-forest-labs/flux.2-maxBlack Forest Labs
$0.07 / image
DeepInfra
$0.1 / image
30% lower3
seedream-5.0-proAtlas Cloud
$0.036 / image
WaveSpeedAI
$0.045 / image
20% lower3
recraft-4.1WaveSpeedAI
$0.04 / image
Pika
$0.042 / image
5% lower2
bytedance/seedream-4.0WaveSpeedAI
$0.027 / image
DeepInfra
$0.04 / image
33% lower4
bytedance/seedream-5.0-liteAtlas Cloud
$0.0315 / image
WaveSpeedAI
$0.035 / image
10% lower4
qwen-image-maxWaveSpeedAI
$0.07 / image
DeepInfra
$0.075 / image
7% lower2

Per image, before VideoRouter's 2% platform fee. For tiered models each row compares the resolution tier with the widest host-to-host gap. Built 2026-10-02 from the live catalog.

Use the table to see the cheapest and priciest host for each FLUX id and how wide the gap is. Because it is rebuilt from the catalog, re-check it when you are about to commit to a volume. When you have a winner, keep the model id in config rather than in code, and re-run the harness when Black Forest Labs ships a new version.

See the cross-family comparison for FLUX against other families, the GPT Image parameter guide for the OpenAI-only controls that do not apply to FLUX, the quickstart for a first request, and videorouter.sh/signup for a key.

Frequently asked questions

Which FLUX models can edit existing images?

VideoRouter's docs state flux-3-image supports editing with up to 10 reference images, and the Kontext models are editing-oriented. Only edit-capable models accept input_references.

Is FLUX pro better than dev?

VideoRouter's documentation makes no quality claim either way. Run the same prompts through both and compare cost per accepted image on your own content.

Why does FLUX cost vary with image size on some hosts?

Some hosts price certain FLUX ids per output megapixel, so a larger size costs more. Others charge a flat amount per image. The model page states the pricing basis.

How do I get the exact FLUX model ids?

Call GET /v1/images/models, which is unbilled, and filter for flux. Slugs differ in case and punctuation across the catalog.

Keep reading

Using image generation is one part of the job.

VideoRouter puts it next to dozens of other video and image models behind one API key, so you can compare providers, prices and fail over automatically. Compare providers on VideoRouter →