ZenTrainer models
Model files that ZenTrainer downloads when a feature needs them, converted to safetensors so they run in plain PyTorch with no extra packages.
analysis/faces
What ZenTrainer's face reports (faces per picture, outliers in a dataset) and sample likeness scores run on. These are InsightFace's pretrained models, unchanged apart from the file format:
| File | Model | From | Precision |
|---|---|---|---|
det_10g.safetensors |
SCRFD-10G face detector (boxes + 5 keypoints) | buffalo_l/det_10g.onnx (antelopev2's scrfd_10g_bnkps.onnx is the same file) |
fp32 |
w600k_r50.safetensors |
ArcFace IResNet-50, trained on WebFace600K | buffalo_l/w600k_r50.onnx |
fp16 |
glintr100.safetensors |
ArcFace IResNet-100, trained on Glint360K | antelopev2/glintr100.onnx |
fp16 |
The recognition models are stored in fp16 (half the download; embeddings agree with the fp32 ones to a cosine of 0.999999) and run in fp32. Batch norms are folded into the convolutions where InsightFace's exported files have them folded.
source/ holds the networks (nets.py) and the one-off conversion (convert.py, which needs
onnx). Run through ZenTrainer's pipeline (InsightFace's detection and alignment, ported), the
results match InsightFace 2.1 with onnxruntime: the same faces on every picture tested, boxes
within 0.003 px, and embeddings at a cosine of 0.99999 or more to InsightFace's.
Commercial use: YuNet + AuraFace
For commercial pipelines, a detector and a recognition model under permissive licenses, run through the same pipeline (YuNet gives the same 5 keypoints, so the alignment is the same):
| File | Model | From | License | Precision |
|---|---|---|---|---|
yunet_2023mar.safetensors |
YuNet face detector (boxes + 5 keypoints) | opencv_zoo face_detection_yunet_2023mar.onnx |
MIT (licenses/yunet-MIT.txt) |
fp32 |
auraface_r100.safetensors |
AuraFace IResNet-100 | fal/AuraFace-v1 glintr100.onnx |
Apache 2.0 (licenses/auraface-Apache-2.0.md) |
fp16 |
Unchanged apart from the file format, and checked against onnxruntime: YuNet's outputs within
1.4e-5, AuraFace's embeddings at a cosine of 0.99999 (fp16). source/convert_commercial.py and
source/yunet.py are the conversion. Note that AuraFace-v1's own repository also ships
InsightFace's SCRFD detector (scrfd_10g_bnkps.onnx, byte for byte buffalo_l's det_10g.onnx),
which stays non-commercial: it isn't used here.
AuraFace is a little less accurate than the InsightFace models. Measured through ZenTrainer's
pipeline on LFW (the first 3 folds of pairs.txt, 1800 pairs), accuracy at the best threshold:
| Detector + recognition | Accuracy | Same person, median cosine | Different people, median |
|---|---|---|---|
| SCRFD + ArcFace R50 (buffalo_l) | 99.83% | 0.68 | 0.01 |
| SCRFD + ArcFace R100 (antelopev2) | 99.83% | 0.71 | 0.00 |
| YuNet + AuraFace R100 | 99.56% | 0.60 | 0.06 |
Its scores sit closer together, so compare them with each other, not with the other models'. All credit for the models goes to their authors.
License
The InsightFace files above (det_10g, w600k_r50, glintr100) are non-commercial; the YuNet
and AuraFace files are MIT and Apache 2.0, as listed.
InsightFace's pretrained models are for non-commercial research use only, and so are these converted copies: see InsightFace's license. They are hosted here so ZenTrainer can run them without installing InsightFace; all credit for the models goes to the InsightFace authors.