Skip to main content

AI Media API Pricing Comparison: Images, Video, and Delivery

Compare image and video API costs by exact model, dimensions, duration, audio, rounding, and accepted delivery with reproducible calculations.

Author
Lydia
Published
Read
14 min read
Updated
Two creative producers reviewing a budget beside portrait prints, a camera, a stopwatch and a balance scale

You have a job in mind, say a 5-second 720p clip or a 1024-pixel product image, and two price pages that don't use the same unit. The fix is to turn every rate into the cost of that one deliverable. Done that way, same-name models turn out to differ a lot: a 5-second Seedance 2.0 clip at 720p is $0.76 on SpicyAPI, $0.90 on Replicate and about $1.52 on fal, while fal's Wan 2.2 is cheaper than SpicyAPI's flat-priced one. Prices below come from the providers' public pages and SpicyAPI's live catalogue on October 4, 2026.

This page compares providers and shows how to convert units. For SpicyAPI-only price tables, minute-long budgets and app subscriptions, see the per-unit pricing guide.

The same model across providers

One image or one 5-second clip, matched by model name and task, with the rate multiplied out. Provider-specific implementations and controls can differ; this is a billing comparison, not a matched output-quality test. "Per MP" means per megapixel.

TaskfalReplicateSpicyAPI
Seedream 4.0 text to image, one image$0.03 per image$0.03 per output image$0.03 per image
Z-Image Turbo text to image, one 1 MP image$0.005 per MP$0.005 up to 1 MP, $0.01 up to 2 MP (PrunaAI build)$0.01 per image
FLUX.1 dev text to image, 1024 × 1024$0.025 per billed MP, rounded up; quote the exact size$0.025 per imagenone; FLUX.1 dev LoRA is a different family at $0.018
Seedance 2.0 text to video, 5 s, 720p$1.52 with audio ($0.3034 per second)$0.90 ($0.18 per second, no video input)$0.76 ($0.152 per second), audio on or off
Seedance 2.0 text to video, 5 s, 1080p$3.41 with audio ($0.682 per second)$2.25 ($0.45 per second, no video input)$1.87 ($0.374 per second), audio on or off

The next three video tasks compare fal with SpicyAPI:

TaskfalSpicyAPI
Wan 2.2 image to video, 5 s, 480p / 720p$0.20 / $0.40 at 80 frames (16 fps; 81 frames is $0.2025 / $0.405)$0.24 / $0.48 flat per request
Wan 2.5 text to video (fal preview endpoint), 5 s, 480p / 720p / 1080p$0.25 / $0.50 / $0.75$0.225 / $0.45 / $0.675
Seedance 2.0 Fast text to video, 5 s, 720p$1.21 with audio ($0.2419 per second)$0.484 ($0.0968 per second)

What the tables say:

  • Seedream 4.0 is a three-way tie at $0.03. Pick by features and policy, not price.
  • Z-Image Turbo is a tie at 1 MP between fal and Replicate, both half of SpicyAPI's $0.01. Size sets their price: fal publishes a per-MP rate, while Replicate's PrunaAI README lists resolution tiers. Below 1 MP those rules can produce different bills. SpicyAPI's is per image. fal's optional prompt expansion adds $0.0025 per request.
  • Seedance 2.0 is cheapest on SpicyAPI at both resolutions: about half of fal and 15 to 17% below Replicate. Turning audio on adds nothing on SpicyAPI.
  • Wan 2.5 is about 10% cheaper on SpicyAPI.
  • Wan 2.2 is cheaper on fal. Its 5-second clip is $0.04 below SpicyAPI at 480p and $0.08 below at 720p, because fal bills frames at 16 per second while SpicyAPI charges a flat price for a fixed 5-second request. fal also lets you set the frame count and has a 580p tier at $0.06 per second; SpicyAPI's base task does not. Replicate's Wan 2.2 Fast is a PrunaAI-optimised build billed per output video ($0.05 at 480p, $0.11 at 720p for the base variant), a different product from either.

Sources: fal Seedream 4.0, fal Z-Image Turbo, fal FLUX.1 dev, fal Wan 2.2 A14B, fal Wan 2.5, fal Seedance 2.0; Replicate Seedream 4, Replicate Seedance 2.0, Replicate Z-Image Turbo, Replicate Wan 2.2 Fast, Replicate pricing; SpicyAPI rows are the Seedream 4.0, Wan 2.2, Wan 2.5 and Seedance 2.0 pages. Same name does not mean same output: compare controls and results before moving a workload.

Convert units before you compare

