Sharding: up to 256TB in one index

fal scales media search to 300M+ assets on turbopuffer

fal shipped search in Assets so users and their agents can find and reference previously generated media assets. turbopuffer runs filtered hybrid search over 300M+ videos, images, and 3D models at millisecond latency.

300M+

media embeddings

225K+

namespaces

17ms

p50 latency

Before turbopuffer, it was basically impossible to search media generations. Now a user or their agent can type a query or upload an image and very quickly find the reference image they need.

Noah Solomon

Noah Solomon, Engineer

fal is a generative media platform for developers, with access to 1K+ image, video, audio, and 3D models. fal Assets gives developers a single place to store, browse, and search the hundreds of millions of images, videos, and 3D models they generate across fal. Search in fal Assets is powered by turbopuffer.

Why turbopuffer?

fal users can generate assets in the fal UI or via an API. fal Assets currently only stores media generated through the UI. This already accounts for over 300 million assets, and fal expects this to scale considerably once they begin indexing media generated via fal's API.

On top of scaling to billions, the search infrastructure needed to meet these requirements:

  • Consistent reads: assets must be retrievable as soon as they are saved so search results don't miss recently created content.
  • Hybrid search: full-text search over prompts and captions, semantic search over media embeddings.
  • Large inclusion lists: searches on fal Assets scope results with inclusion lists of 1K+ IDs. These filters must not significantly impact latency or recall.
  • Per-tenant data isolation: fal must ensure that a user can't surface other users' assets. This should be enforced at the infra layer, not in the application code.

turbopuffer was the only search engine they evaluated that met those requirements at their current and planned scale.

fal already operates at a huge scale. We chose turbopuffer because they serve many companies not only at our current scale, but where we plan to be in the future.

Rehan Sheikh

Rehan Sheikh, Engineer

turbopuffer in fal

When a newly generated asset is saved to fal Assets, fal uses open-source SigLIP2 models to embed the media, input prompt, and captions. Embeddings take a few seconds to generate and are upserted to turbopuffer alongside metadata attributes.

Users can search for images via text queries or by uploading reference images or videos. fal embeds the query and uses hybrid search on turbopuffer, running BM25 full-text search over prompts and captions and vector ANN over embeddings.

Most searches also scope results with large inclusion lists, sometimes hundreds or thousands of allowed IDs, based on categories, tags, and permissions. turbopuffer represents those sets as simple bitmaps and intersects them directly, so the query stays fast as the lists grow.

fal uses a namespace-per-tenant design in turbopuffer, isolating each account's assets in its own dedicated search index. Only active namespaces are warmed into an NVMe SSD cache for 17ms p50 latency. Everything else stays on cheap object storage.

0:00 / 0:00

Log

fal shipped search in Assets so users and their agents can find and reference previously generated media assets. turbopuffer runs filtered hybrid search over hundreds of millions of images, videos, and 3D models:

  • 300M+ media assets indexed
  • 225K+ isolated search namespaces
  • 17ms p50 filtered hybrid search
  • 99.5% average recall@10

MiniMax H3 Max is fal's post-trained variant of MiniMax H3. It generates video faster than it can be watched, making continuous video output possible for the first time.

fal now indexes every H3 Max continuous output video on turbopuffer so those streams are searchable in Assets. For each video, fal samples frames, embeds each frame, and stores the centroid of those frame vectors as a single embedding per video. They also use Marlin, a small vision-language model (VLM), to caption each clip with a spatial scene description and time-ranged events, then index those captions for hybrid search.

What's next for fal

fal is expanding Assets to support larger scale, more features, and better search:

  • API-scale: UI generations are only a small portion of fal's workload. fal will begin indexing API-generated media in turbopuffer, which they expect will scale their workload by 100x.
  • Organization search: Today, each fal account has its own turbopuffer namespace, and multiple accounts can belong to a single organization. fal plans to allow team members to search assets belonging to the whole organization while respecting account-level permissions.
  • Better multimodal embedding: For security reasons, fal only uses open-source embedding models running on their own GPUs. Currently, assets spanning every media modality (including images, videos, and 3D models) are embedded with a SigLIP2 vision-language encoder. fal versions embeddings so they can re-embed when stronger open-source multimodal models become available.

We will continue to update this log as fal's turbopuffer usage evolves.