  
      # <<< PROTECTED METHODS >>> #
  
      # << PROCESS_INPUT WRAPPER >>
      def _process_input(self, batch):
          """ Process the input to the aligner model multiple times based on the user selected
          `re-feed` command line option. This adjusts the bounding box for the face to be fed
          into the model by a random amount within 0.05 pixels of the detected face's shortest axis.
  
          References
 
</s> remove     def _process_output(self, batch):
 </s> add     def _process_output(self, batch: AlignerBatch) -> AlignerBatch: </s> remove     def _normalize_faces(self, faces):
 </s> add     def _normalize_faces(self, faces: List[np.ndarray]) -> List[np.ndarray]: </s> remove         batch.update(retval)
 </s> add  </s> remove     def finalize(self, batch):
 </s> add     def finalize(self, batch: AlignerBatch) -> Generator[ExtractMedia, None, None]:
    def _process_input(self, batch: AlignerBatch) -> AlignerBatch:
  
      # <<< PROTECTED METHODS >>> #
  
      # << PROCESS_INPUT WRAPPER >>
    def _process_input(self, batch: AlignerBatch) -> AlignerBatch:
          """ Process the input to the aligner model multiple times based on the user selected
          `re-feed` command line option. This adjusts the bounding box for the face to be fed
          into the model by a random amount within 0.05 pixels of the detected face's shortest axis.
  
          References
keep keep keep keep replace 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