Back to home
New · InsightFace Server

Face recognition infrastructure that stays in your network.

Own the complete face recognition stack in one self-hosted Linux service—detection, comparison, enrollment, exact 1:N search, and persistent RTSP monitoring through a Web UI, REST API, and Python SDK. In measured INT8 tests on a single RTX 5090, search scales to 58.9M image vectors and delivers 3.84 ms Top-5 latency at 10M vectors.

Model licensing for production

Server and SDK code are MIT licensed; model rights are separate. License public models for commercial use, or request higher-accuracy private models for million- and ten-million-scale 1:N search.

Request model licensing
Ready
InsightFace Server dashboard showing a ready local CUDA face recognition deployment
50M+
Image vectors searchable on a single GPU
INT8 feature quantization
No accuracy loss
3.84 ms
10M-vector Top-5 latency (p50)
260.81 QPS
Serial exhaustive search at 10M vectors

One self-hosted service

Private by architecture, practical by design.

Images, embeddings, models, and indexes can remain inside infrastructure you control. The multilingual console calls the same public API as your applications and uses no CDN, analytics, remote fonts, or third-party JavaScript.

Detect

Return bounding boxes, five landmarks, detector confidence, and local quality signals for JPEG, PNG, and WebP images.

Compare

Compare one selected face from two images with an explicit threshold and a raw cosine similarity—not a probability.

Enroll

Organize identities as Collections, People, and FaceSamples with multi-image enrollment, review modes, and explicit rejection reasons.

Search

Run exhaustive 1:N person search. Each person is ranked by the strongest matching FaceSample above the Collection threshold.

Monitor

Run persistent RTSP recognition tasks with recent enter, exit, error, and recovery events plus an optional operator preview.

Integrate

Use the Web UI, 29 REST operations, interactive OpenAPI reference, or the lightweight typed Python client.

Recognition pipeline

From image to ranked match.

The same explicit processing contract powers the console, REST API, Python SDK, and RTSP monitors.

01

Image or RTSP frame

JPEG, PNG, WebP, or the newest live camera frame.

02

Multi-resolution SCRFD

Detect faces, merge candidates, and apply one global NMS.

03

Align and embed

Five-point alignment, ArcFace embedding, and L2 normalization.

04

Model-bound Collection

Pin the model, preprocessing, detector, threshold, and capacity.

05

Exact CPU/GPU search

Exhaustively score every live FaceSample in the selected profile.

06

Person matches

Return ranked people with raw cosine scores and request IDs.

SQLite stays authoritative

The durable database is the source of truth; in-memory exact indexes are rebuildable projections. Accepted enrollments are added to the index before a successful response returns, and deletions are removed from both stores.

InsightFace Server Collections console with a model-bound identity collection
Collections isolate identity spaces and pin the model, preprocessing, detector, threshold, search profile, and capacity.

Explicit identity contracts

Collections keep models, policies, and data boundaries clear.

Each Collection pins the model identity, preprocessing version, embedding dimension, detector policy, search profile, capacity, and match threshold. That contract prevents silent mixing when a model or runtime changes.

  • Add multiple FaceSamples per person and inspect partial enrollment results instead of losing a whole batch.
  • Choose off, standard, or strict review to apply face count, size, sharpness, brightness, pose, and within-person checks.
  • Connect a trusted upstream embedding pipeline through the Collection embedding contract; images still pass detection and review.
  • Optionally store a 112×112 bounding-box crop per accepted face. Original uploads and aligned recognition inputs are not retained.

Measured search proof

Exact search at single-GPU scale.

Native exhaustive search profiles let you trade vector precision for capacity and throughput without switching to an approximate nearest-neighbor index.

58.9M
INT8 image vectors

Measured maximum for 512-dimensional vectors on one RTX 5090.

3.84 ms
Top-5 p50

Measured at exactly 10M vectors with one query in flight.

260.81
Serial QPS

Measured exhaustive Top-5 search throughput at 10M vectors.

3.73×
FP32 capacity

Measured INT8 capacity multiplier on the same GPU.

GPU data typeMaximum vectors10M Top-5 p5010M serial QPS
FP3215.8M12.84 ms77.85
FP1630.7M6.83 ms146.32
BF1630.7M6.83 ms146.33
INT858.9M3.84 ms260.81

