What Image APIs Cost per Usable Image
Compare ten image API options with official rates, then calculate the acceptance rate a pricier model needs to lower your real cost.

A generated image may have a published output fee as low as $0.014 for the first megapixel on FLUX.2 Klein 4B, $0.03 for Stable Image Core, or $0.04 for Grok Imagine Image 2.0 at 1K low quality. But your cost per usable image is higher when you reject outputs or pay for edits. At a $0.03 generation fee and a hypothetical 60% acceptance rate, 1,000 accepted images require about 1,667 attempts and about $50 in generation fees before other charges. These are published rates and an illustrative calculation, not a quality ranking or a test of any model. See the Black Forest Labs price list, Stability AI pricing, and xAI’s model page.
Compare image APIs on the same basis
The table describes one generated output under standard processing unless the row says otherwise. A 1K label is a maker’s tier; it does not promise identical dimensions, fidelity, latency, or rights across APIs. “Output fee” excludes separately charged prompt, reference-image, editing, and other usage. Published rates can change. For a buying decision, confirm the model ID and a current quote in your own account.
| Maker and API option | Published unit and output fee | What changes the bill |
|---|---|---|
| Black Forest Labs, FLUX.2 [klein] 4B | $0.014 for first MP of output; $0.001 for each additional MP | Reference images $0.001/MP; output and reference sizes round up to whole MP. Source |
| Black Forest Labs, FLUX.2 [pro] | $0.03 for first MP; $0.015 for each additional MP | Reference images $0.015/MP. Source |
| Stability AI, Stable Image Core | 3 credits, or $0.03 at $0.01/credit | An edit or upscale is a separately priced operation. Source |
| Stability AI, Stable Image Ultra | 8 credits, or $0.08 at $0.01/credit | An edit or upscale is a separately priced operation. Source |
| xAI, grok-imagine-image-2.0 | $0.04 at 1K low quality; $0.06 at 1K medium | Image input is $0.01 each; higher resolution has different rates. Source |
| Google, gemini-3.1-flash-lite-image | $0.0336 equivalent image-output cost at 1K standard | Text and image inputs have a separate token rate; published Batch output equivalent is $0.0168. Source |
| Google, gemini-3.1-flash-image | $0.067 equivalent image-output cost at 1K standard | Input and thinking/text output can add cost; Batch is supported, but its current image-output price was not verified. Model; pricing |
| Recraft, V4.1 raster | $0.035, or 35 API units | This is the direct API rate for the named raster option. Source |
| Recraft, V4.1 Pro raster | $0.21, or 210 API units | Check whether the higher-priced output improves your own acceptance rate enough. Source |
| OpenAI, gpt-image-2.6-sunburst | $30 per million image-output tokens, standard processing | No fixed per-image amount follows from that rate alone; image input and text input have separate token rates. Source |
That is ten named options from six makers. The OpenAI row is deliberately not converted to a made-up image price: its image-output token count changes with the request. Google’s per-image figures are maker-published equivalents for specified image sizes, not a promise about the full invoice. FLUX.2’s “first MP” is a billing tier, not a flat price for arbitrary resolution. Recraft’s API units are a distinct account balance; Stability’s credits use its stated $0.01 conversion. Comparing the table’s dollar figures without those conditions can reverse the apparent winner.
The newest GPT image release also needs a model choice: the GPT Image 2.6 workflow guide explains Sunburst and Flare, while the model tracker helps check current model names. Neither tells you your acceptance rate.
Convert the billing unit before setting a budget
For a fixed output charge, the starting equation is simple: generation subtotal = billable outputs × output fee. With credits, first multiply the credits per operation by the maker’s stated dollar value. Stability AI lists one credit as $0.01, so three credits for Core is $0.03. Keep its separately priced editing and upscaling calls in other columns; its price list lists those operations on their own rows.
For a token-priced model, use image-output tokens × image-output rate / 1,000,000, then add text input, image input, generated text, and any other metered components actually used. OpenAI lists $30 per million image-output tokens for GPT Image 2.6 Sunburst, plus distinct rates for text and image input. Its image generation guide says to read the response’s usage for the actual request; equal token rates between models do not guarantee equal image costs. As an arithmetic example only, 2,000 image-output tokens at $30 per million would cost $0.06 for that component. We did not measure a model producing 2,000 tokens for any particular size.
For FLUX.2, Black Forest Labs defines one billed MP as 1024 × 1024 pixels and rounds output and reference-image resolution up separately to a whole MP. On FLUX.2 Pro, a billed 2 MP output would cost $0.03 + $0.015 = $0.045 before reference inputs. That is a calculation from the official pricing rule, not an observed invoice. If you submit references, add their billed MP separately. Do not apply this megapixel formula to Recraft, Google, or xAI, whose listed units differ.
The site’s API cost calculator helps with token arithmetic, but its model menu is not a verified estimator for image-output token use. The text API price comparison explains why input and output token columns must stay separate; its text-model numbers are not image-generation rates.
What 1,000 accepted images would cost
“Accepted” means a result your own workflow can use after whatever review you require. No provider rate card publishes that fraction for your prompts. Let K be the number of accepted images you need, a your observed accepted fraction between zero and one, and p the all-in billed cost of one attempt under the same settings. For planning, attempts are approximately K / a, and spend is approximately K × p / a. Round the number of attempts up when placing real orders. Track separately any moderation failures or cancelled jobs whose billing rules differ; do not assume every failure is free or every rejection is refunded.
Illustrative scenario: suppose a flat $0.03 generation call yields a usable result 60% of the time. For 1,000 accepted results, 1,000 / 0.60 = 1,666.67, so plan for about 1,667 billable calls; 1,667 × $0.03 = $50.01. At an illustrative 80% acceptance rate and $0.04 per call, 1,250 calls cost $50. The dollar inputs resemble published rows, but the acceptance fractions are hypothetical. This is not a measured comparison between Stable Image Core and Grok Imagine Image 2.0, and their output specifications are not interchangeable.
Now add the operations you actually need. If 200 of those accepted images each need one Stability AI inpaint call, its listed five-credit price would add 200 × $0.05 = $10. If the workflow instead uses an API that charges per input image or per reference MP, compute those on every billed attempt that used them. A blended per-attempt cost can hide a costly editing tail; keep generation, references, edits, and upscales as separate columns until the final sum. The batch API guide discusses the same accounting discipline for text workloads, though its discounts must not be assumed for image endpoints.
When a pricier model becomes cheaper
Suppose model A has an all-in cost pA per billable attempt and accepted fraction aA, while model B has pB and aB. B costs less per accepted image only when pB / aB < pA / aA. Equivalently, B’s acceptance rate must be more than pB / pA times A’s. This is a break-even threshold, not a claim that higher prices buy better images. It holds only when each model’s per-attempt cost is stable and the two workflows use the same acceptance rule.
| B costs this much more per attempt | If A accepts 40%, B needs more than | If A accepts 60%, B needs more than | If A accepts 80%, B needs more than |
|---|---|---|---|
| 1.25× | 50% | 75% | 100%: impossible to exceed |
| 1.5× | 60% | 90% | 120%: impossible |
| 2× | 80% | 120%: impossible | 160%: impossible |
All percentages in this matrix are hypothetical thresholds, derived by multiplication. At equality, the models tie on the simplified cost measure. A 1.25× premium over a baseline that already accepts 80% cannot strictly win on generation cost alone, because it would need to exceed 100% acceptance. It could still save labor or deliver a different kind of output, but those benefits require their own measurements and should not be called API savings without them.
For an edit-heavy workflow, replace the flat p with the measured total billed cost divided by attempts, including different edit paths. If one model produces fewer rejects but needs more paid inpainting, a generation-only comparison will be wrong. The useful question is therefore not “Which API has the lowest headline fee?” but “Which documented endpoint gives my required output at the lowest measured total cost per accepted result?”
Measure a small production sample before choosing
Start with a written acceptance rule: required size, subject accuracy, legibility if text matters, brand constraints, and whether an edit counts as usable. Run the same representative prompts through the candidate endpoints using their supported settings. This article reports no such test. Log the model ID, endpoint, requested dimensions and quality, billed output and input usage, edits and upscales, whether the result passed, and total invoice amount. Keep the raw responses long enough to reconcile the provider bill, subject to your own retention and privacy rules.
Calculate accepted fraction as accepted outputs / billable attempts and all-in cost per accepted output as total billed spend / accepted outputs. Segment by workload: product photos, diagrams, and typography can have different acceptance patterns. A single blended percentage could make a model look good only because it received easier prompts. Record latency and human review time separately if they matter to the decision; neither is present in the price table.
Before committing volume, recheck model availability, size tiers, endpoint-specific Batch eligibility, refunds for failed requests, usage limits, and rights for your use case on the maker’s current documentation. Google’s Flash Lite Batch equivalent appears on its Gemini API pricing page; xAI’s model page says Batch is supported but lists its Batch price as N/A for this model. Treat an unavailable Batch quote as unknown, not as an assumed discount. Then use your own acceptance sample to select the endpoint and revisit the arithmetic when a price or model changes.
Sources
- Black Forest Labs pricing — FLUX.2 output and reference-image megapixel rates and rounding.
- Stability AI pricing — credit conversion and generation, edit, and upscale rates.
- xAI Grok Imagine Image 2.0 — output tiers, image-input fee, and Batch status.
- Google Gemini API pricing — Flash and Flash Lite image-output equivalents and separate input rates.
- Recraft pricing — V4.1 direct API raster rates and API units.
- OpenAI API pricing and image generation guide — GPT Image 2.6 token rates and usage accounting.
All pages read on November 5, 2026.
Free toolWhat will 10,000 chats a month cost?Estimate my bill

