Flux Family

FLUX — The Image Models Built to Be Built On

FLUX is a family of image generation models from Black Forest Labs, and it became the default across the open ecosystem for a specific reason: the tooling grew around it. Adapters, fine-tunes, and workflows target FLUX first, which makes it the shortest path from an idea to a working image pipeline. The family spans a fast tier for high-volume generation through to flagship models with precise prompt adherence and reliable text rendering inside the image. On DEVUP AI it is the default engine behind the image generation endpoint, called with one API key and billed in Algerian Dinar.

Flux logo
Overview & Architecture

FLUX earned its position through the ecosystem rather than through any single benchmark. When a new adapter, a new fine-tune, or a new workflow appears, it targets FLUX first and generalises outward afterwards. For anyone building an image feature rather than admiring one, that matters more than a marginal quality difference: the technique you need probably already exists, and the community that solved your problem probably solved it here.

The family is organised into tiers with a clear split in purpose. A fast tier generates in very few steps, which makes it the right engine for exploration, drafts, and high-volume work where turnaround decides whether a pipeline is viable. Flagship tiers trade speed for precision — closer adherence to a long prompt, more reliable rendering of text inside the image, and finer control over composition. Because they share an interface, moving between them is a change to the model field rather than a rewrite.

Two capabilities separate this family from most image generation in practice. Text inside images renders legibly enough to be usable, which is what makes signage, packaging mockups, labels, and interface graphics viable rather than approximate. And LoRA adapters allow a model to be specialised to a style, a product, or a character without retraining anything — the mechanism behind consistent brand imagery at scale.

On DEVUP AI, FLUX is the default engine behind the image generation endpoint: a request that names no model reaches it. The endpoint follows the OpenAI-compatible shape, so existing code needs a base URL and a key rather than a new integration. Every response carries the cost of the request and your remaining balance, and generated images are returned as a signed URL valid for five minutes or as inline bytes, whichever suits your pipeline.

Available Flux Models

Deploy and access all published models in this family with unified DZD pricing and zero foreign card requirement.

ModelContextDZD in / 1M tokensDZD out / 1M tokensActions
FLUX-2-klein-4bblack-forest-labs/FLUX-2-klein-4bImage Tokens4.9 DZD × (width / 1024) × (height / 1024)View model
FLUX-2-klein-9bblack-forest-labs/FLUX-2-klein-9bImage Tokens5.25 DZD × (width / 1024) × (height / 1024)View model
FLUX-1-Redux-devblack-forest-labs/FLUX-1-Redux-devImage Tokens4.2 DZD × (width / 1024) × (height / 1024) × (steps / 25)View model
FLUX-1-devblack-forest-labs/FLUX-1-devImage Tokens3.15 DZD × (width / 1024) × (height / 1024) × (steps / 25)View model
FLUX-1-schnellblack-forest-labs/FLUX-1-schnellImage Tokens0.175 DZD × (width / 1024) × (height / 1024) × (steps / 25)View model
FLUX-1.1-problack-forest-labs/FLUX-1.1-proImage Tokens14 DZD / imageView model
FLUX-2-devblack-forest-labs/FLUX-2-devImage Tokens3.5 DZD × (width / 1024) × (height / 1024) × (steps / 28)View model
FLUX-2-maxblack-forest-labs/FLUX-2-maxImage Tokens24.5 DZD / imageView model
FLUX-2-problack-forest-labs/FLUX-2-proImage Tokens5.25 DZD / imageView model
FLUX-problack-forest-labs/FLUX-proImage Tokens16.3333 DZD / imageView model

Call any Flux model

Every model on this page uses the same API key and standard OpenAI-compatible endpoint. The example below uses the featured model black-forest-labs/FLUX-2-pro.

import urllib.request
from openai import OpenAI

client = OpenAI(
    api_key="$DEVUP_API_KEY",
    base_url="https://api.devupai.com/v1",
)

response = client.images.generate(
    model="black-forest-labs/FLUX-2-pro",
    prompt="A photo of an astronaut riding a horse on Mars.",
    size="1024x1024",
    n=1,
)

image_url = response.data[0].url
with urllib.request.urlopen(image_url) as res:
    image_bytes = res.read()

with open("output.png", "wb") as f:
    f.write(image_bytes)
import DevupAI from "devupai";
import { writeFile } from "node:fs/promises";

const client = new DevupAI({
  apiKey: process.env.DEVUP_API_KEY,
});

const response = await client.images.generate({
  model: "black-forest-labs/FLUX-2-pro",
  prompt: "A photo of an astronaut riding a horse on Mars.",
  size: "1024x1024",
  n: 1,
});

const image = await fetch(response.data[0].url);
await writeFile("output.png", Buffer.from(await image.arrayBuffer()));
curl -X POST "https://api.devupai.com/v1/images/generations" \
  -H "Authorization: Bearer $DEVUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "black-forest-labs/FLUX-2-pro",
    "prompt": "A photo of an astronaut riding a horse on Mars.",
    "size": "1024x1024",
    "n": 1
  }'

Frequently Asked Questions

Start with the fast tier for exploration. It generates in a fraction of the steps a flagship model needs, and composition, framing, and lighting are all visible in its output — which is everything a draft has to answer. Once the image is right, regenerate the final version on a flagship model. Most of what you were choosing between was visible at the cheaper tier all along.

The response returns a signed URL in data[0].url, valid for five minutes. Download the bytes when the response arrives rather than storing the URL — after expiry the proxy returns 403. If your pipeline cannot fetch within that window, request response_format: "b64_json" instead and the image comes back inline as Base64. Only those two values are accepted; anything else returns a 400.

Yes, and it is one of the family's practical strengths — enough to make signage, packaging, labels, and interface graphics workable rather than approximate. Keep the text short, quote it exactly in the prompt, and say where it should appear. Then proofread every character before publishing: legible is not the same as correct, and a misspelled brand name is worse than no text at all.

A LoRA adapter specialises a model toward a particular style, subject, or product without retraining the model itself. It is the standard way to produce consistent imagery at scale — the same character across a series, the same product across a catalogue, the same house style across a campaign. FLUX has the widest adapter ecosystem of any open image family, which is often the deciding reason to build on it.

No. They are accepted for compatibility with code written against other image APIs, and they have no effect. Control output through the prompt, the size, and the model you choose. If you are porting an integration that relied on them, that logic needs to move into the prompt.

Image generation is not deterministic. The same prompt produces a different image on each run, which is why iteration works by generating several and choosing, rather than by refining one. Keep the file you like — regenerating from the prompt will not bring it back.

Yes. The n parameter controls how many. For exploring a concept this is more efficient than repeated calls: one request, several directions to react to, one wait instead of several.