91.25% for FP32 and INT8

On ICCV21-MFR MR-ALL at FAR 1e-6, both profiles report 91.25% at two-decimal precision. The unrounded INT8 difference from FP32 was −0.001102 percentage points.

Measured on one NVIDIA GeForce RTX 5090. Capacity is an isolated native-index ceiling without loaded ONNX models or Server workload. Speed uses exactly 10M 512-dimensional image vectors, exhaustive GPU-resident Top-5, one query in flight, 10 warm-ups, and 100 measured queries. Production deployments must reserve VRAM for models, requests, concurrency, index rebuilds, and allocator headroom. Search is exact within each stored representation; lower-precision storage can still change scores and rankings relative to FP32.

Persistent RTSP monitors

Camera monitoring that runs without the browser.

Create server-side RTSP Monitors, tune inference cadence and event confirmation, then let independent clients poll current state and recent events. Closing the console does not stop recognition, and enabled Monitors resume after a Server restart. Frames are never recorded; recent events are bounded and non-durable, and preview is off by default.

Use recognition as an operator aid, not as the sole control for a high-impact decision. Define consent, retention, deletion, review, and incident-response policies for every deployment.

InsightFace Server camera monitoring console with a persistent RTSP monitor and redacted private address
Monitor configuration persists in SQLite. RTSP credentials are encrypted and redacted; frames are not stored and recent events remain in memory only.

Docker deployment

Choose CPU for a simple start or CUDA 12 for scale.

Run from a complete InsightFace repository checkout. The host does not need Python, OpenCV, ONNX Runtime, CUDA Toolkit, or cuDNN; the containers carry the runtime while models remain a separate licensed installation.

CPU quick startCPU
mkdir -p server/.models
docker compose -f server/deploy/compose.cpu.yml pull
docker compose -f server/deploy/compose.cpu.yml \
  run --rm models install buffalo_l --accept-license
docker compose -f server/deploy/compose.cpu.yml up -d
curl -fsS http://127.0.0.1:18097/v1/health

CPU

Linux x86_64 with Docker Engine and Docker Compose. A practical path for evaluation and moderate workloads.

http://SERVER:18097

NVIDIA CUDA 12

Add a supported NVIDIA GPU, driver, and NVIDIA Container Toolkit. Startup fails instead of silently falling back to CPU.

http://SERVER:18098

Deployment boundary

Install and verify buffalo_l, buffalo_m, buffalo_sc, antelopev2, or an authorized private package.
Mount /models read-only and persist /data for SQLite, encrypted secrets, and optional crops.
Use docker compose down without -v to retain the named data volume.
Back up with writes stopped or use a SQLite-safe snapshot before upgrades.

Operations and security

A clear boundary you can harden.

The Server exposes the state needed to operate a private deployment while keeping secrets, images, embeddings, and credentials out of diagnostics.

Readiness and diagnostics

Check service, database, model, provider, capacity, and recent safe error summaries.

Fail-fast CUDA

Validate the real provider, sessions, libraries, GPU compatibility, and warm-up inference at startup.

Durable data boundary

Keep models read-only, persist /data, and rebuild disposable exact indexes from SQLite.

Protected credentials

Hash the API key, encrypt RTSP credentials in /data, and redact sources from responses.

API-only mode

Disable the console and guides while retaining /v1 and /openapi.json for private services.

Secure it before network access

The bundled Compose files disable authentication for isolated evaluation. This release provides plain HTTP inside the container, one undifferentiated API key, and no built-in user accounts, RBAC, IAM, rate limiter, TLS, or legal-compliance layer. It does not add liveness, deepfake detection, demographic analysis, recording/NVR, or distributed workers. Enable authentication, terminate HTTPS at a trusted reverse proxy, restrict CORS and network access, apply edge rate/body/time limits, and protect data volumes and backups as biometric data.

Start with a private deployment.

Bring up the CPU image, create a Collection, enroll one person, and run your first exact search. When the workflow is proven, size the runtime and security boundary for production.

Server source code and SDK licensing do not grant commercial rights to model files. Contact InsightFace for commercial model authorization.