  
                  image = item.get_image_copy(self.color_format)
                  roi = np.ones((*item.image_size[:2], 1), dtype="float32")
  
                  if not self._image_is_aligned:
                      # Add the ROI mask to image so we can get the ROI mask with a single warp
                      image = np.concatenate([image, roi], axis=-1)
  
                  feed_face = AlignedFace(face.landmarks_xy,
                                          image=image,
 
</s> remove                 if not self._image_is_aligned:
 </s> add                 if not item.is_aligned: </s> remove                                         is_aligned=self._image_is_aligned)
 </s> add                                         is_aligned=item.is_aligned) </s> remove             if not item.detected_faces:
 </s> add             if not item.is_aligned and not item.detected_faces: </s> remove #: lib/cli/args.py:719
 </s> add #: lib/cli/args.py:715
                if not item.is_aligned:
  
                  image = item.get_image_copy(self.color_format)
                  roi = np.ones((*item.image_size[:2], 1), dtype="float32")
  
                if not item.is_aligned:
                      # Add the ROI mask to image so we can get the ROI mask with a single warp
                      image = np.concatenate([image, roi], axis=-1)
  
                  feed_face = AlignedFace(face.landmarks_xy,
                                          image=image,
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/mask/_base.py