              self._blur["type"] = blur_type
              self._blur["passes"] = blur_passes
          self._threshold = (threshold / 100.0) * 255.0
  
      def set_sub_crop(self, offset):
          """ Set the internal crop area of the mask to be returned.
  
          This impacts the returned mask from :attr:`mask` if the requested mask is required for
          different face centering than what has been stored.
  
 
</s> remove         All masks are currently stored with `face` centering and all crops are for 'legacy`
        centering. This may change in future
 </s> add         All crops are for 'legacy` centering. This may change in future </s> remove         if self._centering == "legacy":
            crop_offset = reference_face.pose.offset["face"] * -1
 </s> add         mask_centering = detected_face.mask[self._args.mask_type].stored_centering
        if self._centering != mask_centering:
            crop_offset = reference_face.pose.offset[mask_centering] * -1
    def set_sub_crop(self, offset, centering):
              self._blur["type"] = blur_type
              self._blur["passes"] = blur_passes
          self._threshold = (threshold / 100.0) * 255.0
  
    def set_sub_crop(self, offset, centering):
          """ Set the internal crop area of the mask to be returned.
  
          This impacts the returned mask from :attr:`mask` if the requested mask is required for
          different face centering than what has been stored.
  
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) 
lib/align/detected_face.py