fal pricing units: per megapixel, per 1,000 tokens, per second

fal's price page quotes per second, per image, per megapixel, per 1,000 tokens and per 1,000 characters. Convert each to dollars per output first.

5 min readSume
All posts

fal's pricing page does not use one unit. Video rows are per second, some image rows are per image, others per megapixel, Seedance 2 is per 1,000 tokens, and TTS is per 1,000 characters. To compare two vendors, convert each row to dollars for the output you will actually make.

Rows below are from fal's pricing page, read 2026-10-02. The page itself says prices are per listed billing unit, units per $1 are approximate, and settings such as resolution, duration and quality may affect the final cost.

What units does the page use?

These rows are a sample across the page's video, image and audio tables, picked to show each unit once.

Sample model API rows from fal's pricing page, read 2026-10-02.
Model (endpoint)UnitPrice
Nano Banana 2 (fal-ai/nano-banana-2)image$0.08
Nano Banana Pro (fal-ai/nano-banana-pro)image$0.15
Z Image Turbo (fal-ai/z-image/turbo)megapixel$0.005
FLUX.1 [schnell] (fal-ai/flux/schnell)megapixel$0.003
Kling Video v3 Pro (fal-ai/kling-video/v3/pro/text-to-video)second$0.14
H3 Max Turbo (minimax/h3-max-turbo/text-to-video)second$0.025
Seedance 2 (bytedance/seedance-2.0/image-to-video)1000 tokens$0.014
GPT Image 2 (openai/gpt-image-2)units$1
ElevenLabs TTS Eleven V3 (fal-ai/elevenlabs/tts/eleven-v3)1000 characters$0.1

How do I turn each unit into a cost per output?

Per image is already per output. Per second is rate times clip length: a 10-second clip at $0.14 per second is $1.40. Per megapixel is rate times output megapixels: at $0.005 a 1 MP output is $0.005, and how fal rounds a given size is on the model page. Per 1,000 tokens needs the token count the model charges for a clip, which the pricing page does not give, and a row listed as units at $1 needs the model's own page to learn what a unit is.

For those last two, run one test job and read the charge instead of guessing.

What changes when the same job runs on Sume?

Sume bills in USD per job. For video, the Videos API docs say the balance is reserved on submit at provider list x 1.25 and that usage.cost is the Sume billable amount; for images, endpoint pricing lines already include Sume's margin. So a fal list price is a starting reference, not your Sume price.

Compare final USD per output from each side after a small run: usage.cost on the job, or GET /v1/usage?job_id=... for the ledger row.

What should I do before comparing?

A short routine keeps the comparison honest.

  • Write down output size, duration and quality first.
  • Convert each vendor row to dollars for that output.
  • Treat token- and unit-priced rows as unknown until a test job shows the charge.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume