                  self._alignments.backup()
                  self._alignments.save()
              if self._input_is_faces:
                  self._faces_saver.close()
          else:
              self._extractor_input_thread.join()
              self._saver.close()
  
          if self._counts["skip"] != 0:
              logger.warning("%s face(s) skipped due to not existing in the alignments file",
                             self._counts["skip"])
 
</s> remove             self._extractor_input_thread.join()
 </s> add  </s> remove                                    centering="face",
 </s> add                                    centering=mask.stored_centering, </s> remove                 if not metadata:
                    # Face not found
 </s> add                 if not metadata:  # Face not found </s> remove                 logger.warning("Skipping Face not found in alignments file. skipping: '%s'",
                               filename)
 </s> add                 logger.warning("Skipping Face not found in alignments file: '%s'", filename) </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
        self._extractor_input_thread.join()
        if self._saver is not None:
                  self._alignments.backup()
                  self._alignments.save()
              if self._input_is_faces:
                  self._faces_saver.close()
        self._extractor_input_thread.join()
        if self._saver is not None:
        self._extractor_input_thread.join()
        if self._saver is not None:
              self._saver.close()
  
          if self._counts["skip"] != 0:
              logger.warning("%s face(s) skipped due to not existing in the alignments file",
                             self._counts["skip"])
keep keep keep keep replace 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) 
tools/mask/mask.py