Providers bill five different things, and a dollar amount per unit looks the same in all of them:

  • Output images: a flat price per delivered picture.
  • Megapixels: price follows image area, often rounded up.
  • Generated seconds: the length of the new clip.
  • Source seconds: the length of the input you send to a transformation, such as an upscale.
  • Compute seconds: runtime on hardware.
Explanatory diagram: Every public rate needs its own billed quantity. A familiar model name does not make units interchangeable.
Every public rate needs its own billed quantity. A familiar model name does not make units interchangeable.

Rounding can create price steps. At $0.025 per billed megapixel, one unit costs $0.025, two cost $0.050 and five cost $0.125. Determine the billed quantity from the exact endpoint: image dimensions alone do not establish whether it treats 1024 × 1024 as one or two units. The following illustration and calculation use an explicit decimal assumption of 1,000,000 pixels per unit.

Diagram: price steps at $0.025 per rounded megapixel. 1,000,000 px is 1 unit, 1024 × 1024 and 1536 × 1024 are 2 units, 2048 × 2048 is 5 units.
Illustrative decimal-megapixel calculation. Use the endpoint quote to establish the actual billed quantity.
python
from decimal import Decimal
from math import ceil

width, height, count = 1024, 1024, 1
rate = Decimal("0.025")  # illustrative decimal-MP billing, not an endpoint quote
megapixels = Decimal(width * height) / Decimal(1_000_000)
cost = rate * ceil(megapixels) * count
print(megapixels, ceil(megapixels), cost)  # 1.048576 2 0.050

Count outputs too: if an endpoint returns four images by default, a per-image price is four times the single-image figure. Store width and height, not a label such as "1K". File format does not change megapixel billing; a smaller WebP costs the same as a PNG of the same dimensions.

Video: frames, resolution, audio

fal bills Wan 2.2 in video seconds at 16 frames per second, so frame count sets the price: 80 frames is 5 billing seconds, $0.20 at 480p; 81 frames is 5.0625 seconds, $0.2025. SpicyAPI's base Wan 2.2 takes a fixed 5-second request at a flat $0.24 (480p) or $0.48 (720p). Wan 2.2 Spicy and the LoRA versions are separate families with their own prices and controls, so don't drop them into a base-Wan row.

For Seedance 2.0, SpicyAPI prices per generated second: $0.07 at 480p, $0.152 at 720p, $0.374 at 1080p, $0.778 at 4K, and the same price with audio on or off. Five seconds at 720p is $0.76, ten seconds $1.52, three five-second candidates $2.28. Two things move the bill: web search on text-to-video (480p goes from $0.07 to $0.114 per second), and reference video on reference-to-video, whose seconds are billed on top of the output. Reference clips are normalized before billing, and a minimum reference length can apply based on output length. For example, a 5-second output has a 4-second billed-reference minimum: even a 2-second reference produces 9 billed seconds, not 7. Smart duration lets the model pick the length, so budget the maximum or choose a fixed duration.

Diagram: three 5-second price calculations. SpicyAPI Wan 2.2 at 480p is $0.24 per request, fal Wan 2.2 is 80 frames divided by 16 times $0.04 for $0.20, Seedance 2.0 at 720p is 5 seconds times $0.152 for $0.76.
Wan 2.2 on fal bills 80 frames at 16 per second ($0.20); on SpicyAPI it is a flat $0.24 per 5-second request. Seedance 2.0 at 720p is 5 seconds at $0.152.

Where comparison tables go wrong

Roundup posts and price trackers often quote one number per model. When you copy from them, check these three things against the provider's own page:

  • Resolution. A "from" price is usually the 480p or 720p rate. Seedance 2.0 on SpicyAPI is $0.152 per second at 720p and $0.374 at 1080p, so a headline built on the lower tier understates a 1080p job by more than half.
  • Variant. Fast, Mini, Pro, Spicy and LoRA versions share a name stem but have their own rates and controls.
  • Audio and extras. "With audio" rates, web search, reference video and prompt expansion each change the bill on some models.

Finishing steps belong in the budget

A delivered asset often needs more than one call. These SpicyAPI rows are flat or per source second, so they are easy to add:

StepPriceExample
Background Remover$0.0048 per image100 cutouts: $0.48
Image Expander$0.024 per image3 layout variants of one source: $0.072
Video Upscaler$0.006 per source second at 720p or 1080p, $0.012 at 2K, $0.024 at 4K5.2-second source at 1080p: 6 seconds, $0.036

