Skip to the content
Krizaka Blog
All posts

October 16, 2026 · 8 min read

What it really costs to generate images and video: my bills, measured

A Mac, a hosted API and a rented H100, on the same pictures and clips. The seconds, the dollars, the mistakes that cost money, and a small calculation for when renting a GPU pays off.

By Oussama AbidLire en français

During our last video batch, the final clip came off the GPU and the pod kept running. For about two hours, an H100 rented at US$3.99 an hour sat waiting for work that would never come. It had a watchdog meant to shut it down after a while without jobs. The watchdog didn't, because destroying the pod meant calling RunPod's API, and the pod had no key to do that. A guard loop running on my Mac is what finally stopped it.

Those two hours cost between $7 and $8, on a GPU bill of $23.23. That stings, and it's a good place to start talking about what generating images and video really costs.

Every number comes from the records of Orazaka, my AI engine, published on the Measured runs page. When a number comes from my notes, I say so.

Three ways to cook the same dish

I have three options. Cooking at home: my MacBook Pro M1 Max, 64 GB, which I already own. Ordering at a restaurant: a hosted API, here DigitalOcean's serverless inference, paid per output. Or renting a professional kitchen by the hour: a GPU at DigitalOcean or RunPod, paid for the time, stoves on or not.

Each option has its hidden price: memory and patience at home, the fixed menu at the restaurant, idle time in the rented kitchen.

The times below run from command to file: queueing, transfer and storage included.

Images

ModelWhereTime (median)PriceSucceeded
FLUX.2 [klein] 4B, 1024×1024Mac62 snothing billed6 of 18
Stable Diffusion 1.5, 512×512Mac58 snothing billed6 of 6
Z-Image Turbo, 1024×1024Macengine 158 snothing billed0 of 5
Stable Diffusion 3.5 Large, 1024×1024DigitalOcean serverless8 s$0.086 of 6

"Nothing billed" doesn't mean free. I haven't measured the Mac's electricity or wear, so I don't put a number on it.

The same prompt, three models:

