AI Image Generation at Scale: The Cost Math and a Two-Track Plan

Date:

Putting a unique image on tens of thousands of pages sounds like a rendering problem. It is really a routing and classification problem.

The short answer: AI image generation at scale is gated by a request quota, not by pixels, so a bespoke photograph for every page can take months. The fix is to classify each subject and route it: draw abstract subjects as free vector SVG, and spend the metered diffusion budget only on photographic ones. Add one shared image per subject cluster instead of one per page, and a catalog that would take six to eight months of generation finishes in a week or two.

The real cost driver at scale

The instinct is to worry about render time or file size. Neither is the constraint. On the subscription tier we used (Google Gemini AI Pro), the diffusion backend meters requests per rolling window — roughly ten to twelve images every five hours. That is about fifty images a day of sustained output.

Run the arithmetic against a large catalog and the wall appears. A bespoke image for each of 20,000 pages, at fifty a day, is a six-to-eight-month job — before any re-generation for the images that miss. At scale, the cost that matters is the request count, and it is unforgiving.

At scale the binding cost is the request count, not the render time or the file size.

Why smaller images do not help

A natural reaction is to shrink the output and stretch the budget. It does not work. The quota counts requests within a time window, not pixels, and a single request costs the same whether the image is small or large. We confirmed the model even emits a fixed size per aspect ratio, so asking for less resolution buys nothing. Plan a batch by the number of images you need, never by their dimensions.

The two-track plan

The way past the wall is to stop sending every image to the metered engine. Split the work by what each subject is:

Two tracks: route each subject before you generateOne question decides which engine draws it
1. Classify

Real, photographable thing or place? Or an idea?

2. Route

Idea: vector SVG, free and unlimited. Real: diffusion, metered.

3. Review gate

Every image is checked before it ships.

Ambiguous subject? Default it to vector: it is free and safe, and the rare exception can move later.

  • Vector track (free, unlimited). Concepts and hard science are drawn as SVG by a coding agent. No quota, no per-image cost, and consistent by construction.
  • Diffusion track (metered). Photographic subjects — food, places, materials — go to the image model, because a vector cannot fake a photograph.

Route well and the scarce budget is spent only where a photograph is genuinely needed. Everything conceptual leaves the meter entirely. How the two engines and the review gate fit into one pipeline is covered in multi-AI orchestration for an image pipeline.

How to classify a subject

Routing depends on a quick, repeatable classification. We sort every subject into one of four families, which map cleanly onto the two tracks:

FamilyExample subjectsTrack
Conceptual (systems, data, security, finance, business)programming, analytics, cybersecurityVector / SVG
Scientific abstractionphysics, chemistry, mathematics, complexityVector / SVG
Editorial still-life and scenecooking, crafts, music, languages as cultureDiffusion
Environmental and atmosphericsustainability, history of place, societyDiffusion

The decision rule underneath the table is one question: is the subject a real, photographable thing or place? If yes, it is diffusion. If it is an idea, a system, or an abstraction, it is vector. When a subject is ambiguous, default it to vector — it is free and safe, and you can move the rare exception later.

This is a lightweight routing scheme, not a full taxonomy; on designing a classification scheme that scales — facets versus categories — see designing a classification scheme.

Classification is one question: is this a photograph of something real, or a picture of an idea?

The library lever: one image per subject, not per page

Even the metered half shrinks dramatically with a second move: generate one shared image per subject cluster rather than one per page. A network of many courses on the same topic can share a single, well-made subject image, so the count drops from tens of thousands to a few hundred clusters. Bespoke images stay reserved for flagship pages where distinctiveness earns its cost.

The math: weeks, not months

Put the moves together against a catalog of roughly 200 to 400 subject clusters:

  • The conceptual and scientific clusters go to the vector track — free, and produced in a handful of focused sessions.
  • The photographic clusters — perhaps a hundred or two — go to the diffusion track at about fifty a day, finishing in one to two weeks.

The whole catalog is covered in weeks. The same catalog, generated bespoke for every page through the metered engine alone, is the six-to-eight-month job we started with. The saving is not a faster model; it is classification and routing.

The short version

AI image generation at scale is limited by a request quota, not by resolution, so shrinking images saves nothing and bespoke-everything takes months. Classify each subject with one question — real thing or idea — route ideas to a free vector track and real things to the metered diffusion track, and share one image per subject cluster instead of one per page. That turns a multi-month backfill into a job of weeks, and spends the scarce budget only where a photograph is truly required.

Frequently Asked Questions

Why does bespoke AI imagery take so long at scale?

Because image services meter requests within a time window, and a large catalog needs tens of thousands of them. At roughly fifty images a day, twenty thousand bespoke images is a six-to-eight-month job before any re-generation.

Does lowering image resolution let me generate more within a quota?

No. The quota counts requests, not pixels, and a request costs the same at any size. Reducing resolution does not extend a fixed request limit; only reducing the number of requests does.

How do I decide which images to draw as vector and which to generate?

Ask whether the subject is a real, photographable thing or place, or an idea. Real things and scenes go to a diffusion model; concepts and abstractions are drawn as vector SVG, which is free and consistent.

What is subject classification for image generation?

It is sorting each topic into a small set of families — conceptual, scientific, editorial, environmental — that map to the right rendering track. Classification is what lets you route the metered budget only to subjects that need a photograph.

How does sharing images per subject reduce cost?

Instead of one image per page, you make one per subject cluster and reuse it across the many pages on that topic. That drops the count from tens of thousands to a few hundred, so even the metered track finishes quickly.

Share post:

Subscribe

Popular

More like this
Related

How to Merge Spreadsheets by URL (and Why Our Tool Reported 5 Misses That Weren’t)

Matching two spreadsheets on a URL column is the same job as matching a stock list to a price list by product code. It goes wrong in the same two places: how you clean the code, and how you count what didn't match.

Many-to-One: Why a Mapping Backlog Outgrows Its Target Taxonomy

You're mapping a messy source vocabulary onto a clean target taxonomy. The target has about 5,600 slots, so the job must be roughly 5,600 decisions — right? The backlog is already past 8,900, and still climbing.

The Fix That Didn’t Take: When a Content-Hash Gate Skips Your Code Change

You shipped a fix to how one field is computed, re-ran the pipeline across everything, and it reported a clean run. Then the consistency check still flags those records as wrong. The fix is in the code, the rebuild "ran" — and the records never changed. Your own optimisation skipped them.

Your Dedup Scan Is Over-Counting — Because It Forgot What You Already Fixed

The report said 80 duplicate groups still to resolve. You'd been resolving them for days. You run it again after a big batch and it *still* says 80-ish. The backlog isn't stubborn — the scan is counting work you already finished.