          logger.debug("Initializing %s: (configfile: %s, )", self.__class__.__name__, configfile)
          super().__init__(git_model_id,
                           model_filename,
                           configfile=configfile)
          self.input_size = 256  # Overide for model specific input_size
          self.blur_kernel = 5  # Overide for model specific blur_kernel size
          self.coverage_ratio = 1.0  # Overide for model specific coverage_ratio
  
          self._plugin_type = "mask"
          self._storage_name = self.__module__.split(".")[-1].replace("_", "-")
          self._storage_size = 128  # Size to store masks at. Leave this at default
          self._faces_per_filename = dict()  # Tracking for recompiling face batches
 
</s> remove     """ Plugin loader for extract, training and model tasks """
 </s> add     """ Retrieve, or get information on, Faceswap plugins

    Return a specific plugin, list available plugins, or get the default plugin for a
    task.

    Example
    -------
    >>> from plugins.plugin_loader import PluginLoader
    >>> align_plugins = PluginLoader.get_available_extractors('align')
    >>> aligner = PluginLoader.get_aligner('cv2-dnn')
    """ </s> remove         self.phase = "detect"
 </s> add         self._flow = ["detect", "align", "mask"]
        self.phase = self._flow[0] </s> remove         self.vram_warnings = 1024  # TODO determine
        self.vram_per_batch = 64  # TODO determine
 </s> add         self.vram_warnings = 256
        self.vram_per_batch = 48 </s> remove         self._detector = self._load_detector(detector, rotate_images, min_size, configfile)
        self._aligner = self._load_aligner(aligner, configfile, normalize_method)
        self._masker = self._load_masker(masker, configfile)
 </s> add         self._detect = self._load_detect(detector, rotate_images, min_size, configfile)
        self._align = self._load_align(aligner, configfile, normalize_method)
        self._mask = self._load_mask(masker, configfile) </s> remove         self.vram = 3000  # TODO determine
        self.vram_warnings = 1024  # TODO determine
        self.vram_per_batch = 64  # TODO determine
 </s> add         self.vram = 3936
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 208
        self.input_size = 256  # Override for model specific input_size
        self.blur_kernel = 5  # Override for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Override for model specific coverage_ratio
          logger.debug("Initializing %s: (configfile: %s, )", self.__class__.__name__, configfile)
          super().__init__(git_model_id,
                           model_filename,
                           configfile=configfile)
        self.input_size = 256  # Override for model specific input_size
        self.blur_kernel = 5  # Override for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Override for model specific coverage_ratio
        self.input_size = 256  # Override for model specific input_size
        self.blur_kernel = 5  # Override for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Override for model specific coverage_ratio
        self.input_size = 256  # Override for model specific input_size
        self.blur_kernel = 5  # Override for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Override for model specific coverage_ratio
  
          self._plugin_type = "mask"
          self._storage_name = self.__module__.split(".")[-1].replace("_", "-")
          self._storage_size = 128  # Size to store masks at. Leave this at default
          self._faces_per_filename = dict()  # Tracking for recompiling face batches
keep keep keep keep replace replace replace keep keep keep keep keep
 Smart Mask - Extract code review

- Lint simple_tests.py
- Only reformat alignments file if it exists otherwise change filename
- Update legacy alignments to new format at all stages
- faces_detect.Mask.from_dict - logging format fix
- convert.py fix otf for new pipeline
- cli.py - Add note that masks not used. Revert convert masks
- faces_detect.py - Revert non-extract code
- Add .p and .pickle extensions for serializer
- plugins/extract revert some changes
- scripts/fsmedia - Revert code changes
- Pipeline - cleanup
- Consistant alpha channel stripping (fixes single-process)
- Store landmarks as numpy array
- Code attribution
- Normalize feed face and reference face to 0.0 - 1.0 in convert
- Lock in mask VRAM sized
- Add documentation to plugin_loader
- Update alignments tool to work with new format 
plugins/extract/mask/_base.py