  
      @property
      def image_size(self):
          """ tuple: The (`height`, `width`) of the stored :attr:`image`. """
          return self._image.shape[:2]
  
      @property
      def detected_faces(self):
          """list: A list of :class:`~lib.align.DetectedFace` objects in the
          :attr:`image`. """
 
</s> remove         return self._image.shape
 </s> add         return self._image_shape </s> remove     @staticmethod
    def _resize(image, target_size):
 </s> add     @classmethod
    def _resize(cls, image, target_size): </s> remove         for mask, face, feed_face in zip(batch["prediction"],
                                         batch["detected_faces"],
                                         batch["feed_faces"]):
 </s> add         for mask, face, feed_face, roi_mask in zip(batch["prediction"],
                                                   batch["detected_faces"],
                                                   batch["feed_faces"],
                                                   batch["roi_masks"]):
            self._crop_out_of_bounds(mask, roi_mask) </s> remove             ``detected_faces``, ``filename``, ``feed_faces``
 </s> add             ``detected_faces``, ``filename``, ``feed_faces``, ``roi_masks``
        return self._image_shape[:2]
  
      @property
      def image_size(self):
          """ tuple: The (`height`, `width`) of the stored :attr:`image`. """
        return self._image_shape[:2]
  
      @property
      def detected_faces(self):
          """list: A list of :class:`~lib.align.DetectedFace` objects in the
          :attr:`image`. """
keep keep keep keep replace keep keep keep keep keep
 extract: mask - Delete any mask from outside of frame boundaries 
plugins/extract/pipeline.py