          ----------
          batch : :class:`AlignerBatch`
              Contains the batch that is currently being passed through the plugin process
          """
          landmarks = []
          for idx in range(self._re_feed + 1):
              # Create a pseudo object that only populates the data, feed and prediction slots with
              # the current re-feed iteration
 
</s> remove             subbatch = {key: val
                        for key, val in batch.items()
                        if key not in ["feed", "prediction"] + self._additional_keys}
            subbatch["prediction"] = batch["prediction"][idx]
            for key in self._additional_keys:
                subbatch[key] = batch[key][idx]
 </s> add             # Create a pseudo object that only populates the data, feed and prediction slots with
            # the current re-feed iteration
            subbatch = AlignerBatch(image=batch.image,
                                    detected_faces=batch.detected_faces,
                                    filename=batch.filename,
                                    feed=[batch.feed[idx]],
                                    prediction=batch.prediction[idx],
                                    data=[batch.data[idx]]) </s> remove         batch : dict
 </s> add         batch : :class:`AlignerBatch` </s> remove         dict
 </s> add         :class:`AlignerBatch` </s> remove         batch: dict
 </s> add         batch: :class:`AlignerBatch` </s> remove     def process_input(self, batch):
        """ Compile the detected faces for prediction """
        faces, batch["roi"], batch["offsets"] = self.align_image(batch)
 </s> add     def process_input(self, batch: AlignerBatch) -> None:
        """ Compile the detected faces for prediction

        Parameters
        ----------
        batch: :class:`AlignerBatch`
            The current batch to process input for

        Returns
        -------
        :class:`AlignerBatch`
            The batch item with the :attr:`feed` populated and any required :attr:`data` added
        """
        faces, roi, offsets = self.align_image(batch)
        Returns
        -------
        :class:`AlignerBatch`
            The batch item with :attr:`landmarks` populated
          ----------
          batch : :class:`AlignerBatch`
              Contains the batch that is currently being passed through the plugin process
        Returns
        -------
        :class:`AlignerBatch`
            The batch item with :attr:`landmarks` populated
          """
          landmarks = []
          for idx in range(self._re_feed + 1):
              # Create a pseudo object that only populates the data, feed and prediction slots with
              # the current re-feed iteration
keep keep add 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