  import numpy as np
  
  from tensorflow.python.framework import errors_impl as tf_errors
  
  from lib.align import AlignedFace
  from lib.utils import get_backend, FaceswapError
  from plugins.extract._base import Extractor, ExtractMedia, logger
  
  
  class Masker(Extractor):  # pylint:disable=abstract-method
 
</s> remove             ``detected_faces``, ``filename``, ``feed_faces``
 </s> add             ``detected_faces``, ``filename``, ``feed_faces``, ``roi_masks`` </s> remove 
 </s> add             if "source_frame_dims" not in metadata["source"]:
                logger.error("The faces need to be re-extracted as at least some of them do not "
                             "contain information required to correctly generate masks.")
                logger.error("You can re-extract the face-set by using the Alignments Tool's "
                             "Extract job.")
                break </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)
from lib.align import AlignedFace, transform_image
  import numpy as np
  
  from tensorflow.python.framework import errors_impl as tf_errors
  
from lib.align import AlignedFace, transform_image
  from lib.utils import get_backend, FaceswapError
  from plugins.extract._base import Extractor, ExtractMedia, logger
  
  
  class Masker(Extractor):  # pylint:disable=abstract-method
keep keep keep keep replace keep keep keep keep keep
 extract: mask - Delete any mask from outside of frame boundaries 
plugins/extract/mask/_base.py