Sign inSign up

pangiam/trueface-onprem

By pangiam

•Updated 4 days ago

Image
Machine learning & AI
Data science
1

3.5K

pangiam/trueface-onprem repository overview

The Pangiam Trueface On-Prem documentation page can be found here⁠.

⁠Changelog

⁠v2.6.2 - Sep 14, 2026

⁠Added
  • The Templatize Face endpoint now accepts three new form parameters, each defaulting to True: error_on_image_exposure, error_on_template_quality, and error_on_face_blur. When True, a request is rejected if a detected face fails the corresponding check (image exposure, template quality, or blur). When False, a failed check is logged as a warning instead, and the request proceeds normally.

  • The Templatize Face endpoint response now includes three new objects for each templatized face: image_exposure (result of GOOD, OVER_EXPOSED, or UNDER_EXPOSED, plus image_pixels_above_brightness_threshold, image_pixels_below_darkness_threshold, and face_pixels_above_brightness_threshold), template_quality (is_good and score), and face_blur (result of GOOD or BLURRY, plus score, the estimated probability that the face image is blurry). See documentation for more details.

  • The Enroll Face endpoint now checks a detected face's estimated template quality and image blur on every enrollment. When strict_enrollment is True, a request is rejected if either check fails. When False, the issue is logged as a warning instead, and the face is still enrolled. See documentation for more details.

⁠Modified
⁠Fixed

⁠v2.6.0 - Jul 8, 2026

⁠Added
⁠Modified
  • The underlying Trueface engine (SDK) has been upgraded for this release from v3.0.30903 to v3.1.924.

  • HOSTED_DATABASE is now optional in application settings and defaults to False when omitted. It has been removed from the bundled .env examples (including the AWS Lambda template) so local Docker Postgres setups do not need the variable; it may be necessary to set HOSTED_DATABASE=True only when using certain managed or hosted Postgres service. See the Introduction documentation under Settings for details.

  • all whitelist endpoints have been modified from being deprecated to being removed. They are no longer available.

  • all .env examples where 'trueface-secret' has been used as a password value have been changed to an updated string. It is HIGHLY ENCOURAGED for users to change these default values to something more secure. See the documentation for more details.

Example:

JWT_SECRET_KEY=trueface-secret

is now listed as:

JWT_SECRET_KEY=trueface-secret-jwt-secret-key@@
  • documentation now reflects new password examples and additional encourangement to new users to change these default password examples in order to run their systems securely.

  • The logging behavior at INFO and DEBUG levels has changed substantially to make log output easier to follow.

  • documentation for the Match Faces and Identify Face endpoints now explicitly notes that when a faceprint is supplied as input instead of an image, face-analysis response fields (such as bounding_box, quality, landmarks, mask, spoof, spoof_score, face_confidence, and face_landmarks_106, where applicable to the endpoint) will be returned as null, and yaw/pitch/roll will be returned as 0.0. This is a documentation clarification only -- there is no behavioral change.

⁠Fixed

⁠v2.5.3

⁠Added
⁠Modified
  • Fixed documentation errors related to docker container setup
⁠Fixed

⁠v2.5.2 - Dec 11, 2025

⁠Modified
  • Certain error cases from v2/identify-face, e.g. searching an empty or non-existing collection, resulted in an the incorrect error message being emitted. These cases now emit a general message along with a code in the data of the payload for specifics on the type of error.

⁠v2.5.1 - Nov 10, 2025

⁠Added
⁠Modified
  • The logging format has changed to reflect the timestamp, the source of the log entry, the log level, and the message. This brings a uniformity to all log/console messages with the exception of messages directly from the underlying SDK.
  • The DB_HOSTADDR .env var has been removed and the functionality has been absorbed by the DB_HOST var. This means that you can still use an ip address for a remote database in the format of, for example: 192.168.100.10, but you would add DB_HOST=192.168.100.10 to the .env file rather than DB_HOSTADDR=192.168.100.10.
  • Specific example types have been removed from the schema sections of the documentation. This should make it easier to view the schema of the endpoint responses.
  • The whitelist endpoints (POST /whitelist, GET /whitelist, PUT /whitelist and DELETE /whitelist) have been deprecated. They will be removed in a future release.
⁠Fixed

⁠v2.5.0 - May 23, 2025

⁠Added
  • the /v2/match-faces endpoint is documented as reporting a spoof_score along with the spoof label when detect_spoof is set to True. However, the spoof_score has been missing. This has been fixed, and the spoof_score now correctly appears in this endpoint.
  • the LITE_V3 facial-recognition model has replaced the LITE default model. For more information, see How To Download Additional Face Recognition Models or the SDK_FR_MODEL descriptions in Settings in the documentation.
