                      if f_idx + 1 != frame_faces:
                          self._rollover = ExtractMedia(
                              item.filename,
                              item.image,
                              detected_faces=item.detected_faces[f_idx + 1:])
                          logger.trace("Rolled over %s faces of %s to next batch "  # type:ignore
                                       "for '%s'", len(self._rollover.detected_faces), frame_faces,
                                       item.filename)
                      break
          if batch:
 
</s>
                            detected_faces=item.detected_faces[f_idx + 1:],
                            is_aligned=item.is_aligned)
                      if f_idx + 1 != frame_faces:
                          self._rollover = ExtractMedia(
                              item.filename,
                              item.image,
                            detected_faces=item.detected_faces[f_idx + 1:],
                            is_aligned=item.is_aligned)
                          logger.trace("Rolled over %s faces of %s to next batch "  # type:ignore
                                       "for '%s'", len(self._rollover.detected_faces), frame_faces,
                                       item.filename)
                      break
          if batch:
keep keep keep keep replace keep 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