On-premise face recognition + liveness API. Linux amd64. Port 8083.
103
On-premise face recognition and passive face liveness (PAD) in one HTTP API. Linux amd64. Official image: faceplugin/face-recognition-liveness-sdk.
Built from FaceRecognitionSDK-Linux (repositories/FaceRecognitionSDK-Linux-App). One wrapper (libFaceRecognitionSDK.so), one license (application id 1000), two model packs (far.fpk + fal.fpk). License level unlocks Recognition only, Liveness only, or both.
The image is an API/SDK server only (no Gradio). Runtime libraries are already inside — no Google Drive download is required to pull and run. This version is CPU-only.
This combined SDK is not the older single-product images faceplugin/face-recognition (recognition only) or faceplugin/face-liveness (liveness only).
| Capability | Endpoints |
|---|---|
| Face detection (box, landmarks, pose, attributes) | POST /api/detect |
| Face quality (ICAO-style checks) | POST /api/quality |
| Template extraction | POST /api/feature |
| 1:1 match | POST /api/match |
| Feature similarity | POST /api/similarity |
| Passive face liveness (PAD) | POST /api/liveness (/api/check_liveness alias) |
All processing stays on your infrastructure. No biometric data is sent to FacePlugin cloud.
| Tag | Notes |
|---|---|
latest | Same as latest-cpu |
latest-cpu | CPU image |
docker pull faceplugin/face-recognition-liveness-sdk:latest
Default listen port 8083. Use --shm-size=2gb (the SDK unpacks models into /dev/shm; Docker’s 64MB default is too small). The image sets LD_PRELOAD for liveness VFS hooks — do not override that unless you know why.
docker run -d --name faceplugin-face-recognition-liveness-sdk \
--shm-size=2gb --privileged \
-p 8083:8083 \
-v /etc/machine-id:/etc/machine-id:ro \
faceplugin/face-recognition-liveness-sdk:latest
docker logs -f faceplugin-face-recognition-liveness-sdk
# Look for the machine code line: FPMC1.…
API: http://127.0.0.1:8083
macOS / Windows Docker Desktop: omit -v /etc/machine-id:/etc/machine-id:ro (there is no host /etc/machine-id). Each container may get a different machine code.
git clone https://github.com/Faceplugin-ltd/FaceRecognitionSDK-Linux.git
cd FaceRecognitionSDK-Linux
# Or pull the published image and map port 8083 — see docker-compose.yml
docker compose up -d
curl -s http://127.0.0.1:8083/api/health
The published image does not include a license. The API starts without one and prints a machine code (FPMC1.…). Product endpoints unlock after you activate.
GET /api/machinecode.FP1.…).# Paste the FP1. key into license.txt, then:
curl -s -X POST http://127.0.0.1:8083/api/activate \
-H 'Content-Type: text/plain' \
--data-binary @license.txt
Docker and native-host codes are different. If you run in Docker, send the Docker machine code.
After activation, GET /api/licenseStatus reports Recognition / Liveness flags (license_level 0 / 1 / 2):
/api/livenessOn Linux, keep the machine-id mount so extra containers on the same host share one fingerprint. Use a new name and host port:
docker run -d --name faceplugin-face-recognition-liveness-sdk-2 \
--shm-size=2gb --privileged \
-p 8085:8083 \
-v /etc/machine-id:/etc/machine-id:ro \
faceplugin/face-recognition-liveness-sdk:latest
Activate each published port with the same key. Without the machine-id volume (typical Docker Desktop), codes can differ.
| Method | Path | Notes |
|---|---|---|
GET | /api/health | Liveness of the HTTP server |
GET | /api/machinecode | FPMC1.… |
GET | /api/licenseStatus | Recognition / liveness capabilities |
GET | /api/backend | Product / backend |
POST | /api/activate | Raw license key (text/plain) |
POST | /api/detect | JSON {"image":"<base64>"} |
POST | /api/quality | Face quality |
POST | /api/match | 1:1 (image1, image2) |
POST | /api/feature | Template extraction |
POST | /api/similarity | Compare two templates (feature1, feature2) |
POST | /api/liveness | Passive PAD (/api/check_liveness alias) |
Health:
curl -s http://127.0.0.1:8083/api/health
Example liveness:
curl -s -X POST http://127.0.0.1:8083/api/liveness \
-H 'Content-Type: application/json' \
-d '{"image":"<BASE64>"}'
Postman collection, Gradio demo (runs on the host, not in this image), and native setup: FaceRecognitionSDK-Linux.
Content type
Image
Digest
sha256:600e45389…
Size
1.3 GB
Last updated
22 days ago
docker pull faceplugin/face-recognition-liveness-sdk