Reelune

What an AI Video Actually Costs — 704 Generated, Half Never Shipped

Price the GPU hour and you will be off by 2×. The measured cost structure

  • AI video cost
  • AI video generation price
  • GPU rental cost
  • cost per generated video
Free forever
No signup
No real people
Updated daily

What does one AI video cost to produce? Multiply the GPU hourly rate by generation time — except **that calculation is off by nearly half.** Here is the real cost structure, measured across 704 videos.

Measured figures

MetricMeasuredNote
Video generation time**819 s mean**median 624 / p99 3,179
Image generation time49 s mean1/17th of a video
Job failure rate**8.5%**57 of 670. Billed anyway
Video rejection rate**49.0%**337 of 688 resolved
Text rejection rate0.0%125 of 125 shipped
Cost to generate~$0.16GPU time only
Cost per published clip**~$0.33**failures and rejects included

The answer first

About $0.16 per video generated. About $0.33 per video actually published.

Same output, 2× apart. The reason is simple: half of what we generate never ships.

Budget from the GPU hourly rate alone and you will plan for half of what you spend.

How this was measured

No estimates — only what production actually recorded.

  • 670 generation jobs (613 completed, 57 failed)
  • Start and finish timestamps for 401 video jobs
  • Publish/reject outcomes for 704 generated videos
  • The GPU hourly rate

This is a running system, not a benchmark rig. Contention with other work on the same GPU is included, because that is what you actually pay for.

Time per video

Measured across 401 jobs.

Time
Mean819 s (13.7 min)
Fastest448 s (7.5 min)
Slowest5,718 s (95 min)

Under tuned, uncontended conditions a clip finishes in 11–12 minutes. The mean is still 13.7. The gap is GPU contention.

The 95-minute outlier is rare, but outliers are billed too. Budgeting from the ideal-condition number leaves you short.

Images are a different order of magnitude.

Images cost 1/17th of a video. Lumping both under "AI generation" will make you miss by an order of magnitude.

The mean will under-plan you

Planning from "13.7 minutes average" is a mistake. The distribution across 401 jobs:

Half of all jobs finish in 10.4 minutes — close to the tuned ideal.

The mean sits at 13.7 because the slow tail drags it up. One job in a hundred takes 53 minutes, five times the median.

QuestionStatistic to use
Cost per clipMean (the tail is billed)
"Roughly how long?"Median
How many can I queue?p90 (pack tighter and it backs up)

Mean, median and percentiles answer different questions. Try to cover all three with one number and you will be wrong somewhere.

8.5% of jobs fail

57 of 670 jobs failed.

What matters is that failed jobs still consume GPU time. They run partway and die, leaving you with billing and no artifact.

Divide only by successful jobs and your per-unit cost comes out too low. The failures have to be in the denominator or the number will not match the invoice.

The real driver was the rejection rate

This is where the money goes. Of 704 videos generated, 351 were published.

We throw away roughly half. Broken hands, unnatural motion, output that did not match intent.

Rejection does not add to cost — it divides.

Rejection rateReal cost per published clip
0%Generation cost
25%1.33×
50% (ours)
75%

Cutting rejection from 50% to 25% is worth the same as making generation 1.5× faster — and the output gets better rather than cheaper.

Rejection scales with output complexity

The rate is not uniform. Split by type and it separates cleanly.

Every one of 125 text posts shipped — zero rejections. Images lose one in three. Video loses nearly one in two.

The reason is the surface area available to break. Text can be read and fixed. Images break at hands and posture. Video adds failure across time — motion that stalls or degrades mid-clip.

This compounds into cost. The raw time gap was 17×; rejection widens it.

GenerationRejectedReal time per shipped item
Video819 s49.0%~1,606 s
Image49 s34.3%~75 s

A nominal 17× becomes an effective 21×.

Do not budget "AI generation" as one line item. Text, image and video differ by close to three orders of magnitude. Confirm the idea actually requires video first.

Which is why speed optimisation runs out

Speeding up generation works. We cut a clip from 21 minutes to 11.

But that only halves generation cost. With rejection still at 50%, cost per published clip lands at half, doubled — back where it started.

  • Speed optimisation has a floor. You cannot reach zero seconds
  • Rejection has more headroom left

We did speed first because it was easy to measure and certain to work. Looking at these numbers, rejection is the next thing to attack.

Costs that are easy to miss

GPU time is not the whole bill.

  • Rejected files. Marked rejected in the database, still sitting in storage, still billing until someone cleans up
  • Start-image generation. If video is built from a still, that stage adds on top
  • Idle time. A rented GPU bills whether or not it is generating. Forgetting to stop it is the most expensive mistake available

The highest-leverage saving is turning it off when not in use. Idle billing is pure waste with no optimisation available.

How to estimate this properly

  1. Hourly rate × mean generation time → cost to generate one
  2. Divide by the success rate (failed jobs are billed)
  3. Divide by the publish rate (this is the big one)
  4. Add storage and idle time

Stop at step 1 and you have half the real number.

Ours: step 1 gave $0.16. Running through step 3 gave $0.33.

FAQ

Why is the mean higher than the tuned figure?

The GPU is shared with other work. Under tuned, uncontended conditions a clip finishes in 11–12 minutes, but the measured mean across 401 jobs is 13.7, with a 95-minute worst case. Budgeting from the ideal number leaves you short.

Isn't a 50% rejection rate too high?

It depends entirely on where you set the publishing bar. Raise the bar and rejection rises with cost; lower it and you pay less for worse output. The quality-versus-cost trade-off lives in this single number.

Is the video-versus-image gap really that large?

17× in raw generation time, and 21× once rejection rates are included. Video generates many frames, so a gap is expected — but treating both as one budget line will make you miss by an order of magnitude.

What saves the most money?

Turning the GPU off when it is idle. That billing is pure waste with no optimisation available. Reducing rejection comes second, and speeding up generation third.

Do these numbers transfer to other setups?

The timings do not — they depend on GPU generation, resolution and step count. What transfers is the order of the calculation: generation cost, divided by success rate, divided by publish rate. An estimate that omits rejection comes out too low in any environment.