⁠Modified
  • base docker layer has been changed from Ubuntu 20.04 to Ubuntu 22.04
  • base docker layer now works with python 3.10 from python 3.8
  • all v1 endpoints and documentation have been removed
  • spoof_score results across all endpoints are now rounded to the fifth decimal place. For example: "spoof_score": 0.02203226648271084 will now be "spoof_score": 0.02203, though in some rare cases in which the spoof score is very small, such as 0.000001, it may display in an exponent format such as: "spoof_score": 1e-05
  • a specific error message in identify_video has been changed from "Unable to detect face" to "No face detected in image." in order to bring it in line with error messaging standards in all other endpoints.
  • the log message strict_enrollment is True -- face height is greater than or equal to SDK_SMALLEST_FACE_HEIGHT. Continuing enrollment. has been removed when using the enroll-face endpoint. Enrollment of a face smaller than SDK_SMALLEST_FACE_HEIGHT is not possible in either of the strict_enrollment=False and the strict_enrollment=True cases, so if any face smaller than SDK_SMALLEST_FACE_HEIGHT exists in an image, it will not be detected by the system.
  • the log message Face height: <pixel_height> pixels has been removed when using the enroll-face endpoint. This was part of determining the SDK_SMALLEST_FACE_HEIGHT check, which has proved to be unnecessary.
  • the minimum face size detectable by the system has been lowered from 60 to 25. See SDK_SMALLEST_FACE_HEIGHT under Settings in the documentation for details.
  • The example response for v2/login incorrectly shows the access_token having the word "Bearer" in it. This has been corrected.

⁠v2.4.1 - April 1, 2025

⁠Added
  • New boolean parameter force_collection_reload added. This parameter affects the loading of the collection into memory from database when performing the specified operation. force_collection_reload is optional and defaults to True. Prior to the change, collections were always loaded from the database prior to operations involving identify, enrollment, and removal from a collection. In deployments where either the number of collections is fixed or where there is only a single PTOP instance, callers setting this parameter to False can now leverage the speed-ups associated with not reaching out to the database. The following APIs are affected:

    • v2/identify-video [POST]
    • v2/identify-face [POST]
    • v2/enroll-face [POST]
    • v2/remove-face [POST]
    • v2/remove-identity [POST]
    • v1/delete-from-collection [POST]
    • v1/delete-feature-from-collection [POST]
    • v1/delete-from-collection [POST]
    • v1/identify [GET, POST]
    • v1/identify/zipfile [POST]
    • v1/identify/video [GET, POST]

⁠v2.4 - October 24, 2024

⁠Modified
  • v1 endpoints have been marked as deprecrated and will be removed in the next release.

  • All endpoints are now configured to accept both Form Data and JSON input. The exception to this is the Upload Whitelist endpoint, which, because it takes an uploaded file, can only receive form data. All other endpoints can take url's in liew of uploaded files if users want to make their API requests in JSON.

  • The following fields are now a required part of the v2 Identify Video endpoint:

    • similarity_threshold (float)
    • largest_face_only (bool)
    • detect_mask (bool)
    • downsampling (bool)
    • every_nth_frame (int)
  • The following error messages have been either replaced or added to the system. Please update your code if it depends on specific error messaging:

      "An unexpected HTTP error occurred. Please check the details and try again."
    
      "Invalid Header Content-Type. Supported Content-Types are: "
      "application/json, multipart/form-data, application/x-www-form-urlencoded"
    
      "Invalid JSON format. Ensure the JSON structure is correct: "
      "all strings should be enclosed in double quotes, booleans should "
      "be true/false (without quotes), numbers should not be quoted, "
      "and there should be no trailing commas."
    
      "Json validation error. Please check errors below for details."
    
      "Json - 'application/json' header error - please check headers or check to make sure json is present in request."
    
      "Error: Invalid image file. Please check the image and try again."
    
      "Error: image base64 string invalid. Please check the image string and try again."
    
      "Error: image url invalid. Please check the image url and try again."
    
      "Error: Invalid faceprint. Please check the faceprint and try again."
    
      "Error: Exactly one of {image_type}, {image_type}, or {image_type} must be provided, or error reading image."
    
      "Error: Unsupported image type. Please check the image type and try again."
    
      "Validation Error: Missing required field(s) {missing_fields_str} in the request."
    
      "Validation Error: {bad_bool_input} should have valid boolean type, unable to interpret input. Please remove any quotes around the value(s)."
    
      "Validation Error: {bad_float_input} should have valid number(s), unable to interpret input. Please remove any quotes around the value(s)."
    
      "Validation Error: {bad_list_input} should have valid entry(s), unable to interpret input. Please check input and try again"
    
      "Error: bad or corrupt image or base-64 string. Please check input and try again."
    
      "Collection name cannot be empty."
    

