Comparação

FLUX vs Midjourney: which image model to use through an API

FLUX from Black Forest Labs and Midjourney are two of the best-known image models, and they suit different jobs. FLUX is sized by the megapixel or up to 4K and edits your own photos; Midjourney returns four art-directed pictures per request. Both run on one Revana API key, priced per image. Here are the prices, the differences, and code that sends one prompt to both.

FLUX vs Midjourney at a glance

Four FLUX models and Midjourney V7 are on the same key. Each takes the same POST /v1/generations request:

FLUX models and Midjourney V7 compared
ModeloBest atTamanhosImagens de referênciaPreço
FLUX.2 ProPhotoreal product and lifestyle shots1 to 4 megapixelsAté 8$0.03 an image
FLUX 3Detailed pictures up to 4K768 square to 4KAté 10$0.05 an image
FLUX 3 KleinThe lowest price per picture768 square to 4KAté 10$0.01 an image
FLUX Kontext ProEdits that change one thing and keep the restOne sizeAté 4$0.04 an image
Midjourney V7Art-directed, painterly pictures from short promptsSet by aspect_ratioYes, in image_url$0.06 a request of 4

The FLUX API guide covers every FLUX model, and the Midjourney API pricing guide covers relax, fast and turbo.

Price per image and per 1,000

Midjourney is priced per request, and every request returns four pictures, so its per-picture price assumes you keep all four. FLUX is priced per picture:

FLUX and Midjourney cost per image and per 1,000 images
ModeloConfiguraçãoPor imagem1,000 pictures
FLUX 3 Kleinresolution: 1K$0.01$10.00
Midjourney V7quality: relax$0.015$15.00
Midjourney V7quality: fast$0.0175$17.50
FLUX.2 Proresolution: 1MP$0.03$30.00
Midjourney V7quality: turbo$0.0325$32.50
FLUX Kontext Proum tamanho$0.04$40.00
FLUX 3resolution: 1K$0.05$50.00

Bigger FLUX sizes cost more: FLUX.2 Pro is $0.08 at 4 megapixels and FLUX 3 Klein is $0.04 at 4K. Failed images are never charged.

Where they differ

  • Pictures per request. Midjourney V7 returns four pictures per request, which suits picking by eye. FLUX returns one picture, or up to 4 with num_images, each billed as one.
  • Size. FLUX.2 Pro is sized in megapixels, from 1 to 4, with shapes from 21:9 to 9:21. FLUX 3 and FLUX 3 Klein go from 768 square up to 4K. Midjourney V7 is priced by speed, not size.
  • Speed. Midjourney’s relax, fast and turbo set how fast a job runs, and the price. FLUX has one speed per model.
  • Editing your own pictures. FLUX.2 Pro takes up to 8 reference pictures and FLUX 3 up to 10. FLUX Kontext is made for edits that change one thing and keep the rest. Midjourney V7 takes a reference picture too.
  • Style. Midjourney is known for a painterly, cinematic look from short prompts. FLUX suits photoreal pictures that stick to a detailed prompt.

Which one to pick

  • Product photos, catalog and lifestyle shots. FLUX.2 Pro.
  • Edits of your own pictures. FLUX Kontext Pro or FLUX.2 Pro. The image editing API guide has the requests.
  • The lowest price at volume. FLUX 3 Klein at $0.01 a picture.
  • Moodboards, concept art and the Midjourney look. Midjourney V7 on relax, $0.015 a picture.
  • Words in the picture. Neither is the specialist: use Ideogram (see the Ideogram API guide) or Nano Banana Pro.

Send one prompt to both

This loop sends the same prompt to Midjourney V7, FLUX.2 Pro and FLUX 3 Klein, with a cap on each job:

Python
import os
import time
import uuid

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
PROMPT = "A lighthouse on a cliff in a storm, waves breaking, dramatic light through the clouds."

