.. _multiple_extraction_models: Use Multiple Extraction Models within a Single ``extraction-api`` Instance =================================================================================== Starting from version 12.240830, FindFace Server allows using multiple attribute extraction models on the installations with a single ``extraction-api`` instance. This functionality can be employed in user liveness verification scenarios, e.g., when users register on a certain platform from various devices. Considering a user device type (e.g., a mobile phone, a laptop camera), you can now configure a neural network model that will be used for liveness recognition. Along with the default model, you can now configure a variant. In this section, we will cover configuration of models for the ``face_liveness`` attribute. Use this instruction as an example to configure models for other attributes if needed. .. important:: The ``sf-api`` service will not work with any variants of ``*_emben`` models other than default. Even if you set up a variant for an ``*_emben`` extractor, the ``sf-api`` service will only send feature vectors extracted by the default model in to the Tarantool gallery. To start using multiple ``face_liveness`` extraction models on a single ``extraction-api`` instance installation, configure the ``extraction-api.yaml`` file. .. rubric:: In this section: .. contents:: :local: Configure ``face_liveness`` Extraction Models in the ``extraction-api.yaml`` ---------------------------------------------------------------------------------------- In the ``extraction-api.yaml`` file, specify a variant for each model of the ``face_liveness`` attribute. Do the following: #. Open the ``extraction-api.yaml`` configuration file. .. code:: sudo vi /path/to/ffserver-12.240830.2/configs/extraction-api.yaml #. Locate ``extractors`` → ``face_liveness``. The default configuration will look like this: .. rubric:: GPU .. code:: extractors: max_batch_size: 1 models: face_liveness: default: model: faceattr/faceattr.liveness_web.v1.gpu.fnk ... .. rubric:: CPU .. code:: extractors: max_batch_size: 1 models: face_liveness: default: model: faceattr/faceattr.liveness_web.v1.cpu.fnk ... #. Specify a variant for each model of the ``face_liveness`` attribute, e.g., ``mobile`` and ``pvn``. A variant name is limited to lowercase letters, digits and an underscore. Specify a corresponding neural network model for each variant: .. rubric:: GPU .. code:: extractors: models: face_liveness: default: model: faceattr/faceattr.liveness_web.v1.gpu.fnk mobile: model: faceattr/faceattr.liveness_mobile.hart.gpu.fnk pvn: model: faceattr/liveness.pvn.v2.gpu.fnk ... .. rubric:: CPU .. code:: extractors: models: face_liveness: default: model: faceattr/faceattr.liveness_web.v1.cpu.fnk mobile: model: faceattr/faceattr.liveness_mobile.hart.cpu.fnk pvn: model: faceattr/liveness.pvn.v2.cpu.fnk ... Once configuration is complete, :ref:`specify <liveness_api_requests>` the ``liveness_variant`` parameter in the HTTP API requests to ``liveness-api``.