⁠v2.3 - August 8, 2024

⁠Description

This changelog outlines the changes made to the matcher-onprem. It includes updates to the SDK, new endpoints for loading and listing collections, and modifications to how collections are loaded in enrollment and identification steps. Additionally, several vulnerabilities have been fixed, error messages have been made clearer in certain scenarios, and various small bugs have been addressed.

⁠Added
⁠Modified
  • Updated the documentation for the following v1 endpoints to include missing information:

    • v1/config
    • v1/enroll
    • v1/identify
    • v1/identify/zipfile
    • v1/identify/video
    • v1/face-detect
    • v1/match
    • v1/detect_mask
    • v1/detect_glasses
    • v1/face-quality
    • v1/active-spoof
    • v1/spdetect
    • v1/liveness
    • v1/liveness/video
    • v1/collections
⁠Fixed
  • Added missing description to "V2 Identify Video"

  • Added missing similarity threshold to docs for "V2 Match Faces"

  • In the case where a whitelist is established for v1 or v2, and the user is not allowed to access the whitelist, the error code has been changed from 400 to 403

  • For the following endpoints, certain error cases were returning a status code of 400 instead of the documented 422. These conditions now return a 422 to match the documentation. The error message strings are unchanged:

    • /v1/user/ [GET, PUT]
    • /v1/identify/zipfile
    • /v1/liveness/video
    • /v1/detect_mask
    • /v2/create-user
    • /v2/login
    • /v2/users
    • /v2/users/change-password
    • /v2/users/{user_id} [PUT, DELETE]
    • /v2/refresh
    • /v2/logout
    • /v2/whitelist [POST, PUT]
    • /v2/detect-blink
    • /v2/create-collection
    • /v2/load-collections
    • /v2/list-collections
    • /v2/list-loaded-collections
    • /v2/list-collection-identities
    • /v2/delete-collection
    • /v2/enroll-face
    • /v2/remove-face
    • /v2/remove-identity
    • /v2/detect-faces
    • /v2/templatize-face
    • /v2/match-faces
    • /v2/identify-face
    • /v2/identify-video
    • /v2/detect-spoof
    • /v2/detect-active-spoof

⁠v2.2 - December 20, 2023

⁠Added
  • /load-collections endpoint to load collections from disk into memory, useful for speeding up the first request to a collection after the system has been restarted.
  • /list-loaded-collections endpoint to list all collections that are currently loaded into memory.
  • Documentation for /load-collections and /list-loaded-collections added.
  • Start-up system now checks and instructs users when https files are missing or there is a postgres version mismatch
⁠Modified
  • Collection loading in enrollment, identification, and other steps. Multiple collections can now be loaded into memory at once to be used for identification queries. See each endpoint documentation for more detail.
  • System updated to work with Postgresql version 15. Users can still work with older versions of Postgres using an environmental var, but it is recommended to update to Postgresql v 15 for best functionality.
⁠Fixed
  • Multiple vulnerabilities.
  • Error messages made clearer in some scenarios.
  • Various small bugs.

⁠v2.1 - August 21, 2023

⁠Fixed:

Inference threading model has been improved at the SDK level. This should increase the response speed of the system.

⁠v2.0 - August 4, 2023

⁠Added:
  • A new warning has been added when users link to a postgreSQL database with a version other than 12.x
  • Documentation has been added to inform users to use PostgreSQL version 12.x only.
⁠Fixed:
  • Certain fatal startup warnings now pause the system effectively so that users can fix the problem at the point that it happens.
⁠Changed:
  • PTOP is now configured only to work with PostgreSQL version 12.x. In the past, other versions were allowed, but were not guaranteed to work and could cause problems. The system now insists on Posgres 12.x.

  • Underlying sdk has been updated to ver 2.0. This is a siginificant upgrade which offers a number of benefits, but also introduces a major breaking change and possible issues with backwards compatibility. We appologize for any inconvenvience.

