BRUT DOCS getbrut.app ↗

Providers overview

Brut is bring-your-own-key. You add a key for each provider you want to use; Brut calls that provider directly, on your key, at their price. Brut never holds a key that bills anyone but you, and never marks up a token.

Adding keys

⚙ Settings on the left rail (or the setup wizard) shows every provider as a card — its role, and one status line — grouped by what it does (generation, aggregators, upscalers). Click a card to paste a key (validated on save); the switch on the card turns a provider off without deleting anything. Keys live in your OS keychain — never in a graph, never sent anywhere but the provider.

Settings, Providers: one card per provider with its status; the switch turns a provider off without deleting its key, a click opens its key
## The one rule that trips everyone up

Image and video models need a billing-enabled key. Free tiers usually have zero generation quota, so your very first call fails with a quota error (429) — that's billing not enabled, not throttling. Turn on billing in the provider's console and it clears.

The providers at a glance

Provider Does Key
Google Gemini Images (Nano Banana) + text/planning AI Studio API key
OpenAI Images (GPT Image 2, GPT Image 2.5 Flare + Sunburst) + text/planning platform.openai.com key
Kling Video (image→video) via API packs Kling API key (or AccessKey + SecretKey)
Kling (subscription) Same models, billed to your kling.ai plan (~3× cheaper) browser sign-in, no key
Google Veo Video (image/text→video) rides your Gemini key
Gemini Omni Fast video with native audio (3–10 s, flat ≈$1 per clip: ask for 10 s) rides your Gemini key
Anthropic Text/planning only (Claude) Anthropic API key
Seedance Video with native audio — 2.5 (up to 30 s, 30 references), 2.0 (4K), and 2.0 Fast / Mini (480p and 720p, the cheapest video in Brut) BytePlus ModelArk key
Seedream Images (Seedream 5.0 Pro / Flash / Lite, from $0.018; people made from text are accepted by Seedance) rides your Seedance key
Black Forest Labs Images (FLUX 3 Image, 768 px to 4K) + FLUX Outpaint, the painter that holds your picture when Conform extends it dashboard.bfl.ai key
Ideogram Images (Ideogram 4.5 at 1K / 2K, lettering and layout) + Ideogram 4.5 Precise Edit, the edit that returns the picture at its exact size with every untouched pixel kept ideogram.ai API key
Magnific Image upscaling (creative + precision) Magnific API key
Topaz Labs Image + video upscaling (Gigapixel, Proteus/Rhea/Gaia) Topaz API key
Topaz Video AI (local) Video upscaling on your own GPU — free no key; the desktop app's license
fal.ai Route only — serves Nano Banana, GPT Image 2, Kling 3.0, Seedance 2.0 and Veo 3.1 when you hold no native key for them fal.ai dashboard key
Replicate Route only — Nano Banana Pro/2, GPT Image 2, Kling Omni, Veo 3.1 (+ end frames), Seedance (+ text-to-video) replicate.com token
OpenRouter The near-total route — all text (planning + Marcel), the image family with native knobs, and the video set (Kling/Veo/Seedance) with per-job billed cost openrouter.ai key

Model routes — native first, aggregator fallback

Some models can also run through an aggregator — a third-party service (like an aggregator subscription or a multi-model API) that resells the same model under its own billing. Brut treats those as routes, with three hard rules:

  1. Your direct key always wins. If you hold the native provider's key, the generation goes straight to the provider, exactly as before. Routes only activate for a model when you have no native key but do hold the aggregator's credential.
  2. Routing is always visible. A routed model shows a ⇄ runs via … chip on the node, the run confirm says who bills, and the ledger records it. Nothing routes silently.
  3. The catalog stays curated. An aggregator credential never adds models to Brut — the model list is exactly the one Brut ships, whatever route serves it. Estimates for routed runs come from the route's own measured price, or are absent; aggregators typically charge a margin over the direct API, and the node says so.
A routed node says so on its face: runs via OpenRouter, on your OpenRouter account
A routed node says so on its face: runs via OpenRouter, on your OpenRouter account
Adding or removing a key takes effect at once. Three route providers ship today: **[OpenRouter](/docs/providers/openrouter.html)**, the main one (one key for text, images with Brut's native menus and the whole video set, with the billed cost recorded per job); **[fal.ai](/docs/providers/fal.html)** (API key, optional: with both keys, GPT Image 2 and its video models run through fal); and **[Replicate](/docs/providers/replicate.html)** (API token: Nano Banana Pro/2, GPT Image 2, Kling Omni, Veo 3.1 with end frames, Seedance with text→video), also available.

Text models route too: with an OpenRouter key the planning models — Refine, the Multi-Shot planner, the cinema crew, Text→Text — run at pass-through token rates when no native text key exists. Marcel routes through OpenRouter too — chat, ambient narration and acting, with Anthropic prompt caching passing through, so one OpenRouter key is a complete text seat.

Deciding between direct keys and an aggregator? The full pros/cons and a feature-by-feature capability matrix live on Keys vs aggregators.

Text vs generation

Gemini, OpenAI and Anthropic double as planning models — they power the Refine node and the cinema crew, where you pick which LLM writes your treatment or shot plan. Text calls cost cents and are billed separately.

Provider errors are surfaced verbatim on the node — Brut never masks them, so what the provider says is what you see.