                                          centering=self.centering,
                                          size=self.input_size,
                                          coverage_ratio=self.coverage_ratio,
                                          dtype="float32",
                                          is_aligned=self._image_is_aligned)
  
                  batch.detected_faces.append(face)
                  batch.feed_faces.append(feed_face)
                  batch.filename.append(item.filename)
                  idx += 1
 
</s> remove                                         is_aligned=self._image_is_aligned)
 </s> add                                         is_aligned=item.is_aligned) </s> remove                 if not self._image_is_aligned:
 </s> add                 if not item.is_aligned: </s> remove         alignment = alignment[face_index]
 </s> add         alignment = alignments[face_index] </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         skip_list = []
        for idx, filename in enumerate(self._images.file_list):
            if idx % self._skip_num != 0:
                logger.trace("Adding image '%s' to skip list due to "  # type: ignore
                             "extract_every_n = %s", filename, self._skip_num)
                skip_list.append(idx)
            # Items may be in the alignments file if skip-existing[-faces] is selected
            elif os.path.basename(filename) in self._alignments.data:
                self._existing_count += 1
                logger.trace("Removing image: '%s' due to previously existing",  # type: ignore
                             filename)
                skip_list.append(idx)
        if self._existing_count != 0:
            logger.info("Skipping %s frames due to skip_existing/skip_existing_faces.",
                        self._existing_count)
        logger.debug("Adding skip list: %s", skip_list)
        self._images.add_skip_list(skip_list)
 </s> add 
                                        is_aligned=item.is_aligned)
                                          centering=self.centering,
                                          size=self.input_size,
                                          coverage_ratio=self.coverage_ratio,
                                          dtype="float32",
                                        is_aligned=item.is_aligned)
  
                  batch.detected_faces.append(face)
                  batch.feed_faces.append(feed_face)
                  batch.filename.append(item.filename)
                  idx += 1
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