⁠Breaking Changes:
  • We are now no longer able to support Facial Recognition Model TFV5 in v2.0+. This model could not be converted to the required format. As a substitute, we've released TFV5_2, which has very similar accuracy and inference time to TFV5. However, faceprints are not compatible between the two models. If you want to upgrade a TFV5 collection to TFV5_2, you will need to regenerate and re-enroll faceprints for all your images.

  • The 'FULL' facial recognition model (also known as TFV4), is no longer supported and has been removed from the system and from documentation.

⁠Upgrades:
  • RAM usage has been reduced significantly (close to 10X for our most accurate face recognition models).
  • Our GPU SDK now takes advantage of lazy loading of CUDA kernels resulting in a significant reduction in GPU memory usage.
  • Blink Detector model has been upgraded from v1 to v3, which may increase blink detection accuracy
  • Spoof detection model has been upgraded from v4 to v6, which may increase spoof detection accuracy

⁠v1.4.1 - Jul 6, 2023

⁠Fixed:
  • Fixed bug in /identify endpoint where strict head orientation was being enforced.

⁠v1.4 - May 11, 2023

⁠Added:
  • Face Recognition model TFV7 is now available for use. TFV7 is currently our overall highest accuracy model, but it is also our slowest model. Ideal for GPU deployments and for 1 to N use cases. TFV5 is still set as the default. To change from TFV5, you'll need to change your trueface_settings/.env file from SDK_FR_MODEL=tfv5 to SDK_FR_MODEL=tfv7
⁠Fixed:
  • Fixed dash - character issue in collection creation and detail
  • Backward compatibility issue for namespace in collection endpoints
  • Faceprint bug in enroll facerpint
  • Repeated removal of identity caused Internal Server Error
  • Message when no database is connected
⁠Changed:
  • Underlying sdk has now been updated - sdk version is now the new alpha version (1.8.25852)
  • list-collections endpoint results have changed to include a 'num_of_identities' field which lists the number of identities in each collection
  • Smallest face size check now ensures smallest face size value will be 60px or greater. This value used to be 100px.

⁠v1.3 - March 14, 2023

⁠Added:
  • Added json body to all v2 endpoints that previously only accepted form-data.
  • Update Trueface SDk to 1.5 stable version.
  • Added HTTPS support.
⁠Fixed:
  • Fix active spoof endpoint error image handling.

⁠v1.2 - February 1, 2023

⁠Fixed:
  • Missing examples for v1 endpoint documentation have been added.
  • Bug fixes on various endpoints.
  • Error messages have been standardized for all endpoints.
  • V2 'list-collection-identities' endpoint has been changed from a web-parameters GET method to a form-data POST method to conform to standard v2 endpoint design. V1 'Get Collection Identities' endpoint (/v1/collection/{collection_name}) is unchanged and works with the original 'GET' method.
⁠Added:
  • PostgresSQL has been set to version v12 to maintain compatibility with the underlying SDK.
  • Some endpoints are now disabled when the user disables database use with the 'SDK_DBMS=none' .env setting.
⁠Changed:
  • Underlying sdk has now been updated - sdk version is now the new stable version (1.4.23699).

⁠v1.1 - December 15, 2022

⁠Fixed:
  • Now works without database. Documentation on running this is in the System documentation under "SDK_DBMS"
  • Smallest face size check now ensures smallest face size value will be 100 or greater
  • Certain errors previously not reported during detect-active-spoof process now report correctly
⁠Added:
  • Added new video identification endpoint for PTOP with options to speed up processing
  • Improved request and response models for better API access
  • Implemented async to cpu intensive api endpoints for higher performance
  • Documentation on modifying system settings have been added, and some unnecessary settings options have been removed.
  • The following two settings have been added:
    • SDK_ENABLE_DB_ENCRYPTION
    • SDK_DB_ENCRYPTION_KEY
⁠Changed:
  • To reduce container size, face_recognition models for FULL (cpu and gpu) and LITE_V2 (cpu) have been removed. Code has been added to alert the user. Documentation has also been added to alert the user and direct them in manually downloading these models if necessary.
  • The default minimum face height has moved from 40px to 100px.
  • System now works with latest SDK (1.3), with updated mask detection and spoof models
  • Postgres database docker container in the docker-compose documentation is now pegged to version 12. The underlying SDK links against postgresql ver 12.5, and therefore users are encouraged to use postgres version 12.

⁠v1.0 - September 19, 2022

  • Added new /v2 endpoints.
  • Removed concept of namespace from database.

Tag summary

Content type

Image

Digest

sha256:6ec60ff17…

Size

4 GB

Last updated

3 months ago

docker pull pangiam/trueface-onprem