          sub_crop_offset: :class:`numpy.ndarray`, optional
              The (x, y) offset to crop the mask from the center point.
          predicted_mask: :class:`numpy.ndarray`, optional
              The predicted mask as output from the Faceswap Model, if the model was trained
              with a mask, otherwise ``None``. Default: ``None``.
  
          Returns
          -------
 
</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     def add_mask(self, name, mask, affine_matrix, interpolator, storage_size=128):
 </s> add     def add_mask(self, name, mask, affine_matrix, interpolator,
                 storage_size=128, storage_centering="face"):
        centering: [`"legacy"`, `"face"`, `"head"`]
            The centering to obtain the mask for
          sub_crop_offset: :class:`numpy.ndarray`, optional
              The (x, y) offset to crop the mask from the center point.
        centering: [`"legacy"`, `"face"`, `"head"`]
            The centering to obtain the mask for
          predicted_mask: :class:`numpy.ndarray`, optional
              The predicted mask as output from the Faceswap Model, if the model was trained
              with a mask, otherwise ``None``. Default: ``None``.
  
          Returns
          -------
keep add keep 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