          If an output location has been indicated, then puts the mask preview to the save queue
  
          Parameters
          ----------
          extractor_output: dict
              The output from the :class:`plugins.extract.pipeline.Extractor` object
          """
          frame = os.path.basename(extractor_output.filename)
          for idx, face in enumerate(extractor_output.detected_faces):
              self._alignments.update_face(frame, idx, face.to_alignment())
 
</s> remove         extractor_output: dict
 </s> add         extractor_output: :class:`plugins.extract.pipeline.ExtractMedia` </s> remove     def _update_frames(self, extractor_output):
 </s> add     def _update_frames(self, extractor_output: ExtractMedia) -> None: </s> remove     def _update_faces(self, extractor_output):
 </s> add     def _update_faces(self, extractor_output: ExtractMedia) -> None: </s> remove             frame_name = extractor_output.mask_tool_face_info["source_filename"]
            face_index = extractor_output.mask_tool_face_info["face_index"]
            logger.trace("Saving face: (frame: %s, face index: %s)", frame_name, face_index)
 </s> add             frame_name = extractor_output.frame_metadata["source_filename"]
            face_index = extractor_output.frame_metadata["face_index"]
            logger.trace("Saving face: (frame: %s, face index: %s)",  # type: ignore
                         frame_name, face_index) </s> remove     def _save(self, frame, idx, detected_face):
 </s> add     def _save(self, frame: str, idx: int, detected_face: DetectedFace) -> None:
        extractor_output: :class:`plugins.extract.pipeline.ExtractMedia`
          If an output location has been indicated, then puts the mask preview to the save queue
  
          Parameters
          ----------
        extractor_output: :class:`plugins.extract.pipeline.ExtractMedia`
              The output from the :class:`plugins.extract.pipeline.Extractor` object
          """
          frame = os.path.basename(extractor_output.filename)
          for idx, face in enumerate(extractor_output.detected_faces):
              self._alignments.update_face(frame, idx, face.to_alignment())
keep keep keep keep replace keep keep keep keep keep
 Minor updates and fixups
  - Mask Tool - Typing + BiSeNet mask update fix
  - Alignments Tool - Auto search for alignments file 
tools/mask/mask.py