          self._do_erode = self.config.get("erosion", 0) != 0
          self._coverage_ratio = coverage_ratio
  
      def process(self, detected_face, sub_crop_offset,    # pylint:disable=arguments-differ
                  predicted_mask=None,):
          """ Obtain the requested mask type and perform any defined mask manipulations.
  
          Parameters
          ----------
          detected_face: :class:`lib.align.DetectedFace`
 
</s> remove     def _get_mask(self, detected_face, predicted_mask, sub_crop_offset):
 </s> add     def _get_mask(self, detected_face, predicted_mask, centering, sub_crop_offset): </s> remove                           aligned=True, centering="head", dilation=0, blur_kernel=0, as_zip=False):
 </s> add                           aligned=True, centering="face", dilation=0, blur_kernel=0, as_zip=False): </s> remove         if self._extract_version > 1.0 and self._centering == "legacy":
            mask.set_sub_crop(self._cache[key]["aligned_face"].pose.offset["face"] * -1)
 </s> add         mask.set_sub_crop(self._cache[key]["aligned_face"].pose.offset[mask.stored_centering] * -1,
                          self._centering)
                centering, predicted_mask=None,):
          self._do_erode = self.config.get("erosion", 0) != 0
          self._coverage_ratio = coverage_ratio
  
      def process(self, detected_face, sub_crop_offset,    # pylint:disable=arguments-differ
                centering, predicted_mask=None,):
          """ Obtain the requested mask type and perform any defined mask manipulations.
  
          Parameters
          ----------
          detected_face: :class:`lib.align.DetectedFace`
keep keep keep keep replace keep keep keep keep keep
 core mask updates:
  - Add support for different mask centering
  - Update legacy alignments to store mask centering
  - Bugfix: lib.image ImageIO. Ensure unique queues are created (fixes mask tool when Face is input and an output folder is provided) 
plugins/convert/mask/mask_blend.py