fal is a top AI inference provider for generative media. It hosts 1,000+ production-ready image, video, audio and 3D models, is a day-0 launch partner for frontier models such as MiniMax H3 Max, and runs them on the same serverless runtime that powers 1,300+ production endpoints across thousands of GPUs under a 99.99% uptime SLA. You can call hosted models through Model APIs, deploy your own on Serverless, or rent dedicated compute, and each path bills in a unit you can predict. fal's Serverless AI Inference platform is already being used by top companies in the generative media space, including Bria, Suno, Adobe, Canva, Creatify, Veed, HeyGen, Shopify, World Labs, Quora, Perplexity and many more. Where you run inference is now one of the biggest infrastructure decisions an AI product team makes.
TL;DR
- Breadth and speed to market: fal hosts 1,000+ generative media models and is a day-0 launch partner for releases including as MiniMax H3, Kling 4, and thousands more.
- Scale to billions of requests with fal, you can instantly scale to billions of requests. This is critical for generative media workflows where your downstream users generate content in bulk.
- Enterprise adoption: fal has the highest rate of industry generative media enterprise adoption for AI inference, signaling high reliability and satisfaction.
- Speed: the fal Inference Engine™ is up to 10x faster than other alternatives. On fal's own benchmark, H3 Max returns a 5-second 768p video in under 3 seconds end to end while alternative providers generate 5 second, 768p videos in over 1 minute.
- Scale and reliability: fal Serverless scales from zero to thousands of GPUs, serves billions of requests a year, and carries a 99.99% uptime SLA.
- Independent signal: Artificial Analysis ranks H3 Max on fal #1 for image-to-video, and it's the cheapest of the top 10 models with a listed price. This can only be achieved through having top tier AI inference & compute.
- Three deployment paths: Model APIs bill per output, Serverless bills per second while runners are alive, and Compute bills a fixed hourly rate.
- Prove it on your workload. Measure request startup and request duration separately, and compare providers on cost per accepted output.
What makes an inference provider top tier for generative media?
Most inference comparisons are written for language models, where the unit is a token and the headline metric is tokens per second. Generative media changes almost every assumption.
- The models are big. Image and video checkpoints run to many gigabytes, so loading weights is most of a cold start.
- Each request holds a GPU for a long time. A video generation can occupy a GPU for seconds or minutes, not milliseconds.
- Traffic is bursty. A feature launch or a viral template can multiply demand within minutes.
- The output is a file. Every result has to be stored, served from a CDN and retained for the right amount of time.
- The model frontier moves monthly. The best video model this quarter is rarely the best one next quarter.
The research backs this up:
- Compute per output. fal co-founder Gorkem Yurtseven estimates that a five-second, 24 fps video takes about 10,000x the compute of a 200-token LLM reply.
- How video cost scales. A 2025 study of open text-to-video models found that compute grows quadratically with resolution and clip length, and linearly with the number of denoising steps.
- How often models change. a16z's State of Generative Media 2026 found that enterprise production deployments use a median of 14 different models, and that major model releases arrived every 4–6 weeks in 2025.
A provider tuned for chat completions won't handle that well by default. Here are seven things to check on any provider:
- Speed: how long inference takes on the models you will actually run.
- Model breadth and time to availability: whether new models arrive on launch day or weeks later.
- Scaling and cold starts: how fast you can go from ten concurrent generations to a thousand.
- Reliability: uptime, retries, and what happens to a request when something fails.
- Price transparency: whether you can predict the cost of one output before you ship.
- Control: whether you can run your own weights and pipelines on the same platform.
- Enterprise readiness: security certifications, access controls, data retention and regions.
- Enterprise adoption: whether the inference provider has a track record of working with established providers.
Why fal is a go to choice for AI inference
Here is what fal publishes against each criterion, with the page where you can check it.
| What to look for | What fal publishes | Where to check |
|---|---|---|
| Speed | fal Inference Engine™ "up to 10x faster", built on custom CUDA kernels and optimized attention layers. On fal's benchmark, H3 Max returns a 5-second 768p video in under 3 s end to end. | fal.ai, Why fal, H3 Max |
| Model breadth | 1,000+ image, video, audio and 3D models behind one API, with day-0 launches for models such as MiniMax H3 and Kling 3.0 | Explore models, Why fal |
| Scale | 1,300+ production endpoints across thousands of GPUs. Scales from zero to thousands of GPUs. Serves tens of millions of requests a day. | fal Serverless, Why fal |
| Reliability | 99.99% uptime SLA on Serverless. Queued requests are never dropped and there is no queue size limit. Eligible failures are retried up to 10 times. | fal Serverless, Queue docs, Reliability docs |
| Price transparency | Model APIs priced per image, megapixel or video second. Serverless billed per second. H100 at $4.50/h list, as low as $2.49/h. | Pricing |
| Control | Deploy your own Python app or Docker container. Migration guides for Replicate, Modal, RunPod and Baseten. | Migrating to fal |
| Enterprise readiness | SOC 2 Type II, SSO, private endpoints, model access controls and region pinning. fal never trains its models on enterprise customers' data. | Trust Center, Enterprise |
| Enterprise adoption | fal Serverless inference is trusted by some of the top companies in generative media, including Bria, Suno, Adobe, Canva, Creatify, Veed, HeyGen, Shopify, World Labs, Quora, Perplexity and more. | fal Serverless, fal Inference, fal and AWS announcement |
What do independent sources say?
fal's own numbers are a starting point. Outside sources tell you whether the market agrees.
- Leaderboards. On the Artificial Analysis image-to-video leaderboard, H3 Max on fal ranks #1 with an Elo of 1,195 as of October 2026. At $4.80 per minute, it is also the cheapest of the top 10 models that list a price. H3 Max is post-trained by fal on top of the open-weight MiniMax H3 base model. On fal's stack, the standard H3 model runs about 15x faster than on MiniMax's own inference.
- Partners and adoption. In May 2026, fal announced a strategic partnership with AWS. The announcement said more than 2.5 million developers build on fal, and that Amazon MGM Studios, Canva and Adobe run production workloads on it every day.
One caveat: Artificial Analysis also publishes per-provider speed and price comparisons for popular open image models, and the fastest provider varies by model. Check the specific models you plan to run, then confirm with your own pilot (see below).
Which fal deployment path should you choose?
fal gives you three ways to run generative media. The right one depends on how much of the stack you want to own.

