Most Flux vs Nano Banana write-ups are produced by people who have never had to pay for either at volume. We route both in production and bill for both, so we can publish the number that actually settles the question: what a single call costs, taken from the same table that charges you.
Short version. Nano Banana is roughly six times cheaper per image and owns editing. Flux is fast, sits mid-price, and refuses an entire category of prompts — real-person likenesses, franchise characters, most NSFW. Which one you want depends almost entirely on whether you are creating a picture or changing one. Everything below comes from Terminal X's own credit table, cost table, and parser routing rules.
"Flux" in Terminal X is the model id `flux`, which runs `black-forest-labs/flux.2-pro` through OpenRouter when media routing is enabled. With that flag off it calls Black Forest Labs directly at `api.bfl.ai/v1/flux-pro-1.1` at 1024x1024, with a 15-second timeout on the submit call so a stalled request can't hold an executor slot open.
"Nano Banana" is not one model. It is Google's Gemini image family, and we route three separate tiers: `nano-banana` runs `google/gemini-3.1-flash-image` (the one people usually mean), `nano-banana-pro` runs `google/gemini-3-pro-image`, and `nano-banana-lite` runs `google/gemini-3.1-flash-lite-image`. The naming matters because the real cost gap between the cheapest and the priciest of those three is about 7x, and a comparison that treats them as one product is useless for budgeting.
So the honest framing is not "Flux vs Nano Banana" as a two-horse race. It is one text-to-image model against a three-tier family where the top tier is our default for general photorealism, the middle tier is our default for editing, and the bottom tier is our default for anything cheap and fast.
One Terminal X credit is calibrated to $0.006 of real API spend. Flat-rate media models are priced as ceil(real cost / 0.006), plus deliberate headroom so a provider price hike doesn't put a model underwater overnight. That is why the quoted credit gap (6 vs 2) is narrower than the real cost gap ($0.030 vs $0.005): the cheap models carry proportionally more headroom because rounding up from half a cent is lumpy.
The quote is a ceiling, not the charge. Image runners that go through OpenRouter report their actual cost back on the response, and the metering pass rewrites the deduction to that figure (plus a 5% routing buffer). If the metered total for a run lands above the quote that gated your balance, the quote caps it and Terminal X absorbs the difference. You are never charged more than what you were shown before the run started.
The last column is the part that changes behaviour. On the $4.99 Basic plan (400 credits), the same monthly budget buys you 200 Nano Banana images or 66 Flux images or 25 GPT Image 2 images. If you are iterating on a concept twenty times before you like it, that ratio matters far more than any quality argument.
Speed, mostly. Our routing notes describe Flux as the roughly 10x-faster fallback behind Nano Banana Pro on cinematic and atmospheric work. When a job needs six images to fill a page and the wall-clock time is the constraint, Flux is the pick that finishes.
It sits at the head of the generic image fallback chain — meaning a failed Flux call is the one that hands off, not the one that catches — and the parser names it as the second choice behind Nano Banana Pro on cinematic film-stills and as the fallback if Nano Banana Pro refuses an architecture or interiors shot. It also stays available as an explicit pick: if a prompt says "flux" by name, the parser honours that and does not second-guess you.
What we will not claim: Flux is not our default photoreal model anymore. For a general "an image of X" prompt with no other category signal, routing goes to `nano-banana-pro` first, `gpt-image-2` second, and Flux third. Flux earns its slot on price and latency, not on winning a head-to-head on a hero shot. It also invents and garbles text on packaging labels, which is a real liability on product mock-ups, so packaging work routes to Nano Banana Pro and GPT Image 2 deliberately.
Editing. Flux, in the way we call it, is text-to-image only — the runner takes no attachments at all. Every Nano Banana tier does, and `nano-banana` is the parser's default for it: a follow-up like "make the lettering bigger" or "swap the background to a kitchen counter" routes there, with the previous image passed in as a reference. The documented escalation path from that default is `nano-banana-pro`, then `gpt-image-2` for typography and layout edits. Flux is simply not in that conversation.
It handles up to 14 reference images in one call, which is what makes character and product consistency across a set of edits work rather than producing a slightly different subject each time. Escalate to `nano-banana-pro` when you need premium 4K output or you are tracking five or more identities in one frame.
Nano Banana Pro is the routing default for product photography, food and still-life, packaging mock-ups, architecture and interiors, and cinematic film-still work with no baked-in text. Those are the categories where the extra 3 credits over base Nano Banana are worth spending. `nano-banana-lite` is the cheap default for thumbnails, placeholders, mockup screenshots, and A/B variants, with one hard limit: it tops out at 1024x1024, so an explicit 2K or 4K request escalates it to Pro or Flux instead.
One format gotcha worth knowing. Gemini accepts png, jpeg, webp and heic only. Attach a tiff or a bmp and the runner tells you it skipped that attachment rather than silently ignoring it.
Flux refuses real-person likenesses, named public figures, copyrighted characters, and most NSFW. Every comparison article knows this in the abstract. What none of them cover is what happens next, because most tools just hand you an error.
Nearly every failure path in our Flux runner routes through a fallback function. A moderation rejection, a timeout, a 401, a missing key, or a provider outage all get classified into a plain-English reason ("declined (safety filter)", "timed out", "auth failed", or just "failed") and the task is handed to Grok Imagine, which has the most permissive real-person content policy of any image model we route to. A `task_model_switch` event fires so the result row re-labels itself to the model that actually produced the picture. You see the swap happen in the run log rather than discovering later that "your Flux image" was not made by Flux.
Behind that there is a general chain for any image runner that fails: flux, then grok-imagine, then nano-banana-pro, then recraft, then ideogram, then stability. It is ordered permissive-content first, then vector and stylized, then open weights last. A failing GPT Image task enters at grok-imagine and a failing Nano Banana task enters at nano-banana-pro, so nothing ever falls back onto Flux. Depth is capped at four hops so a fully-down image stack cannot spew a dozen model-switch events at you, and each base is marked as tried so the chain can't loop back onto a model that already refused.
Billing follows the swap. The task is re-stamped with the model that ran, so you are charged once at that model's rate, not once per attempt. Tasks that emit an error are excluded from the credit deduction pass entirely. A refused generation costs you nothing.
Google changed Nano Banana's policy in January 2026 to hard-block named celebrities, politicians and athletes server-side. Ask it for a recognisable public figure and the call fails rather than degrading. Flux refuses the same category. So "which is better for a picture of a famous person" has one correct answer: neither.
The parser handles this as a two-task pipeline instead. A `sonar-pro` search task (6 credits) finds high-quality public reference photo URLs, and a `grok-imagine` task (9 credits) generates the image using those URLs to ground the likeness. That is 15 credits quoted, against about $0.08 of real API spend. Grok both allows the request and carries stronger real-face training data, and it accepts URL references for less-famous subjects.
The rule is deliberately biased toward triggering on ambiguous names. A false positive costs one extra search call. A false negative gives you a generic AI face where a specific person should be, which makes the whole product feel broken. Mononyms, nicknames and last-name-only references all count.
Verified on 2026-06-28 with a Pokemon prompt: Flux refused, and the Grok fallback refused too. Named franchise characters are blocked by every commercial image provider we route to, Grok included, because Nintendo, Disney, Marvel and Sanrio all enforce aggressively. There is no clever prompt that gets around it.
Rather than hand you a dead task, the parser rewrites the brief before it ever reaches a model. "Pikachu" becomes "an original electric-type rodent monster in Pokemon-style — yellow fur, lightning-bolt tail, big expressive eyes, cel-shaded anime aesthetic, bright primary-color palette, white outline." That is a style transfer rather than IP reproduction, and every provider runs it. Model routing stays the same.
Be clear-eyed about the tradeoff: you cannot get the actual character out of Terminal X. You get something that reads as belonging to that world. If you needed the licensed character, no AI image tool is going to solve that for you.
Paragraph text. Image models paint letterforms, they do not typeset. Paragraph-length copy comes back as garbled pseudo-words on every image model in the lineup — Nano Banana Pro tops out around 94% character-level accuracy and GPT Image 2's ~99% is the ceiling, and neither survives a block of body copy. Short display text (1-8 words: a title, a tagline, signage) routes to Ideogram or GPT Image 2 with the exact words quoted in the brief. Real body copy gets built as actual HTML text instead, so the letters are letters.
Editable vector. Neither model outputs true SVG. If you need paths you can open in Figma or Illustrator, that is Recraft's vector mode, and Terminal X routes logo and wordmark work there by default for exactly this reason.
Brand consistency is not something either model solves — Terminal X solves it around them. A stored Brand Kit lives on your account in Settings (primary, accent, ink and surface hex values, a heading font, a body font, a tone line and a logo URL) and binds every generation after you save it. On a single-image run it seeds the brand bible outright, which also skips the Haiku call that would otherwise write one. On a multi-image run the bible is still generated per-run — it carries the "same product, same day" subject line a stored kit cannot know — and the kit binds it as a constraint. Website builds get the same kit appended to the build brief. The honest limit is that there is exactly one kit per account, so an agency juggling a dozen clients still has to overwrite it between jobs or restate the brand in the prompt.
Human review. There are no designer seats, no approval queues, and no human in the loop. This is a routing layer over model APIs. It is very good at getting the right model to run the right prompt cheaply, and it will not tell you your composition is weak.
You do not choose. The parser reads the prompt and classifies intent before anything runs, then names the model per task. Editing an attached image, character consistency, or a follow-up on a previous image goes to Nano Banana. Product, food, packaging, interiors and cinematic film-stills go to Nano Banana Pro. Cheap, fast and rough goes to Nano Banana Lite. Short prominent text goes to Ideogram, vector logos go to Recraft, and posters with a title block go to GPT Image 2. Flux takes explicit picks, speed-sensitive work, and the head of the failure chain. Named real people get the search-plus-Grok pipeline.
You see the credit estimate before the run starts, you see any model switch as it happens, and errored tasks are not billed. That is the whole pitch: correct model selection is a cost decision as much as a quality one, and a 6x price gap between two models that look interchangeable on a listicle is worth automating.
Or skip the comparison shopping: Terminal X routes one prompt to the right model automatically — and runs several in parallel when a job needs more than one.
| Model (Terminal X id) | What actually runs | Credits quoted | Real API cost / image | Images on 400 credits |
|---|---|---|---|---|
| nano-banana-lite | Gemini 3.1 Flash Lite Image | 2 | ~$0.003 | 200 |
| nano-banana | Gemini 3.1 Flash Image | 2 | ~$0.005 | 200 |
| nano-banana-pro | Gemini 3 Pro Image | 5 | ~$0.020 | 80 |
| flux | Flux 2 Pro (Black Forest Labs) | 6 | ~$0.030 | 66 |
| ideogram | Ideogram V3 Standard | 6 | ~$0.030 | 66 |
| recraft | Recraft (vector + raster) | 8 | ~$0.040 | 50 |
| grok-imagine | Grok Imagine (xAI) | 9 | ~$0.040 | 44 |
| stability | Stable Diffusion 3.5 Large | 13 | ~$0.065 | 30 |
| gpt-image-2 | GPT Image 2 (OpenAI) | 16 | ~$0.080 | 25 |
Nano Banana, by a wide margin. Base Nano Banana costs about $0.005 of API spend per image and is quoted at 2 credits. Flux costs about $0.030 and is quoted at 6 credits. On a 400-credit Basic plan that is 200 Nano Banana images versus 66 Flux images for the same money. Nano Banana Pro sits in between at 5 credits and about $0.020.
Flux declined the prompt, timed out, or the provider errored, and the fallback handed the task to Grok Imagine, which has the most permissive real-person content policy in the lineup. Terminal X emits a model-switch event so the result row re-labels itself to whichever model actually produced the image, and you are billed once at that model's rate rather than for both attempts.
No. Google's January 2026 policy change blocks named celebrities, politicians and athletes server-side, so the call fails rather than producing something generic. Flux refuses the same category. Terminal X routes those prompts to a two-step pipeline instead: a Sonar Pro search (6 credits) finds real reference photos, then Grok Imagine (9 credits) generates using them. 15 credits quoted in total.
Not in Terminal X. Flux is wired as text-to-image only — the runner accepts no attachments. Nano Banana is the parser's default for edits, background swaps, restyles and follow-up tweaks, escalating to Nano Banana Pro and then GPT Image 2 for typography and layout work. Nano Banana handles up to 14 reference images in a single call and accepts png, jpeg, webp and heic.
One to eight words, yes — longer, no. Paragraph-length copy comes back as garbled pseudo-words on every image model; Nano Banana Pro sits around 94% character accuracy and GPT Image 2's ~99% is the best available. Terminal X routes short display text to Ideogram or GPT Image 2 with the exact words quoted in the brief, and builds real body copy as HTML text so the letters stay legible. If a poster needs a title and credit block baked in, GPT Image 2 is the pick.
No. Tasks that end in an error are excluded from the credit deduction pass entirely. If a fallback runs and succeeds, you pay once, at the rate of the model that finished. The pre-flight quote also acts as a cap: if the metered cost comes in higher than what you were quoted, Terminal X absorbs the difference.
Or skip the comparison shopping: Terminal X routes one prompt to the right model automatically — and runs several in parallel when a job needs more than one.