Sign inSign up

faceplugin/face-recognition-liveness-sdk

By faceplugin

•Updated 22 days ago

On-premise face recognition + liveness API. Linux amd64. Port 8083.

Image
0

103

faceplugin/face-recognition-liveness-sdk repository overview

⁠FacePlugin Face Recognition + Liveness SDK

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).

⁠What it does

CapabilityEndpoints
Face detection (box, landmarks, pose, attributes)POST /api/detect
Face quality (ICAO-style checks)POST /api/quality
Template extractionPOST /api/feature
1:1 matchPOST /api/match
Feature similarityPOST /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.

⁠Tags

TagNotes
latestSame as latest-cpu
latest-cpuCPU image
docker pull faceplugin/face-recognition-liveness-sdk:latest

⁠Quick start

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.

⁠Docker Compose (from the GitHub repo)
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

⁠License

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.

  1. Copy the machine code from logs, or GET /api/machinecode.
  2. Send that code to FacePlugin. You receive a license key (FP1.…).
  3. Activate:
# 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):

  • Recognition + Liveness — full product
  • Recognition only — detect / quality / match / feature / similarity
  • Liveness only — /api/liveness
  • Not licensed — machine code only until you activate

⁠Several containers, one license

On 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.

⁠API (after activation)

MethodPathNotes
GET/api/healthLiveness of the HTTP server
GET/api/machinecodeFPMC1.…
GET/api/licenseStatusRecognition / liveness capabilities
GET/api/backendProduct / backend
POST/api/activateRaw license key (text/plain)
POST/api/detectJSON {"image":"<base64>"}
POST/api/qualityFace quality
POST/api/match1:1 (image1, image2)
POST/api/featureTemplate extraction
POST/api/similarityCompare two templates (feature1, feature2)
POST/api/livenessPassive 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⁠.

Tag summary

Content type

Image

Digest

sha256:600e45389…

Size

1.3 GB

Last updated

22 days ago

docker pull faceplugin/face-recognition-liveness-sdk