              if self._saver is not None:
                  face.image = extractor_output.image
                  self._save(frame_name, face_index, face)
  
      def _update_frames(self, extractor_output):
          """ Update alignments for the mask if the input type is a frames folder or video
  
          If an output location has been indicated, then puts the mask preview to the save queue
  
          Parameters
 
</s> remove     def _update_faces(self, extractor_output):
 </s> add     def _update_faces(self, extractor_output: ExtractMedia) -> None: </s> remove         extractor_output: dict
 </s> add         extractor_output: :class:`plugins.extract.pipeline.ExtractMedia` </s> remove         extractor_output: dict
 </s> add         extractor_output: :class:`plugins.extract.pipeline.ExtractMedia` </s> remove     def _save(self, frame, idx, detected_face):
 </s> add     def _save(self, frame: str, idx: int, detected_face: DetectedFace) -> None: </s> remove                             source=extractor_output.mask_tool_face_info)
 </s> add                             source=extractor_output.frame_metadata)
    def _update_frames(self, extractor_output: ExtractMedia) -> None:
              if self._saver is not None:
                  face.image = extractor_output.image
                  self._save(frame_name, face_index, face)
  
    def _update_frames(self, extractor_output: ExtractMedia) -> None:
          """ Update alignments for the mask if the input type is a frames folder or video
  
          If an output location has been indicated, then puts the mask preview to the save queue
  
          Parameters
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