🌐 Company Site - Here
🤗 Hugging Face - Here
🛟 Help Center - Here
🐳 Docker Hub - Here
Ready in ~10 minutes (after Drive download): put runtime under
lib\cpu\→run.bat→ copyFPMC1.…→curl /api/health.
Jump: Quick Start · Start the API · SDK License · Setup on your own app · Try it
- Clone FaceRecognition-Windows
- Download the CPU runtime into
lib\cpu\— Get the runtime -
pip install -r requirements.txtthenrun.bat— API on 8083 - Copy machine code
FPMC1.…from the terminal (orGET /api/machinecode) - Contact us to obtain a license key → enter it at the prompt or use
POST /api/activate - Try Postman, curl, or Gradio on 9003 (
run_demo.bat— local only)
No Docker on Windows. For Docker, use FaceRecognition-Docker.
Explore FacePlugin Face Recognition SDK — detect, quality, template extraction, 1:1 match, and feature similarity.
This repository is standalone. Download the runtime into this repo and run — no other FacePlugin repository is required.
This is an on-premise FacePlugin SDK. All processing stays on your machine — no biometric data is sent to FacePlugin cloud.
Windows product: native x64 runtime + local HTTP API and Gradio demo. CPU-only.
Test with Postman, curl, or the local Gradio demo (demo.py). Docs: https://doc.faceplugin.com.
| Feature | API |
|---|---|
| Face detection (box, landmarks, pose, attributes) | POST /api/detect · sdk.detect |
| Face quality (ICAO checks) | POST /api/quality · sdk.quality |
| Template extraction | POST /api/feature · sdk.feature |
| 1:1 match (two images) | POST /api/match · sdk.match |
| Feature similarity | POST /api/similarity · sdk.similarity |
| Health / machine code / activate | GET /api/health · GET /api/machinecode · POST /api/activate |
| Platform | Repository |
|---|---|
| Android | FaceRecognition-Android |
| iOS | FaceRecognition-iOS |
| React Native | FaceRecognition-React-Native |
| Flutter | FaceRecognition-Flutter |
| Ionic Cordova | FaceRecognition-Ionic-Cordova |
| Windows (Recognition) | FaceRecognition-Windows (This repo) |
| Linux / Docker (Recognition) | FaceRecognition-Docker |
| Windows (Liveness) | FaceLivenessDetection-Windows |
| Linux / Docker (Liveness) | FaceLivenessDetection-Docker |
| Step | What you need |
|---|---|
| 1 | Windows 10/11 x64, Python 3.10+ |
| 2 | Runtime libraries in .\lib\cpu\ — see Get the runtime |
| 3 | Start without a license. Copy FPMC1.… from the log or GET /api/machinecode, send it to FacePlugin (contact), then activate with your license key |
You do not need a license to start the API once. Product endpoints unlock after you activate.
| Item | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 8 cores |
| RAM | 4 GB | 8 GB |
| Disk | 4 GB | 8 GB |
| OS | Windows 10 x64 | Windows 11 |
| Python | 3.10+ | 3.12 |
.\lib\cpu\ is empty on GitHub because native binaries and model files are too large. Face Recognition Windows is CPU-only — there is no gpu\ package.
FaceRecognition-Windows runtime (Google Drive)
- Clone the repo (if you have not already):
git clone https://github.com/Faceplugin-ltd/FaceRecognition-Windows.git
cd FaceRecognition-Windows- Open the Google Drive folder above.
- Download all files in that folder (Drive: select all → Download, or download as a zip).
- Put every file directly into
.\lib\cpu\— not inside a nested subfolder.
FaceRecognition-Windows/
└── lib/
└── cpu/
├── FaceRecognitionSDK.dll
├── far-eng.dll
├── farsec.dll
├── far.fpk
└── ... (other runtimes from Drive: onnxruntime, OpenCV, VC++ redist, …)
Wrong layout: lib\cpu\SomeFolder\FaceRecognitionSDK.dll (a nested folder breaks local runs).
dir lib\cpu\FaceRecognitionSDK.dll
dir lib\cpu\far-eng.dll
dir lib\cpu\farsec.dll
dir lib\cpu\far.fpkIf those paths exist, you are ready to start. run.bat puts lib\cpu on PATH.
You can start without a license — the server prints your machine code on startup.
pip install -r requirements.txt
run.batThe API starts even if activation fails. Copy the machine code (FPMC1.…) from the log and send it to FacePlugin.
Licenses are offline and bound to your machine. Offline cryptography is pre-packaged within the SDK—no third-party licensing libraries or external OpenSSL installations are required.
- Start the server (above). A license is not required for the first start.
- Copy the machine code from the terminal. It looks like
FPMC1.…. - Send that machine code to FacePlugin (contact). We will issue a license key for that code.
- Activate with the license key:
:: After run.bat, paste the license key on the terminal like the screenshot. You can try 3 times.
:: Or paste the license key into .\license.txt (overwrite the file), then:
curl -s -X POST http://127.0.0.1:8083/api/activate -H "Content-Type: text/plain" --data-binary @license.txt
:: Or stop the process (Ctrl+C), save license.txt, and run run.bat again
:: (run.bat can also prompt you to paste the key interactively).curl -s http://127.0.0.1:8083/api/healthImport postman/FaceRecognition-API.postman_collection.json.
Default base URL: http://127.0.0.1:8083
Routes are /api/* (no version segment in paths).
For a simple browser test UI (API must already be running on port 8083):
pip install -r requirements-demo.txt
run_demo.batOr (CMD):
set DEMO_PORT=9003
set API_BASE=http://127.0.0.1:8083
python demo.pyPowerShell:
$env:DEMO_PORT = "9003"
$env:API_BASE = "http://127.0.0.1:8083"
python demo.pyOpen http://127.0.0.1:9003. Examples when present: assets/examples/samples/.
Tabs: Detect, Quality, Match. Each action has a Result table (attributes, quality checks, or match scores) and Raw JSON. Detect / Quality examples are every file under assets/examples/samples/. Match is Odd vs Even: pick one image from each group, then Match.
Two ways to call the same engine. Full protocol: https://doc.faceplugin.com.
| Path | When to use |
|---|---|
HTTP (app.py via run.bat) |
Any language. Keep this API running and POST images as JSON. |
sdk.py |
Python on the same Windows machine as lib\cpu\. No HTTP hop. |
HTTP (any language): start the API, then call /api/detect, /api/quality, /api/match, /api/feature, /api/similarity. Images are base64. See Try it and Postman.
Python in-process: copy sdk.py + lib\cpu\ into your project (or import sdk from this repo). Put lib\cpu on PATH. Call order: get_machine_code → activate → init_sdk → detect / quality / feature / match / similarity. Return code 0 means success.
You do not need Gradio (demo.py / run_demo.bat) in production — it is a local test UI.
Use the Python bindings in sdk.py. Return code 0 means success.
First, obtain the machine code for activation and request a license based on the machine code.
import sdk
machine_code = sdk.get_machine_code()
print("machineCode:", machine_code) # FPMC1.…Next, activate the SDK with the path to your license file (license.txt containing your license key).
ret = sdk.activate("license.txt")If activation is successful, the return value will be 0. Otherwise, an error value will be returned.
After activation, call the initialization function of the SDK.
ret = sdk.init_sdk()If initialization is successful, the return value will be 0. Otherwise, an error value will be returned.
result = sdk.detect(base64_image, crop_image=False)result = sdk.quality(base64_image, crop_image=False)result = sdk.feature(base64_image)result = sdk.match(base64_image1, base64_image2, crop_image=False)result = sdk.similarity(feature1_b64, feature2_b64)HTTP endpoints: /api/health, /api/machinecode, /api/backend, /api/activate, /api/detect, /api/quality, /api/match, /api/feature, /api/similarity.



