      # <<< FACE NORMALIZATION METHODS >>> #
      def _normalize_faces(self, faces: List[np.ndarray]) -> List[np.ndarray]:
          """ Normalizes the face for feeding into model
          The normalization method is dictated by the normalization command line argument
          """
          if self._normalize_method is None:
              return faces
          logger.trace("Normalizing faces")  # type:ignore
          meth = getattr(self, f"_normalize_{self._normalize_method.lower()}")
          faces = [meth(face) for face in faces]
 
</s> remove     def _normalize_faces(self, faces):
 </s> add     def _normalize_faces(self, faces: List[np.ndarray]) -> List[np.ndarray]: </s> remove         logger.trace("Normalizing faces")
 </s> add         logger.trace("Normalizing faces")  # type:ignore </s> remove         logger.trace("Normalized faces")
 </s> add         logger.trace("Normalized faces")  # type:ignore </s> remove             landmarks.append(subbatch["landmarks"])
        batch["landmarks"] = np.average(landmarks, axis=0)
 </s> add             landmarks.append(subbatch.landmarks)
        batch.landmarks = np.average(landmarks, axis=0) </s> remove         self._normalize_method = method
 </s> add         self._normalize_method = cast(Optional[Literal["clahe", "hist", "mean"]], method)
        Parameters
        ----------
        faces: :class:`numpy.ndarray`
            The faces to normalize

        Returns
        -------
        :class:`numpy.ndarray`
            The normalized faces
      # <<< FACE NORMALIZATION METHODS >>> #
      def _normalize_faces(self, faces: List[np.ndarray]) -> List[np.ndarray]:
          """ Normalizes the face for feeding into model
          The normalization method is dictated by the normalization command line argument
        Parameters
        ----------
        faces: :class:`numpy.ndarray`
            The faces to normalize

        Returns
        -------
        :class:`numpy.ndarray`
            The normalized faces
          """
          if self._normalize_method is None:
              return faces
          logger.trace("Normalizing faces")  # type:ignore
          meth = getattr(self, f"_normalize_{self._normalize_method.lower()}")
          faces = [meth(face) for face in faces]
keep keep keep add keep keep keep keep keep keep
 Extract updates:
  - Default CPU detector to MTCNN
  - add basic Aligner false positive filters
  - Typing: align + plugins
  - Use specific AlignerBatch class for alignment
  - 
plugins/extract/align/_base.py