BRUT DOCS getbrut.app ↗

fal.ai

fal.ai is an aggregator — a usage-billed API that resells many generation models under one key. Brut uses it as a route, not a provider in its own right: it never adds a single model to the menu, it just serves models Brut already carries when you hold no native key for them.

If you keep exactly one key on this machine, a fal.ai key is the widest single door: it can serve the Nano Banana image family, GPT Image 2, Kling 3.0, Seedance 2.0, and Veo 3.1 — each visibly marked ⇄ runs via fal.ai on the node whenever the route is active.

Get a key

Create a key on the fal.ai dashboard (it's an id:secret string) and paste it into ⚙ Settings → fal.ai (or set FAL_KEY). fal has no free generation tier — add billing to the fal account before the first call, or the first run answers with a provider error (shown verbatim, as always).

The three route rules

  1. Your direct key always wins. The moment you add a native key (Gemini, Kling, BytePlus, …), that model leaves the fal route and bills direct — usually cheaper.
  2. Routing is always visible. The node chip, the paid-run confirm, and the spend ledger all say "via fal.ai". Nothing routes silently.
  3. Honest prices only. Estimates for routed runs use fal's own list prices where pinned, and show none at all otherwise — never the native provider's numbers. Image routes are pinned from fal's model cards and cross-checked against real dashboard charges (Nano Banana $0.0398 — essentially the native rate; Nano Banana 2 $0.06–$0.16 by size; Pro $0.15/$0.30 at 4K; GPT Image 2 per size × quality, e.g. square_hd high $0.211, square low $0.0053 measured). Expect a margin over the direct API elsewhere (Seedance via fal is roughly the native BytePlus rate; video rates unpinned).

What the routes can and can't do

A route carries exactly the knobs fal's endpoint declares — anything else fails loudly instead of being quietly dropped. Current limits worth knowing:

Generations behave like every other async provider: downloaded to your project's disk, journaled, restart-safe, priced in the ledger.