Credits
Your workspace holds two separate balances, and a single request can spend both. Reads, listings, imports and dry runs spend neither.
Two balances
| Balance | Spent on | Priced |
|---|---|---|
| Generation credits | Every rendered asset — images, PDFs, videos, GIFs, HTML5 | Per format, by output type — see below |
| AI credits | AI layer features — auto focus, background removal, text-to-image, inpainting | Per model and quality, from 1 to 35 |
They are separate pools, are not interchangeable, and are bought and topped up separately. Running out of either refuses the request, both with 429 rate_limit_exceeded.
A request using an AI feature therefore draws on both: AI credits for the AI work, generation credits for each format it renders.
Generation credits are charged per format, not per request
The prices under What a format costs are per format. One design generated in six formats costs six times the single-format price. Sizing a batch means multiplying by formats as well as by rows: 200 products × 6 formats is 1 200 generation credits, not 200. AI features do not multiply the same way — see What multiplies, and what does not.
Generation credits
What a format costs
| Output | Cost per format |
|---|---|
| Image (JPG, PNG) | 1 |
PDF on a static design | 1 |
PDF on a printer design | By pixel area — see below |
| Video (MP4), GIF, HTML5 | 1 per second of animation |
Animated output rounds up
Duration is rounded up to the whole second, with a minimum of 1. A 5.4-second video costs 6 credits per format; a 0.4-second one costs 1.
Print PDFs are billed by area
A printer format costs one credit per 10 million rendered pixels, rounded up:
credits = ceil(width_px × height_px / 10 000 000)where each side is physical_size × dpi, converted to inches. Raising dpi raises the cost quadratically — doubling DPI quadruples the pixel count.
| Format | DPI | Pixels | Cost |
|---|---|---|---|
| A4 (210 × 297 mm) | 300 | 8.70 M | 1 |
| Square 267 × 267 mm | 300 | 9.95 M | 1 |
| Square 268 × 268 mm | 300 | 10.02 M | 2 |
| Roll-up (850 × 2 000 mm) | 150 | 59.29 M | 6 |
| Billboard (4 × 3 m) | 100 | 186.00 M | 19 |
267 mm square at 300 DPI is the largest format that still costs 1 credit — one millimetre more crosses 10 million pixels and costs 2. Each side is rounded to the nearest whole pixel before multiplying.
Multi-page print multiplies by pages
On a printer_multipage design, the per-format area cost is multiplied by the page count. All pages share one size, so a 12-page A4 brochure at 300 DPI costs 1 × 12 = 12 credits.
Worked examples
| Request | Calculation | Credits |
|---|---|---|
| One static design, 1 format | 1 | 1 |
| One static design, 6 formats | 1 × 6 | 6 |
| 200 products × 6 formats | 1 × 6 × 200 | 1 200 |
| A 5.4 s MP4 in 3 formats | ceil(5.4) × 1 × 3 | 18 |
| A4 flyer PDF, 300 DPI | ceil(8.7 / 10) | 1 |
| 12-page A4 brochure, 300 DPI | 1 × 12 | 12 |
| Roll-up, 150 DPI | ceil(59.3 / 10) | 6 |
What does not cost credits
- Reads and listings —
GET /designs,GET /fonts,GET /projects, and every other read. - The whole Design Import flow, including
?validate_only=true. - Exporting a design as an import payload.
- Polling a generation or import job.
- Failed generations. Only a successful visual creation is counted.
- Repeat requests for a dynamic image variant that is already cached — the first render of each unique query string costs 1 generation credit, and identical requests afterwards cost nothing. Saving the design refreshes the cache, so each variant costs a credit again the next time it is requested.
Assets generated from the API console on the design page do count, and spend the same balance as the API.
AI credits
AI layer features draw on the AI balance, never the generation balance. A request that uses them spends both: generation credits for the rendered formats, AI credits for the AI work.
Unlike generation credits, AI credits are not a flat rate. Each model has its own price, and on most models the price also depends on the quality and ratio you ask for. A four-fold difference between two models on the same feature is normal, so the model you pick is the main lever on cost.
How many, per feature
| Feature | Property | Typical cost |
|---|---|---|
| Auto focus | auto_focus | 1 per element, per format |
| Background removal | remove_bg | 2–3 per request — the default bria-rmbg-2-0 is 3; every alternative is 2 |
| Text to image | text_to_image | 2–35 per request, by model and quality |
| Inpainting | text_to_image + inpaint_images | Same as text to image, plus a per-reference-image charge on some models |
On the default text-to-image model, nano-banana-2:
quality | Credits |
|---|---|
0.5K | 7 |
1K (default) | 10 |
2K | 14 |
4K | 19 |
The full model list is on Image → Text-to-image and inpainting models. Prices there range from 2 credits (gpt-image-1.5 and gpt-image-2 at low quality) to 35 (gemini-3-pro and nano-banana-pro at 4K).
Prices move with the model catalogue
AI models are added, repriced and retired as providers change their own pricing. Treat the figures above as current-at-writing and pin a model explicitly in text_to_image_properties.model rather than relying on the default, so a catalogue change cannot silently change what you spend.
What multiplies, and what does not
This is the part that surprises people on multi-format requests:
| Feature | Charged |
|---|---|
remove_bg, text_to_image, inpainting | Once per request. The AI runs once and the result is reused across every format |
auto_focus | Per element, per format. Two auto-focused images across six formats is 12 AI credits |
Auto focus is the cheapest feature per call and the only one that scales with format count — at 1 credit each it stays small, but it is the one that grows when you widen a design.
Why the two behave differently
Text-to-image, inpainting and background removal each produce an asset, which is then placed into every format. Auto focus computes a crop, and the right crop differs per format because the frame does — so it is recomputed for each one.
On trial
| Generation credits | 30 |
| AI credits | 100 |
The trial balance is the whole allowance for the trial period, not a per-day figure. Once the trial ends, both balances are 0 until you subscribe.
30 credits is not 30 requests
A single six-format request spends a fifth of the trial allowance. Develop against one format, then widen once the payload is right.
Running out
An exhausted balance answers 429 with id: rate_limit_exceeded — the same id as the global rate ceiling.
{
"id": "rate_limit_exceeded",
"message": "Not enough credits",
"version": "v2026-08-17"
}Read message to tell the two apart, then branch: a rate ceiling clears on its own, an empty balance never does. The two other 429s mean different things again — see Three different 429s.
Retrying an empty balance never succeeds
No backoff recovers from Not enough credits. Stop the queue, top up or upgrade, then resume. Retrying also spends your hourly rate-limit budget, so a retry loop turns one refusal into two.
Allocation and top-ups
- Your plan grants a recurring allowance that resets each billing period. Unused recurring credits do not roll over.
- Extra credits bought on top never expire.
- Recurring credits are always spent first; extra credits are drawn on only once the recurring allowance is gone.
Balances, low-credit alerts and auto top-up are managed in the app — Understanding Abyssale credits covers plan allowances and purchasing. Current allowances per plan are on the pricing page.
Estimate before you spend
Nothing about a request is charged until an asset renders successfully, so the cheapest estimate is arithmetic: count formats, apply the table above, multiply by rows.
For print, compute the pixel area first — it is the only output whose price is not obvious from the request.
Related
- Rate limits — the other two
429s, and the budget a retry loop spends - Errors — the full envelope and every
id - Asynchronous Generation — where multi-format requests are made, and where the per-format rule bites