The upscaler rounds source seconds up, has a 3-second minimum and accepts 3 to 60 seconds. Its quote assumes the 60-second maximum and releases the difference when the task settles: at 4K that is $1.44 on the quote, far less for a short clip. If you trim a generated clip before upscaling, the upscaler bills the trimmed file, not the original generation.

Quote, reservation, settlement

A quote prices a proposed request. A reservation holds funds when the quantity is uncertain, as with smart duration or the upscaler's maximum. Settlement is the final charge. Show them as three different numbers in your app.

If a price-affecting field changes (duration, resolution, a reference file, a trimmed source), ask for a new quote; an old one no longer describes the request. Keep one job identity through retries so a lost response never creates a second paid task. A dissatisfied reviewer is not a refund event; technical failures follow the model's billing terms on its page.

Runtime pricing needs a measured runtime

Replicate bills some models by hardware time. Its public schedule lists an A100 at $0.0014 per second and an H100 at $0.001525 per second, so 20 billable A100 seconds cost $0.028. This is an assumed runtime, not a measured benchmark for any model. That is a per-image cost only once you know the exact model, hardware, billable setup and idle time, and the runtime for your size and settings. Divide spend by accepted outputs, not tasks received. Use a fixed per-output rate when the task is simple and the volume is uneven; runtime billing can pay off for a custom model you keep busy.

Cost per accepted asset

Here, an accepted asset means a keeper selected for delivery, not an HTTP 202 response accepting a job. The model charge is only the numerator. Take twelve 5-second Seedance 2.0 candidates at 720p: 12 × $0.76 = $9.12. If three are kept and each is upscaled at 1080p, that is 3 × 5 × $0.006 = $0.09 more, $9.21 total or $3.07 per master. If six are kept, the same $9.12 plus $0.18 of upscaling is $9.30, or $1.55 per master. These acceptance counts are example assumptions; use your own. The point is that review and retake rate move cost per master far more than a few cents of difference in the unit rate, and that labour and source-image creation belong in the total.

Diagram: 12 candidates cost $9.12; 3 accepted plus 3 upscales is $9.21, or $3.07 each; 6 accepted plus 6 upscales is $9.30, or $1.55 each.
Example acceptance counts: 3 accepted masters cost $3.07 each, 6 accepted cost $1.55 each. Upscaling assumes 5 seconds at $0.006 per second.

Find which assumption drives the total

Change one input at a time: size, duration, candidate count, accepted count or finishing tier. Six five-second candidates and three ten-second ones use the same seconds but buy different things: more separate takes versus more time per take. Give the largest uncertain line a low and high case before committing the batch.

Credits, discounts and storage

Compare list prices first and treat promotions separately: a credit lowers the first invoice, not the unit rate, and a volume discount applies only to the account that negotiated it. Don't treat one credit as one image or one second unless the platform publishes that conversion; a quote in dollars avoids the question.

Provider result retention is not your archive. Copy deliverables to your own storage (retention and permanent storage guide) and measure real file sizes before pricing storage and transfer: bytes depend on codec and bitrate, not on megapixels or generated seconds.

A ledger you can reconcile

For each paid job, keep five fields: price source and quantity, quote, task ID, decoded output properties (dimensions, duration, format), and settled charge plus the accept or reject decision. Leave credentials and temporary signed links out of it.

Diagram: four ledger fields, rate and quote, source revision and quantity, output properties, settled charge and acceptance.
Ledger fields: rate and quote, source revision and quantity, output properties, settled charge and acceptance.

What to do next

  • Same task on two providers: multiply each rate by your real size or duration, then request the exact quote.
  • Different units: convert both to the cost of one deliverable, as in the table above.
  • Different model variants: compare controls and output first, price second.
  • Missing task: price that step wherever it exists and add it to the total.

FAQ

Which is cheaper, fal, Replicate or SpicyAPI?

It depends on the model and settings in the tables. Seedance 2.0 and Wan 2.5 are cheapest on SpicyAPI; Z-Image Turbo is cheaper on fal and Replicate, which tie at 1 MP; base Wan 2.2 is cheaper on fal; Seedream 4.0 is $0.03 on all three.

Why does a megapixel price look cheaper than a per-image price?

Area-based prices grow with billed size and can round up to whole units. Compare the exact size quote with the flat per-image rate; a per-megapixel headline alone does not establish the cheaper provider.

Does audio cost extra?

On SpicyAPI's Seedance 2.0 the price is the same with audio on or off. The fal Seedance 2.0 rates quoted above are for output with audio.

Also in 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

Try it yourself

Pay only for what you run — no plan, no subscription.

Made with MiniMax H3 · ByteDance Seedance 2.0 Fast