              detected_face.image = image
              self._save(frame_name, face_index, detected_face)
              return None
  
          media = ExtractMedia(filename, image, detected_faces=[detected_face])
          media.add_frame_metadata(metadata["source"])
          self._counts["update"] += 1
          return media
  
      def _input_faces(self, *args: Union[tuple, Tuple["EventQueue"]]) -> None:
 
</s> remove         alignment = alignment[face_index]
 </s> add         alignment = alignments[face_index] </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         alignment = self._alignments.get_faces_in_frame(frame_name)
        if not alignment or face_index > len(alignment) - 1:
 </s> add         alignments = self._alignments.get_faces_in_frame(frame_name)
        if not alignments or face_index > len(alignments) - 1: </s> remove             item = ExtractMedia(filename, image[..., :3])
 </s> add             is_aligned = filename in self._aligned_filenames
            item = ExtractMedia(filename, image[..., :3], is_aligned=is_aligned)
        media = ExtractMedia(filename, image, detected_faces=[detected_face], is_aligned=True)
              detected_face.image = image
              self._save(frame_name, face_index, detected_face)
              return None
  
        media = ExtractMedia(filename, image, detected_faces=[detected_face], is_aligned=True)
          media.add_frame_metadata(metadata["source"])
          self._counts["update"] += 1
          return media
  
      def _input_faces(self, *args: Union[tuple, Tuple["EventQueue"]]) -> None:
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 
tools/mask/mask.py