Measured 2026-08-21 · luxin.sh

The same picture, six models, a tenfold price spread.

One prompt. One aspect ratio. One agent, one afternoon. Every model below was asked for the identical image and billed for what it returned, from 1 credit to 10 credits. The pictures are the ones those jobs produced.

Change --model to any id in the table. Add --dry-run to see the debit before you spend.
The bill

What each one charged.

Cheapest first. The credit column is the debit the job actually incurred, read back from the balance after each run, not a list price. One credit is one cent.

ModelCreditsUSDOutputFileJob
Fal FLUX.1 [schnell]
fal.flux-1-schnell
1$0.011024×1024687 KBjob_5198c4d2e67f
Fal Z-Image Turbo
fal.z-image-turbo
1$0.011024×10241,259 KBjob_f9e20c943437
Fal Qwen Image
fal.qwen-image
4$0.041024×10241,012 KBjob_c1bf5c93164d
Fal FLUX.2 Pro
fal.flux-2-pro
5$0.051024×10241,211 KBjob_171c23a7011f
OpenAI GPT Image 2
openai.gpt-image-2
9$0.091024×10241,305 KBjob_203ee8f1a65e
xAI Grok Imagine Image 2.0
xai.grok-imagine-image-2.0
10$0.101024×1024262 KBjob_bbc45db4c30a

Three things worth naming. The spread is 10× for output that is the same size in every row. The most expensive model returned the smallest file of the six, so price is not buying you pixels. And the whole comparison, six live generations across three providers, cost $0.30.

The evidence

Judge them yourself.

The prompt, in full: A compact field camera on a stainless steel workbench, single overhead lamp, shallow depth of field at 1:1. Every image links to the durable URL the job returned; those URLs are unsigned and do not expire.

Method, and what it does not show

What one run can and cannot tell you.

This is a cost measurement, not a quality ranking. One prompt and one generation per model is enough to establish what each one bills and what shape it returns. It is not enough to say which model is better, and no amount of styling this page would make it enough. Prompts are not neutral either: this one favours models that handle metal, reflection and shallow depth of field, and a typography prompt would reorder the pictures without changing a single price.

What it does establish is harder to get anywhere else. These six models sit behind three different providers with three different rate cards, and comparing them normally means opening three accounts. Here they are one command apart, priced in the same unit, billed to the same balance.

One honest footnote about our own data. Luxin's public model API publishes two prices per model, and for several models they disagree — one reports 25 credits for a model that bills 1. Every price on this page is the per-aspect-ratio debit, the number the money path actually uses, cross-checked against the balance after each run. The mismatch is filed as a bug against us.

Full disclosure: Luxin is our product, we sell access to these models, and we took every measurement on this page ourselves. The job ids and image URLs are published so you do not have to take our word for any of it.

Questions

Asked and answered.

How much does it cost to generate one image?

Between one and ten credits for the models measured here, where one credit is one cent. The same prompt at the same 1024x1024 size cost $0.01 on Fal FLUX.1 [schnell] and $0.10 on xAI Grok Imagine Image 2.0. All six images in this comparison cost $0.30 in total.

Is the most expensive model the best one?

Not on any measure taken here. Every model returned the same 1024x1024 dimensions, and the highest-priced result produced the smallest file of the six. Price tracks the provider's rate card, not output size or resolution. Look at the images and judge them yourself; that is why they are all on this page at full size.

How were these numbers measured?

Each model was called once through the public luxin-cli against the live api.luxin.sh, with the same prompt and the same 1:1 aspect ratio, from one agent identity on 2026-08-21. The credit figure is the debit the job actually incurred, read back from the running balance, not an estimate or a list price.

Do I need an API key for each of these providers?

No. These models sit behind three different providers, and running all six took one identity and no provider account. Your agent signs itself up on first run and every model is reachable through the same command with a different --model value.

Does a failed generation still cost credits?

No. One model in the original run failed at the provider, and the balance was unchanged afterwards. You are billed for results, not attempts.

Can I reproduce this?

Yes, and the command is on this page. Swap the --model value for any id in the table. Add --dry-run first to see the exact debit before anything is charged.