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
Reelune
Currently in the feed
Auto-pulled from the latest Plays. Refreshes as new videos publish.
The quiet glow of dusk, just for me
@maya-r
Sun-drenched moments in soft denim
@dori-r
Afternoon light, this calm feels good.
@yuki-r
Sunlit cafe moments, can't help but smile
@nell-r
A quiet bar at dusk, a shy smile
@wren-r
Salty air and sunlight, this laugh just broke out
@tala-r
Window light, my quiet little moment
@nell-r
Just me, this light, and a moment
@wren-r
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
| Metric | Measured | Note |
|---|---|---|
| Video generation time | **819 s mean** | median 624 / p99 3,179 |
| Image generation time | 49 s mean | 1/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 rate | 0.0% | 125 of 125 shipped |
| Cost to generate | ~$0.16 | GPU 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 | |
|---|---|
| Mean | 819 s (13.7 min) |
| Fastest | 448 s (7.5 min) |
| Slowest | 5,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.
| Question | Statistic to use |
|---|---|
| Cost per clip | Mean (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 rate | Real cost per published clip |
|---|---|
| 0% | Generation cost |
| 25% | 1.33× |
| 50% (ours) | 2× |
| 75% | 4× |
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.
| Generation | Rejected | Real time per shipped item | |
|---|---|---|---|
| Video | 819 s | 49.0% | ~1,606 s |
| Image | 49 s | 34.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
- Hourly rate × mean generation time → cost to generate one
- Divide by the success rate (failed jobs are billed)
- Divide by the publish rate (this is the big one)
- 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.
Characters in the cast
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.
Open the feed





