          self._extractor_input_thread = self._feed_extractor()
  
          logger.debug("Initialized %s", self.__class__.__name__)
  
      def _check_input(self, mask_input):
          """ Check the input is valid. If it isn't exit with a logged error
  
          Parameters
          ----------
          mask_input: str
 
</s> remove     def _get_extractor(self, exclude_gpus):
 </s> add     def _get_extractor(self, exclude_gpus: List[int]) -> Optional[Extractor]: </s> remove     def _check_for_missing(self, frame, idx, alignment):
 </s> add     def _check_for_missing(self, frame: str, idx: int, alignment: "AlignmentFileDict") -> bool: </s> remove         self.args = arguments
        job = self.args.job
        self.alignments = None if job == "from-faces" else AlignmentData(self.args.alignments_file)
 </s> add         self._args = arguments
        job = self._args.job
        alignment_file = self._find_alignments()
        self.alignments = None if job == "from-faces" else AlignmentData(alignment_file) </s> remove     def _update_faces(self, extractor_output):
 </s> add     def _update_faces(self, extractor_output: ExtractMedia) -> None:
    def _check_input(self, mask_input: str) -> None:
          self._extractor_input_thread = self._feed_extractor()
  
          logger.debug("Initialized %s", self.__class__.__name__)
  
    def _check_input(self, mask_input: str) -> None:
          """ Check the input is valid. If it isn't exit with a logged error
  
          Parameters
          ----------
          mask_input: str
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