                  break
              assert isinstance(item, ExtractMedia)
              batch.filename.append(item.filename)
              image, scale, pad = self._compile_detection_image(item)
              batch.image.append(image)
              batch.scale.append(scale)
 
</s> remove         media = ExtractMedia(filename, image, detected_faces=[detected_face])
 </s> add         media = ExtractMedia(filename, image, detected_faces=[detected_face], is_aligned=True) </s> remove                                         is_aligned=self._image_is_aligned)
 </s> add                                         is_aligned=item.is_aligned) </s> remove                                         is_aligned=self._image_is_aligned)
 </s> add                                         is_aligned=item.is_aligned)
            # Put items that are already aligned into the out queue
            if item.is_aligned:
                self._queues["out"].put(item)
                continue
                  break
              assert isinstance(item, ExtractMedia)
            # Put items that are already aligned into the out queue
            if item.is_aligned:
                self._queues["out"].put(item)
                continue
              batch.filename.append(item.filename)
              image, scale, pad = self._compile_detection_image(item)
              batch.image.append(image)
              batch.scale.append(scale)
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/detect/_base.py