A Moroccan riad courtyard, FLUX.2 klein 4B on the Mac
FLUX.2 klein on the Mac: 61 s.
How this was made
Model
FLUX.2 [klein] 4B · Apache-2.0
Engine
stable-diffusion.cpp on Metal, 4 steps
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Through
Orazaka Studio run on dev.orazaka.com
Prompt
A Moroccan riad courtyard in the late afternoon: a zellige tile fountain, orange trees, carved plaster arches, shafts of warm light. Editorial architecture photograph, 24mm lens, soft shadows, natural textures. No text, no lettering, no logos.
Seed
20261011
Size
1024×1024
Time
61 s, as recorded by the run
Cost
no cash cost (own hardware; electricity not metered)
Orazaka run
352eb15f-9022-4a56-a921-5f74a270250a
The same prompt, Stable Diffusion 3.5 Large on DigitalOcean serverless
SD 3.5 Large, hosted: 8 s, $0.08.
How this was made
Model
Stable Diffusion 3.5 Large · Stability AI Community Licence
Engine
hosted: DigitalOcean serverless inference (steps and guidance not exposed; seed not honoured)
Machine
hosted by the provider (not our machine)
Through
Orazaka Studio run on dev.orazaka.com
Prompt
A Moroccan riad courtyard in the late afternoon: a zellige tile fountain, orange trees, carved plaster arches, shafts of warm light. Editorial architecture photograph, 24mm lens, soft shadows, natural textures. No text, no lettering, no logos.
Seed
20261011
Size
1024×1024
Time
8 s, as recorded by the run
Cost
US$0.08 (the provider's price)
Orazaka run
64269eeb-f6e3-46c4-8421-fe9136672186
The same prompt, Stable Diffusion 1.5 on the Mac
SD 1.5 on the Mac: 58 s.
How this was made
Model
Stable Diffusion 1.5 · CreativeML OpenRAIL-M
Engine
stable-diffusion.cpp on Metal, 20 steps, guidance 7
Machine
MacBook Pro, Apple M1 Max, 64 GB (Metal)
Through
Orazaka Studio run on dev.orazaka.com
Prompt
A Moroccan riad courtyard in the late afternoon: a zellige tile fountain, orange trees, carved plaster arches, shafts of warm light. Editorial architecture photograph, 24mm lens, soft shadows, natural textures. No text, no lettering, no logos.
Seed
20261011
Size
512×512
Time
58 s, as recorded by the run
Cost
no cash cost (own hardware; electricity not metered)
Orazaka run
8e149fac-9a97-4552-98a8-e318444787da

FLUX.2's 6 out of 18 scared me at first. Reading the records, nearly every failure was mine. The image client gave up after two minutes, while the engine needed 60 to 75 seconds plus the image's trip through a tunnel. Worse: when it gave up, it returned a transparent 1×1 pixel image, and the run reported success. Two finished images were also overwritten by retries with the same name. Since then every download checks the file size, and I still count those failures.

Video

ModelWhereTime (median)Price per clipSucceeded
Wan 2.2 A14B, text to video, 832×480DigitalOcean serverless131 s$0.6021 of 21
Wan 2.2 TI2V 5B, image to video, 1280×704Rented H100 (RunPod)175 s$0.19 to $0.3119 of 19
Wan 2.2 A14B, text to video, 720pRented H100 (RunPod)1,111 s$1.23 to $1.386 of 6
Wan 2.2 TI2V 5B, 1280×704RTX 4000 Ada (DigitalOcean)1,106 s$0.231 of 1
Wan 2.2 TI2V 5B, 480×832Macout of memory—0

On a rented GPU, the price of a clip is its compute time times the hourly rate, without start-up or waiting. So the real bill is higher; more on that below.

Wan 2.2 A14B, hosted: 134 s, $0.60. The prompt and seed are under the clip. · 0.4 MB
How this was made
Model
Wan 2.2 T2V A14B · Apache-2.0
Engine
hosted: DigitalOcean serverless inference (steps and guidance not exposed)
Machine
hosted by the provider (not our machine)
Through
orazaka video --model wan2-2-t2v-a14b, routed by Orazaka
Prompt
Extreme close-up, slow motion: a stream of amber mint tea pours from a silver teapot held high into a small engraved glass, steam curling through a shaft of golden-hour light inside a Berber tent, dust motes floating, shallow depth of field, anamorphic lens flare, 35mm film grain, cinematic color grade.
Seed
20261011
Size
832×480 · 16 fps, 5.06 s
Time
134 s, as recorded by the run
Cost
US$0.60 (the provider's price)
Orazaka run
25948442-7c68-4e66-94d6-39cd8b96438d
Sound
music bed made by Orazaka (Studio video-sound, ACE-Step 1.5, MIT), -14 LUFS, AAC

The hosted version is the simplest: $0.60 and two minutes, every time. But it sets the menu. I asked for 720×1280, 480×832, 1280×720, with and without a format parameter. Every answer came back at 832×480. No vertical, ever. So Orazaka refuses that model for 9:16, by name, rather than quietly cropping a landscape frame.

Vertical and 720p are why I rented an H100. The A14B model runs there with our settings, but doesn't fit whole on the 80 GB card: its two experts weigh 57 GB and get swapped with host memory. About 26 seconds a step, 18 minutes a clip. More expensive than hosted, but at 720p and in the format I want.

What I actually paid

BatchDetailPaid
Serverless, 15 October21 clips ($12.60), 7 size and seed test calls ($4.20), 7 images ($0.56)$17.36
DigitalOcean GPU4 RTX 4000 Ada droplets, 4.26 h at $0.76$3.24
RunPod GPU1 H100 80 GB pod, 5.01 h at $3.99$19.99

Of the $23.23 of rented GPU, computing the clips themselves accounts for $11.72. The other half went to start-up, downloading weights, failed attempts and idle time. A GPU hour is billed from the machine's creation to its destruction, not just while it works.

The failed attempts have their own story. After the first successful clip, ten clips in a row failed in 17 seconds: the worker checked free memory before each job and counted the model it had already loaded (about 22 GB) as memory in use (orazaka-worker-media#22). Three clips were lost mid-render, up to 9 minutes of GPU each, because a deploy of the dev site restarted the relay and dropped the tunnel (#24). And another time, the laptop driving the batch went to sleep: the droplet sat for 1.2 hours without work before its watchdog destroyed it.

When renting a GPU pays off

This is the calculation I care about most. The price of a clip on a rented GPU is the hourly rate, divided by the clips it makes in an hour, divided again by the share of time the machine is really working. A taxi waiting at the kerb costs as much as the same taxi driving. The slider below uses the H100's measured numbers: $3.99 an hour, 175 seconds per image-to-video clip. Move it to see where it crosses the hosted $0.60.

Two cautions. The two clips aren't the same: hosted is text to video at 832×480, the H100 is image to video at 1280×704 with a smaller model. And the calculation assumes start-up is free, which it isn't. What it shows is the shape of the answer: fully busy, the rented GPU costs about a third of hosted. As soon as it waits, the advantage melts, then flips.

Since then the rule is simple. A guard loop runs for the whole batch, and the pod is stopped as soon as the queue is empty.

The credits side

Orazaka bills its users in credits. A run first places a hold, like a hotel blocking an amount on your card at check-in. It runs its steps, then settles once at the end. A generation that produces nothing releases its hold instead of being billed at a guess.

In September I changed the unit: a credit went from 1 cent to 0.1 cent. Before, small text steps were rounded up to a minimum, and image generation was billed at zero. I replayed five real workloads before and after, on the real database:

WorkloadBeforeAfter
trade-showcase3.00¢12.10¢
lead-research3.00¢1.40¢
outbound-prospection2.00¢0.60¢
followup-sequences3.00¢1.00¢
realestate-reels15.00¢14.00¢

Text steps got 53 to 70% cheaper. Nothing was discounted: we just stopped billing a minimum. trade-showcase quadrupled because a 512×512 image now costs 10 cents instead of zero. The models being real, two runs don't use quite the same tokens, but that noise stays at a few per cent.

What I decided

Images stay on the Mac by default, and hosted takes over when eight seconds matter more than eight cents. Video goes to a GPU when you choose it: hosted for a quick landscape clip, a rented H100 for 720p and vertical, never the Mac. A rented GPU lives for one batch only. And licences are data: MMAudio, which adds synced sound effects to a video, has a non-commercial licence, so it stays available but is never the default.

What I haven't measured

The Mac's electricity and wear. Quality, which I leave you to judge on the pictures. A comparison of the same clip, at the same size, between hosted and the rented GPU. And a margin: my records hold the cost of each run, not the revenue, so I don't publish one.

If you keep one thing: on a rented GPU, a minute of waiting costs exactly as much as a minute of work. Measure how much of the time your machine really works before you compare its price with an API's.

Every number holds for this setup, on 15 and 16 October 2026. I measure again when the setup changes. To see what these models do with a prompt, read the anatomy of a prompt.

Subscribe to the feed to follow new posts

Related posts

October 16, 2026 · 7 min read

The anatomy of an AI prompt: what each added line really changes

A six-word prompt, then three layers of detail, on my Mac with the same seed. What gets better, what gets worse, what a negative prompt can do, and what I didn't prove.

  • AI
  • Prompts
  • Orazaka

October 16, 2026 · 6 min read

An AI platform on one Mac: what breaks, what Spring AI 2 changed, and where the laptop gives up

A Mac out of breath, a ClassCastException that killed the chat, models that became database rows. What I learned running Orazaka on a laptop.

  • Orazaka
  • AI

October 16, 2026 · 4 min read

Why I build sovereign AI in Montréal

A GPU rented in Montréal, a Quebec privacy law, and three plain questions to ask any AI tool. What sovereign means at Krizaka, what it costs, and what is still unsolved.

  • Sovereignty
  • AI
  • Montréal