| Model APIs | Serverless Inference | Compute | |
|---|---|---|---|
| Best for | Shipping features on hosted image, video, audio and 3D models | Your own weights, fine-tunes and multi-step pipelines | Training, fine-tuning and long batch jobs |
| What you control | The inputs each endpoint exposes | Your Python code, dependencies, weights and schema | The whole machine, over SSH |
| What fal runs | Weights, GPUs, queue, retries and scaling | GPUs, autoscaling, queue and observability | The hardware and provisioning |
| Scaling | Managed | Managed, from zero to thousands of GPUs | Manual: you add and remove instances |
| Billing | Per output (image, megapixel or video second) | Per second while your runners are alive | Fixed hourly rate, whether busy or idle |
A common path is to start with Model APIs, move to Serverless when you need custom weights or code, and add Compute when you need to train. All three run under the same fal account.
When should you use fal Model APIs?
Use Model APIs when a hosted model already does what you need. You skip weights, containers and GPUs entirely, and you can switch between models by changing an endpoint ID.
Each endpoint has its own input schema, so check the model's API page for supported prompts, references and controls. Results come back as JSON with file URLs on fal's CDN. By default, output files stay available for at least 7 days, and you can change that per request.
How do you call a model in production?
fal's clients offer three ways to call a model:
| Method (Python / JavaScript) | What it does | Use it for |
|---|---|---|
fal_client.run / fal.run | Direct HTTP call with no queue and no server-side retries | Quick tests |
fal_client.subscribe / fal.subscribe | Submits to the queue and waits for the result | Scripts and short jobs |
fal_client.submit / fal.queue.submit | Submits to the queue and returns immediately | Production, especially video |
For production video, submit to the queue with a webhook. Store the request ID so any process can check status or fetch the result later.
import fal_client
handler = fal_client.submit(
"minimax/h3-max/text-to-video",
arguments={
"prompt": "A slow dolly shot through a sunlit greenhouse. Sound: rain on the glass roof.",
"duration": 10,
"resolution": "768P",
"prompt_expansion_mode": "balanced",
},
webhook_url="https://your-server.com/api/fal-webhook",
)
print(handler.request_id) # save this to check status or fetch the result laterWebhook payloads are signed with ED25519, so you can verify that a callback came from fal. You can also cancel a queued request. If it hasn't started yet, it is removed and never processed.
What happens when a request fails?
The queue retries automatically on 429 rate limits, 503 and 504 errors, connection errors and request timeouts, up to 10 times with backoff. If an endpoint keeps failing, fal can route the request to an equivalent endpoint.
Two cases need your own logic:
- 500 and 502 errors are not retried, so decide in your app whether to resubmit.
- Direct
run()andstream()calls are never retried. That is why production traffic should go through the queue.
If retrying would cause a side effect you don't want, you can turn retries off for a single request with the X-Fal-No-Retry: 1 header.
How much do Model APIs cost?
For the latest pricing, you can visit our pricing page. Most models bill per output, such as per image, per megapixel or per second of video. MiniMax H3 Max is a good example, because duration and resolution both change the price. It bills per second of output video, and every clip includes synchronized audio. These are the published list rates, and what a 10-second clip costs:
| Endpoint | Resolution | Per second | 10-second clip |
|---|---|---|---|
| H3 Max | 480p | $0.05 | $0.50 |
| H3 Max | 768p | $0.08 | $0.80 |
| H3 Max | 1080p | $0.16 | $1.60 |
| H3 Max Turbo | 480p | $0.025 | $0.25 |
| H3 Max Turbo | 768p | $0.04 | $0.40 |
| H3 Max Turbo | 1080p | $0.08 | $0.80 |
H3 Max's default request is a 5-second 768p clip, which costs $0.40. Price scales with both settings: a 15-second clip costs three times the 5-second default, and 1080p costs twice as much per second as 768p. H3 Max Turbo, the faster variant, costs half of H3 Max at every resolution.
Prices are also available programmatically from the pricing API, so you can show cost estimates in your own product.
When should you deploy your own model on fal Serverless Inference?
Use Serverless Inference when a hosted endpoint isn't enough. That might be a private checkpoint, a fine-tune, custom pre- and post-processing, or a multi-stage pipeline. You write the app and fal runs the GPUs, autoscaling, queue and observability.
This is the same runtime that serves fal's own model catalog. Your endpoint gets the same queue, retries, webhooks and client SDKs as every hosted model.
How do you deploy an app?
Write a class that extends fal.App, load weights once in setup(), and expose endpoints with @fal.endpoint:
import fal
from pydantic import BaseModel
from fal.toolkit import Image
class Input(BaseModel):
prompt: str
class Output(BaseModel):
image: Image
class MyImageModel(fal.App):
machine_type = "GPU-H100"
requirements = ["torch", "diffusers", "transformers", "accelerate"]
min_concurrency = 0 # scale to zero when idle
max_concurrency = 20 # cap burst capacity
keep_alive = 300 # keep idle runners warm for 5 minutes
def setup(self):
# Runs once per runner, so weights load at startup, not per request
import torch
from diffusers import StableDiffusionXLPipeline
self.pipe = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16,
).to("cuda")
@fal.endpoint("/")
def generate(self, request: Input) -> Output:
result = self.pipe(request.prompt)
return Output(image=Image.from_pil(result.images[0]))fal run app.py::MyImageModel # temporary test endpoint
fal deploy app.py::MyImageModel # persistent production endpointfal builds the container image in the cloud, so you don't need Docker installed locally. If you already have a Dockerfile, you can use a custom container image. Production deployments are private by default, so callers need an API key.
Serverless access is approved per account, so contact the fal team before you plan a migration.
How does Serverless handle scaling and cold starts?
You tune autoscaling with a handful of settings, and you can change them on a running app without redeploying. These are the documented defaults:
| Setting | Default | What it does |
|---|---|---|
keep_alive | 60 seconds | How long an idle runner stays warm after its last request |
min_concurrency | 0 | Runners kept alive at all times, your 24/7 warm floor |
concurrency_buffer | 0 | Spare runners held beyond current demand, to absorb bursts |
scaling_delay | 0 seconds | A pause before scaling up, so brief spikes don't start runners |
max_multiplexing | 1 | Concurrent requests per runner |
Cold starts mostly come down to loading weights. fal attacks that in three ways:
- A persistent
/datavolume keeps weights in a three-layer cache: local NVMe, a datacenter cache and a global object store. - FlashPack, fal's open-source loader, streams weights straight from disk to GPU.
- Shared compiled caches let new runners reuse
torch.compileartifacts instead of recompiling.
For the full picture, read What Is a Serverless GPU Cold Start?
If you raise max_multiplexing, test GPU memory first. Requests that share a runner also share its VRAM and compute.
What do you pay for on Serverless?
Serverless billing is per second for the total time your runners are alive, by machine type:
- Billed: setup (loading your model), idle time (including
keep_alive), running, draining and teardown. - Not billed: waiting for a GPU (
PENDING), pulling your image (DOCKER_PULL), and requests that fail with a 5xx error.
Warm capacity is the main cost lever. One H100 runner kept warm around the clock (min_concurrency = 1) for a 30-day month is 720 hours. That costs $3,240 at the $4.50/h list price, or $1,792.80 at the as-low-as rate of $2.49/h. Compare that to scaling to zero with a longer keep_alive, which only bills between bursts.
How do you see where time goes?
App Analytics splits every request into Request Startup and Request Duration, at P50, P75 and P90:
- Request Startup covers queue wait, runner acquisition and cold start.
- Request Duration is the model's actual inference time.
Runner Analytics breaks each cold start into its pending, image pull and setup stages, with GPU utilization and VRAM charts. You can also send logs to Datadog or any HTTPS endpoint, scrape a Prometheus-compatible metrics endpoint, or export OpenTelemetry traces.
What's new in fal Serverless?
When do dedicated GPUs on fal Compute make sense?
Use fal Compute when you need a machine rather than an endpoint. That covers training runs, long fine-tuning jobs and batch processing. You SSH in, install your stack and use the GPUs directly.
Compute runs on NVIDIA H100 SXM GPUs in two sizes:
| Instance | GPUs | vCPU | RAM | Storage | Suited to |
|---|---|---|---|---|---|
| 1xH100-SXM | 1 × H100 (80 GB) | 16 | 200 GB | 1 TB SSD | Development, single-GPU fine-tuning, inference |
| 8xH100-SXM | 8 × H100 (640 GB total) | 128 | 1,600 GB | 8 TB SSD | Large-scale training, multi-GPU inference, distributed jobs |
8x instances in the same sector can connect over InfiniBand for multi-node training. A new instance takes about 2–3 minutes to provision.
Three things set Compute apart from Serverless:
- It doesn't autoscale. You add and remove instances yourself.
- Idle time is billed. Instances bill per hour at fixed rates, whether busy or idle. Rates are shown in the dashboard, or you can ask the fal team. fal also offers reserved GPU allocations.
- You own the software layer: dependencies, security patches, checkpoints, monitoring and recovery. Set checkpoint retention and test a restore before you start a long run.
A common pattern is to train or fine-tune on Compute, then deploy the result to Serverless for inference that scales with demand.
How should you test an inference provider before committing?
Headline numbers are a starting point. Your own workload is the real test. Run a pilot that mirrors production before you commit.
Step 1: Replay your real traffic shape
Send the same mix of models, resolutions and durations you expect in production, including your bursts. A steady benchmark hides the cold starts your users will actually hit.
Step 2: Measure startup and execution separately
Track request startup (queue wait and cold start) apart from request duration (inference) at P50 and P90. On fal, App Analytics already splits these. If the total is slow, you'll know whether to fix warm capacity or the model.
Step 3: Log every failure
Record which status codes you see, which ones were retried automatically, and which ones your code had to handle. Check that your retries are idempotent, so a resubmitted video job can't bill or publish twice.
Step 4: Calculate cost per accepted output
The output that matters is the one you actually use. Divide total spend by the number of outputs that passed your quality bar:
Cost per accepted output = total spend ÷ accepted outputs
For example, if you generate 1,000 ten-second H3 Max clips at 768p for $0.80 each and accept 800, you spent $800 for 800 usable clips. That's $1.00 per accepted clip, not $0.80. On Serverless, include warm idle time in total spend.
Step 5: Check the non-functional requirements
Before launch, confirm:
- Licensing: each model's commercial terms.
- Data retention: request payloads are stored for 30 days unless you send
X-Fal-Store-IO: 0. - Regions: Serverless apps can be pinned to
us-west,us-central,us-east,eu-northoreu-west. - Limits: new accounts start at 2 concurrent requests, which rises to 40 automatically with paid credit purchases. Higher limits are available through sales.
Is fal right for your workload?
If you are building with image, video, audio or 3D models, fal is built for you. You get the model catalog, the speed and the scaling of a media-first platform, plus a path to your own models and your own GPUs on the same account.
- Choose Model APIs to ship fast on frontier models, with per-output pricing.
- Choose Serverless to run your own weights or pipelines with managed autoscaling and per-second billing.
- Choose Compute for training and long-running jobs that need dedicated H100s and SSH access.
Then run the five-step pilot above, and decide on cost per accepted output.
Get started with fal
Create an account, grab an API key and call your first model in a few minutes. If you want to bring your own model or reserve capacity, talk to the fal team.
Frequently asked questions
What makes fal different from a general-purpose GPU cloud?
fal is built specifically for generative media inference. You get 1,000+ hosted image, video, audio and 3D models with day-0 availability, plus a serverless runtime tuned for large media models, with fast weight loading, autoscaling, a durable queue and per-output pricing. General GPU clouds give you machines and leave the serving layer to you.
How fast is fal?
fal says its Inference Engine™ is up to 10x faster, using custom CUDA kernels and optimized attention layers. On fal's own benchmark, MiniMax H3 Max returns a 5-second 768p video in under 3 seconds end to end, of which 2.46 seconds is generation. Speed varies by model, resolution and duration, so measure the endpoints you plan to use.
When should I move from Model APIs to Serverless?
Move when you need something a hosted endpoint can't give you, such as private weights, a fine-tune, custom pre- or post-processing, or a multi-stage pipeline. Your Serverless app gets the same queue, retries, webhooks and SDKs as fal's hosted models.
When should I switch from Serverless to dedicated GPUs?
Switch to fal Compute when you need a persistent machine with SSH access, usually for training, long fine-tuning runs or batch jobs. Compute doesn't autoscale and bills per hour whether busy or idle, so many teams train on Compute and serve on Serverless.
How do I calculate cost per accepted output?
Divide total spend by the number of outputs that passed your quality bar. Model APIs bill per output, for example $0.08 per second of 768p video for MiniMax H3 Max. Serverless bills per second while runners are alive, including warm idle time.
How can I safely retry failed generation jobs?
Submit through the queue with fal_client.submit or fal.queue.submit and track jobs by request ID or webhook. The queue retries 429, 503 and 504 errors, connection errors and timeouts up to 10 times. 500 and 502 errors need your own resubmit logic, so make jobs idempotent first.
Is fal ready for enterprise workloads?
Yes. fal is SOC 2 Type II, with SSO, private endpoints, model access controls and region pinning. fal never trains its models on enterprise customers' data.



