          ----------
          view_mode: ["frame", "face"]
              The currently active editor's selected view mode.
          """
          if view_mode == self._current_view_mode:
              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)
 
</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(
        if view_mode == self._current_view_mode and (
                self._canvas.active_editor.zoomed_centering == self._zoomed_centering):
          ----------
          view_mode: ["frame", "face"]
              The currently active editor's selected view mode.
          """
        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)
keep keep keep keep replace keep keep keep keep keep
 Manual Tool - Update to support masks with different centering 
tools/manual/frameviewer/control.py