A generation costs the model's price multiplied by the number of images you ask for. The models cost 20, 25, 35, 90, 125 and 200 credits per image. A Free account gets a credit allowance each month and asks for 1 image at a time; Basic, Pro and Elite can ask for up to 4. So one click costs between 20 and 800 credits depending on what you pick, and the picker shows the total before you press the button.
The credit price of each model

| Model | Credits per image | Renders text in the image | Accepts a face photo |
|---|---|---|---|
| Thumblify Standard | 20 | Yes | No |
| Thumblify Face | 25 | No | Yes |
| Thumblify Cinematic | 35 | Yes | No |
| Thumblify Balanced | 90 | Yes | Yes |
| Thumblify Sharp | 125 | Yes | Yes |
| Thumblify Ultra | 200 | Yes | Yes |
What each plan gets
| Plan | Credits per month | Price | Variants per generation |
|---|---|---|---|
| Free | see the pricing page | — | 1 |
| Basic | 800 | $8 a month, or $48 a year | 4 |
| Pro | 3,200 | $14 a month, or $84 a year | 4 |
| Elite | 7,800 | $30 a month, or $180 a year | 4 |
The free allowance is sized around the entry model: it goes furthest on Standard and stretches only to a couple of frames on Sharp. The figure it is sized at is on the pricing page, which is the one place it is kept.
How the arithmetic works
The cost of one click is the model's price times the number of variants. Three variants on Standard is 60 credits. Four on Ultra is 800. There is no discount for asking for more at once and no surcharge for asking for one.
Two things change the ceiling rather than the price:
A face photo caps the variant count at 1. When you attach a photo, the models that accept one return a single image per call, so a face generation costs one model price and not four.
The Free plan's ceiling is 3, not 4. That is a limit on how many images one click can produce, not on how many credits you may spend.
What it does not do
Credits do not expire into a rollover you can count on. Unused monthly credits bank up to a multiple of the plan's own allowance, and the multiple is a plan property rather than a flat rule.
The credit price is not the picture's quality. 200 credits buys a different model, not a better version of the same one, and the resolution you receive depends on the plan rather than the model.
Several things cost nothing at all. Title suggestions, the prompt enhancer and browsing either library charge no credits — the list is here — so working out what to generate does not draw the balance down before you generate it.
Questions people actually ask
What is the cheapest way to get one thumbnail? Thumblify Standard at 20 credits, one variant. It is the cheapest thing the generator can do, which is why the free allowance is sized around it.
Does asking for 4 variants cost 4 times as much? Yes. The price is per image.
Why is Face 25 credits when Standard is 20? They are different models. Face is the one that takes a photograph; it does not render text into the image.
Can I run out mid-generation? No. Credits are reserved before the model is called and released if it fails, so a failed generation does not cost anything.
Do the numbers differ between monthly and annual billing? No. Annual changes the price of the plan, not the credits it grants: $48 a year against $8 a month for Basic, $84 against $14 for Pro, $180 against $30 for Elite.
Is there a per-generation limit other than credits? The variant ceiling: 1 on Free, 4 on paid, and 1 whenever a face photo is attached.
---
Verified against the product on 2026-08-29. The source for an article about this product is its own code, and every figure above is at an address in it:
- Credit price per model —
src/pricing.js:231(MODEL_CREDIT_COST) - Model names —
src/models.js - Credits per month per plan —
src/pricing.js:842(PLAN_MONTHLY_CREDITS) - Plan prices in cents —
src/pricing.js:714(PLAN_PRICING_CENTS) - Variants per plan —
src/pricing.js:883(MAX_VARIANTS_BY_PLAN) - The one-variant ceiling with a face photo —
src/pricing.js:408(FACE_EDIT_MAX_VARIANTS) - Cost of one click —
src/pricing.js(creditCostForGeneration) - Credits reserved before the call and released on failure —
functions/lib/credits.js(reserveStatements,releaseItemStatements)