          logger.debug("Initializing %s: (git_model_id: %s, model_filename: %s, exclude_gpus: %s, "
                       "configfile: %s, instance: %s, )", self.__class__.__name__, git_model_id,
                       model_filename, exclude_gpus, configfile, instance)
  
          self._instance = instance
          self._exclude_gpus = exclude_gpus
          self.config = _get_config(".".join(self.__module__.split(".")[-2:]), configfile=configfile)
          """ dict: Config for this plugin, loaded from ``extract.ini`` configfile """
 
</s> remove     def __init__(self, detector, aligner, masker, configfile=None, multiprocess=False,
                 exclude_gpus=None, rotate_images=None, min_size=20, normalize_method=None,
                 re_feed=0, image_is_aligned=False):
 </s> add     def __init__(self,
                 detector: str,
                 aligner: str,
                 masker: Union[str, List[str]],
                 configfile: Optional[str] = None,
                 multiprocess: bool = False,
                 exclude_gpus: Optional[List[int]] = None,
                 rotate_images: Optional[List[int]] = None,
                 min_size: int = 20,
                 normalize_method: Optional[str] = None,
                 re_feed: int = 0,
                 image_is_aligned: bool = False) -> None: </s> remove     def _set_flow(detector, aligner, masker):
 </s> add     def _set_flow(detector: str, aligner: str, masker: List[str]) -> List[str]: </s> remove     def _load_align(self, aligner, configfile, normalize_method, re_feed):
 </s> add     def _load_align(self,
                    aligner: str,
                    configfile: Optional[str],
                    normalize_method: Optional[str],
                    re_feed: int) -> Optional["Aligner"]: </s> remove         self._output_dir = None if self._args.skip_saving_faces else get_folder(
            self._args.output_dir)

        logger.info("Output Directory: %s", self._args.output_dir)
        self._images = ImagesLoader(self._args.input_dir, fast_count=True)
        self._alignments = Alignments(self._args, True, self._images.is_video)

        self._existing_count = 0
        self._set_skip_list()
 </s> add         self._input_locations = self._get_input_locations()
        self._validate_batchmode()
        self._is_initialized = False
          logger.debug("Initializing %s: (git_model_id: %s, model_filename: %s, exclude_gpus: %s, "
                       "configfile: %s, instance: %s, )", self.__class__.__name__, git_model_id,
                       model_filename, exclude_gpus, configfile, instance)
  
        self._is_initialized = False
          self._instance = instance
          self._exclude_gpus = exclude_gpus
          self.config = _get_config(".".join(self.__module__.split(".")[-2:]), configfile=configfile)
          """ dict: Config for this plugin, loaded from ``extract.ini`` configfile """
keep keep keep add keep keep keep keep
 extract: Add batch processing mode 
plugins/extract/_base.py