PL Log inOpen Studio
Preview version. Model catalog, prices, calculator and docs are live. Generation goes live at launch.

Need Midjourney-Style Images From Code? Six Image Models With a Real API

Midjourney has no public API, so here are six image models with official REST access and per-image billing, from Nano Banana Pro to Z-Image, with code.

Midjourney is used through midjourney.com or a Discord bot, it is sold as a subscription, and it has no official public API. When you need images that your code can request and that you pay for one at a time, look at models whose producers do provide API access: Nano Banana Pro (from $0.07 per image), GPT Image 2.5 ($0.05 per image), Seedream 5.0 Pro, FLUX.2 [pro], Imagen 4.0 and the low-cost Z-Image Turbo ($0.02 per image). Kadraris puts all six behind one key and one prepaid balance.

What follows: a quick map of which model fits which job, a test I ran on one long prompt, how Midjourney flags translate, and the code.

Pick by job

  • One polished hero image, cover or ad: Nano Banana Pro.
  • A long, detailed prompt where nothing may be missing: GPT Image 2.5. For long chains of edits, GPT Image 2.5 Sunburst.
  • A poster or cover full of words: Seedream 5.0 Pro.
  • A scene assembled from several reference photos: FLUX.2 [pro].
  • Simple prompt-only images, no uploads: Imagen 4.
  • Cheap checks of layout and light: Z-Image, before paying for a larger model.
ModelProducerReferencesOutput
Nano Banana ProGoogleup to 1410 ratios, 1K to 4K
GPT Image 2.5OpenAIup to 163 pixel sizes or auto
Seedream 5.0 ProByteDanceup to 108 ratios, 1K to 2K
FLUX.2 [pro]Black Forest Labsup to 87 ratios, 1K to 2K
Imagen 4.0Googlenone5 ratios
Z-Image TurboAlibabanone5 ratios

Each request returns a single image. Prices: Seedream 5.0 Pro from $0.0783 per image, FLUX.2 [pro] from $0.0688 per image, Imagen 4 $0.115 per image. A "from" price means bigger outputs cost more. For deeper testing see Nano Banana Pro, GPT Image 2.5 or FLUX.2; there are also pair pages for Google's model against OpenAI's and FLUX.2 against Nano Banana.

Kraków at dusk: a long-prompt test

On October 1, 2026 I sent one long prompt to several image models. The scene: the old market square in Kraków as evening falls, six Polish shop signs, a newsstand headline saying "MIASTO BEZ KORKÓW?" and a number 8 tram. Each model ran once at its highest resolution. I wrote it up in Polish as a FLUX 3 4K test. Three of the tested models are on Kadraris:

Nano Banana Pro version of the evening market square
Nano Banana Pro: 7 of 8 text strings right, 38 s
Seedream 5.0 Pro: street-level view with people, pigeons and the newsstand headline
Seedream 5.0 Pro: 8 of 8 strings, eye-level framing, 63 s
GPT Image 2.5 Sunburst version with church towers and the tram
GPT Image 2.5 Sunburst: 8 of 8 strings and the most requested elements, 45 s

My takeaways:

  • All three coped with small non-English signs full of accents, which still trips many image models.
  • GPT Image 2.5 Sunburst fit in the largest share of what was asked: the kiosk, the tram, the church towers.
  • Seedream 5.0 Pro chose a documentary street view, and its file was smaller than requested (2728 x 1536 px).
  • Nano Banana Pro gave the most postcard-like light, with one text mistake.

In the same series Seedream 5.0 Pro earned 9/10 from me on a portrait, a prompt that quickly reveals problems with skin, fingers and light from a window:

Seedream 5.0 Pro: freckled grey-bearded man with a steaming cup by a window
Seedream 5.0 Pro in my ranking: freckles, steam and both hands right, 9/10

Midjourney and APIs: where things stand (October 2026)

Based on Midjourney's docs, terms and pricing page; check midjourney.com for changes.

  • There is no official API: no keys, no public endpoints. You create images on midjourney.com or with the Discord bot.
  • Automation is not allowed by the terms of service. Anything marketed as a "Midjourney API" comes from outside companies wrapping the app; Midjourney itself does not offer it.
  • It is subscription-only, with four tiers (Basic, Standard, Pro, Mega) and lower prices on annual billing. A free trial has not existed since 2023.
  • Commercial use comes with every paid tier; businesses earning more than $1M a year need Pro or Mega.

