All notable changes to the CryptoNets Python SDK will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Updated native SDK binaries to version
26.04.03-833ba10 - No API changes - fully backward compatible with 2.0.2
- Fixed use-after-free bug by copying buffer to bytes before freeing C-allocated memory as
ffi.buffer()doest not copy the internal CData buffer - Fixed Native SDK version string initialization (was returned empty)
This release updates the SDK to align with the Generic V2 native library. Several configuration parameters have been modernized and enhanced:
Face Detection and Selection
- BREAKING: Replaced
single_faceandconsider_biggest_faceboolean parameters with unifiedface_detection_strategyinteger parameter0= Multiple faces (all detected faces returned)1= Best confidence score (single face with highest confidence) - default2= Biggest face (single face with largest area)3= Hybrid (best score of area × confidence)
Anti-Spoofing Configuration
- BREAKING: Replaced
skip_antispoofanduse_jdb_antispoofboolean parameters with unifiedanti_spoofing_modeinteger parameter0= Off (no anti-spoofing)1= XMS (dual XMS models, works with head pose landmarks) - default2= JPD (JPD model, works with yolov5n_05_float16 landmarks)3= Recognito Android (for Android platforms)
Face Landmarks Configuration
- Generalized the face landmark selection for age to all operations to be configured via
base_face_landmarks_model_idandage_face_landmarks_model_idwas removed. - Added
base_landmarks_model_idparameter for selecting face landmark detection model0= Head pose model (default)22= Yolov5n05 model
landmark_confidence_score_thresholdconfiguration parameter (default: 0.5) for face landmarks detectionbase_landmarks_model_idconfiguration for selecting between head pose and Yolov5n05 models- Documentation for barcode detection features (previously marked as "future versions")
- Updated README.md to reflect Generic V2 native library capabilities
- Clarified face landmark model configuration section
- Removed "for future versions" notes for available features
- Improved configuration parameter descriptions with model compatibility notes
If you're upgrading from 2.0.0b1:
Face Selection Migration:
# Old (2.0.0b1)
config = OperationConfig(
single_face=True,
consider_biggest_face=False
)
# New (2.0.1)
config = OperationConfig(
face_detection_strategy=1 # Best confidence score
)
# Equivalent mappings:
# single_face=True → face_detection_strategy=1 (best confidence)
# consider_biggest_face=True → face_detection_strategy=2 (biggest face)
# Multiple faces → face_detection_strategy=0Anti-Spoofing Migration:
# Old (2.0.0b1)
config = OperationConfig(
skip_antispoof=False,
use_jdb_antispoof=False
)
# New (2.0.1)
config = OperationConfig(
anti_spoofing_mode=1 # XMS mode (default)
)
# Equivalent mappings:
# skip_antispoof=True → anti_spoofing_mode=0 (off)
# use_jdb_antispoof=True → anti_spoofing_mode=2 (JPD)
# Default → anti_spoofing_mode=1 (XMS)Face Landmarks Migration:
# Old (2.0.0b1)
config = OperationConfig(
age_face_landmarks_model_id=-1
)
# New (2.0.1)
config = OperationConfig(
base_face_landmarks_model_id=-1 # Use default model
# OR explicitly set:
# base_landmarks_model_id=0 # Head pose model
# base_landmarks_model_id=22 # Yolov5n05 model
)- Initial beta release of version 2.0.0
- Support for Generic V2 native library features
For changes in versions prior to 2.0.0b1, please refer to V1 Documentation: SDK Docs