# The same prompt on three models. Only the model id and its own settings change.
JOBS = {
    "midjourney-v7": {"quality": "relax"},
    "flux-2-pro": {"resolution": "1MP"},
    "flux-3-klein": {"resolution": "1K"},
}

started = {}
for model, settings in JOBS.items():
    # One Idempotency-Key per job, made once: resend with the same key after a timeout,
    # a 429 or a 5xx and you get the same job back, never a second charge.
    key = str(uuid.uuid4())
    resp = requests.post(f"{API}/generations", headers={**HEADERS, "Idempotency-Key": key}, json={
        "model": model,
        "input": {"prompt": PROMPT, "aspect_ratio": "16:9", **settings},
        "max_cost_usd": 0.1,  # your cap per job
    })
    resp.raise_for_status()
    started[model] = resp.json()["id"]

for model, gen_id in started.items():
    job = requests.get(f"{API}/generations/{gen_id}", headers=HEADERS).json()
    while job["status"] in ("queued", "running"):
        time.sleep(5)
        job = requests.get(f"{API}/generations/{gen_id}", headers=HEADERS).json()
    if job["status"] == "succeeded":
        print(model, job["output"]["urls"], job["cost_usd"])
    else:
        print(model, "failed (free):", job["error"])

Or one model from the shell. This FLUX.2 Pro picture at 2 megapixels costs $0.05:

cURL
export REVANA_API_KEY="sr_live_..."

# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)

# 1. Submit the job (returns 202 with the generation id). max_cost_usd is your cap: the most it may cost.
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $KEY" \
  -d '{
    "model": "flux-2-pro",
    "input": {
      "prompt": "A lighthouse on a cliff in a storm, waves breaking, dramatic light through the clouds.",
      "resolution": "2MP",
      "aspect_ratio": "16:9"
    },
    "max_cost_usd": 0.1
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed".
#    A failed job is free; make a new KEY before you submit it again.
curl https://api.revana.si/v1/generations/gen_01JC4M2R8D \
  -H "Authorization: Bearer $REVANA_API_KEY"

A setting a model does not list (a resolution, a length, an aspect ratio) comes back straight away as 422 invalid_input, with the values it does take, and nothing is charged.

See every image model with its live price on the models page, top up on the pricing page, read the request reference in the docs, or get an API key.

Perguntas frequentes

Is FLUX better than Midjourney?

For different jobs. FLUX suits photoreal product shots, detailed prompts and edits of your own pictures. Midjourney suits art-directed, painterly pictures from short prompts. On one API key you can send the same prompt to both and compare.

Is FLUX cheaper than Midjourney?

FLUX 3 Klein is the cheapest at $0.01 a picture. Midjourney V7 on relax is $0.06 a request of four, so $0.015 a picture, below FLUX.2 Pro at $0.03, in November 2026.

Can I call Midjourney through an API?

Yes. Midjourney V7 is on the same key as FLUX at $0.06 a request on relax, paid from prepaid credit, with no Midjourney plan to buy.

Which FLUX model should I use?

FLUX.2 Pro for photoreal shots sized 1 to 4 megapixels, FLUX 3 for detailed pictures up to 4K, FLUX 3 Klein for the lowest price, and FLUX Kontext Pro for edits that keep the rest of the picture.

Can both edit my own pictures?

Yes. FLUX.2 Pro takes up to 8 reference pictures, FLUX 3 and FLUX 3 Klein up to 10, FLUX Kontext Pro up to 4, and Midjourney V7 takes a reference picture in image_url.

Am I charged for a failed image?

No. The price is held when you submit and released if the job fails, so a failed image costs nothing.

Try it first: run Flux 2 Pro free or Flux 3 free in your browser. Your first request is free once you save a card at sign-up (saving it charges nothing).

Run FLUX and Midjourney on one key

One API key for FLUX, Midjourney, Nano Banana Pro, GPT Image 2, Seedream and Ideogram. Prepaid credit from $10, charged only for images that are delivered.