This is an intentional choice. The company puts its effort into the app, the community around it and a distinctive visual style. If that is your workflow, it remains a good home. An API-based setup makes more sense when:

  • You are building a product. Online stores, content systems, automation tools like n8n and Make, or custom software all need a plain POST with a key.
  • Volume swings a lot. Forty pictures in March and two thousand in April is a better fit for per-image billing.
  • You work from references. Your real product or character goes into a new scene rather than being redrawn from scratch.
  • Spelling must be right. Signs, packaging and posters with correct text.
  • One bill is enough. Video, music and chat models draw on the same balance.

Translating Midjourney flags

Flags with a double dash belong to Midjourney. Other models treat them as ordinary words. The mapping:

  • --ar 16:9 becomes the aspect_ratio field ("16:9"). GPT Image 2.5 takes pixel sizes like 1536x1024 instead.
  • --no text becomes "no text" in the prompt, or negative_prompt on models that have it, such as Wan 2.7 Image and Qwen Image 3.0.
  • --seed 123 becomes the seed field on models that accept it, such as FLUX.2 [max] and Wan 2.7 Image.
  • --sref or a style image goes into image_urls, and the prompt says to copy the look of that image.
  • --stylize and --chaos cannot be mapped; write out the style you want instead.

The bigger change is how long the prompt is. Bare keyword lists produce middling images with these models; whole sentences covering subject, setting, light and style do far better. Below, Z-Image Turbo with a fixed seed and two different prompts:

Simple lighthouse from a single-word prompt
Prompt: a lighthouse, nothing more
Retro poster version of the same lighthouse on the Baltic coast
Same seed, plus place, time of day and a 1950s poster style

More on prompt structure: AI image prompt guide.

Painterly looks and concept art

Midjourney has a reputation for painterly images and concept work. These models can do it as well if you name the medium (oil, watercolor, linocut), the period and the palette. A producer sample from Imagen 4:

Imagen 4 painterly lake landscape
Producer sample: Google (blog.google), from the Imagen 4 announcement; prompt unknown

All image models are on the AI image generator page.

Cost of 100 images

Kadraris does not sell subscriptions. You pay per image from a prepaid balance (top-ups from $10) that never expires. A month of 100 images costs:

  • with Imagen 4: 100 × $0.115 per image
  • with Seedream 5.0 Pro: 100 × from $0.0783 per image
  • with Nano Banana Pro: 100 × from $0.07 per image
  • with FLUX.2 [pro]: 100 × from $0.0688 per image
  • with GPT Image 2.5: 100 × $0.05 per image
  • with Z-Image: 100 × $0.02 per image

A subscription costs the same whether you make 10 images or 1,000; a balance charges per image. Your volume decides which is cheaper. Failed generations are free. Rates: pricing; estimates: cost calculator.

Code: one POST, no Discord

?wait=60 keeps the request open until the image is done:

bash
curl "https://kadraris.com/v1/generate?wait=60" \
  -H "Authorization: Bearer $KADRARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-pro",
    "input": {
      "prompt": "Vintage 1950s travel poster of a red and white lighthouse on a rocky Baltic coast at blue hour, flat screen-printed colours, bold simple shapes, no text",
      "aspect_ratio": "16:9",
      "resolution": "2k"
    }
  }'

JavaScript, where changing the model is changing a name:

javascript
const url = "https://kadraris.com/v1/generate?wait=60";
const res = await fetch(url, {
  method: "POST",
  headers: {
    "Authorization":
      `Bearer ${process.env.KADRARIS_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "seedream-5.0-pro",
    input: {
      prompt: "Concert poster for a jazz night, " +
        "title \"BLUE HOUR\", art deco style",
      aspect_ratio: "3:4",
    },
  }),
});
const task = await res.json();
console.log(task.status, task.output?.[0]?.url,
  task.cost);

If the image is not ready within the wait, check GET /v1/tasks/{id}. A Python script that saves files: AI image generation in Python. All fields: generate docs.

Questions

Are "Midjourney API" services official?

No. Midjourney publishes no API and its terms forbid automated generation. Those services are unofficial wrappers built by third parties.

Which model comes closest to the Midjourney look?

There is no exact match. For polished single frames I start with Nano Banana Pro; for painterly styles, name the medium, period and palette in the prompt, or pass a style image as a reference.

What do I do with --ar and --no from my old prompts?

Move the ratio into aspect_ratio and write exclusions as words such as "no text", or use negative_prompt on models that support it.

Can I start without paying?

Kadraris has no free plan or signup credit; the first top-up is $10 and does not expire. Z-Image also has open weights, so you can run it locally on a strong GPU.