                                          dtype="float32",
                                          is_aligned=self._image_is_aligned)
  
                  assert feed_face.face is not None
                  if not self._image_is_aligned:
                      # Split roi mask from feed face alpha channel
                      roi_mask = feed_face.face[..., 3]
                      feed_face._face = feed_face.face[..., :3]  # pylint:disable=protected-access
                  else:
                      # We have to do the warp here as AlignedFace did not perform it
 
</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         # Face Filter post processing
        if ((hasattr(self._args, "filter") and self._args.filter is not None) or
                (hasattr(self._args, "nfilter") and
                 self._args.nfilter is not None)):

            if hasattr(self._args, "detector"):
                detector = self._args.detector.replace("-", "_").lower()
            else:
                detector = "cv2_dnn"
            if hasattr(self._args, "aligner"):
                aligner = self._args.aligner.replace("-", "_").lower()
            else:
                aligner = "cv2_dnn"

            face_filter = dict(detector=detector,
                               aligner=aligner,
                               multiprocess=not self._args.singleprocess)
            filter_lists = {}
            if hasattr(self._args, "ref_threshold"):
                face_filter["ref_threshold"] = self._args.ref_threshold
            for filter_type in ('filter', 'nfilter'):
                filter_args = getattr(self._args, filter_type, None)
                filter_args = None if not filter_args else filter_args
                filter_lists[filter_type] = filter_args
            face_filter["filter_lists"] = filter_lists
            postprocess_items["FaceFilter"] = {"kwargs": face_filter}

 </s> add  </s> remove             if not item.detected_faces:
 </s> add             if not item.is_aligned and not item.detected_faces:
                if not item.is_aligned:
                                          dtype="float32",
                                          is_aligned=self._image_is_aligned)
  
                  assert feed_face.face is not None
                if not item.is_aligned:
                      # Split roi mask from feed face alpha channel
                      roi_mask = feed_face.face[..., 3]
                      feed_face._face = feed_face.face[..., :3]  # pylint:disable=protected-access
                  else:
                      # We have to do the warp here as AlignedFace did not perform it
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