          if view_mode == self._current_view_mode and (
                  self._canvas.active_editor.zoomed_centering == self._zoomed_centering):
              return
          logger.trace("Switching background image from '%s' to '%s'",
                       self._current_view_mode, view_mode)
          img = getattr(self, "_tk_{}".format(view_mode))
          self._canvas.itemconfig(self._image, image=img)
          self._globals.tk_is_zoomed.set(view_mode == "face")
          self._globals.tk_face_index.set(0)
 
</s> remove         if view_mode == self._current_view_mode:
 </s> add         if view_mode == self._current_view_mode and (
                self._canvas.active_editor.zoomed_centering == self._zoomed_centering): </s> remove         mask = face.mask.get(self._canvas.selected_mask, None) if get_mask else None
        mask = mask if mask is None else mask.mask.squeeze()
 </s> add         mask = self._obtain_mask(face, self._canvas.selected_mask) if get_mask else None </s> remove             mask = None if state == "hidden" else det_faces.mask.get(mask_type, None)
            mask = mask if mask is None else mask.mask.squeeze()
 </s> add             mask = None if state == "hidden" else self._obtain_mask(det_face, mask_type) </s> remove         for (frame_idx, face_idx), det_faces in zip(
 </s> add         for (frame_idx, face_idx), det_face in zip( </s> remove         """ numpy.ndarray: The mask at the size of :attr:`stored_size` with any requested blurring
        and threshold amount applied."""
        dims = (self.stored_size, self.stored_size, 1)
        mask = np.frombuffer(decompress(self._mask), dtype="uint8").reshape(dims)
 </s> add         """ numpy.ndarray: The mask at the size of :attr:`stored_size` with any requested blurring,
        threshold amount and centering applied."""
        mask = self.stored_mask
        self._zoomed_centering = self._canvas.active_editor.zoomed_centering
          if view_mode == self._current_view_mode and (
                  self._canvas.active_editor.zoomed_centering == self._zoomed_centering):
              return
        self._zoomed_centering = self._canvas.active_editor.zoomed_centering
          logger.trace("Switching background image from '%s' to '%s'",
                       self._current_view_mode, view_mode)
          img = getattr(self, "_tk_{}".format(view_mode))
          self._canvas.itemconfig(self._image, image=img)
          self._globals.tk_is_zoomed.set(view_mode == "face")
          self._globals.tk_face_index.set(0)
keep keep add keep keep keep keep keep keep
 Manual Tool - Update to support masks with different centering 
tools/manual/frameviewer/control.py