          else:
              logger.trace(item)  # type:ignore
          return exhausted, batch
  
      def _predict(self, batch: BatchType) -> RecogBatch:
          """ Just return the recognition's predict function """
 
</s> remove     def _skip_num(self) -> int:
        """ int: Number of frames to skip if extract_every_n has been provided """
        return self._args.extract_every_n if hasattr(self._args, "extract_every_n") else 1
 </s> add     def embeddings(self) -> np.ndarray:
        """ :class:`numpy.ndarray`: The filter embeddings"""
        if self._embeddings and all(np.any(e) for e in self._embeddings):
            retval = np.concatenate(self._embeddings, axis=0)
        else:
            retval = np.array([])
        return retval </s> remove     def _set_skip_list(self) -> None:
        """ Add the skip list to the image loader
 </s> add     @property
    def n_embeddings(self) -> np.ndarray:
        """ :class:`numpy.ndarray`: The n-filter embeddings"""
        if self._nembeddings and all(np.any(e) for e in self._nembeddings):
            retval = np.concatenate(self._nembeddings, axis=0)
        else:
            retval = np.array([])
        return retval </s> remove                             detected_faces=item.detected_faces[f_idx + 1:])
 </s> add                             detected_faces=item.detected_faces[f_idx + 1:],
                            is_aligned=item.is_aligned) </s> remove                             detected_faces=item.detected_faces[f_idx + 1:])
 </s> add                             detected_faces=item.detected_faces[f_idx + 1:],
                            is_aligned=item.is_aligned)
        # TODO Move to end of process not beginning
        if exhausted:
            self._filter.output_counts()

          else:
              logger.trace(item)  # type:ignore
        # TODO Move to end of process not beginning
        if exhausted:
            self._filter.output_counts()

          return exhausted, batch
  
      def _predict(self, batch: BatchType) -> RecogBatch:
          """ Just return the recognition's predict function """
keep add keep keep keep keep
 Update Face Filter
  - Remove old face filter
  - plugins.extract.pipeline: Expose plugins directly
  - Change `is_aligned` from plugin level to ExtractMedia level
  - Allow extract pipeline to take faceswap aligned images
  - Add ability for recognition plugins to accept aligned faces as input
  - Add face filter to recognition plugin
  - Move extractor pipeline IO ops to own class 
plugins/extract/recognition/_base.py