          logger.debug("Overriding batchsize for plugin_type: %s to: %s", plugin_type, batchsize)
          plugin = getattr(self, f"_{plugin_type}")
          plugin.batchsize = batchsize
  
      def launch(self):
          """ Launches the plugin(s)
  
          This launches the plugins held in the pipeline, and should be called at the beginning
          of each :attr:`phase`. To ensure VRAM is conserved, It will only launch the plugin(s)
          required for the currently running phase
 
</s> remove         plugin_type: {'aligner', 'detector'}
 </s> add         plugin_type: {'align', 'detect'} </s> remove     def _active_plugins(self):
 </s> add     def _active_plugins(self) -> List["PluginExtractor"]: </s> remove     def _get_plugin_type_and_index(flow_phase):
 </s> add     def _get_plugin_type_and_index(flow_phase: str) -> Tuple[str, Optional[int]]: </s> remove         logger.trace("Active plugins: %s", retval)
 </s> add         logger.trace("Active plugins: %s", retval)  # type: ignore </s> remove         logger.trace("All Plugins: %s", retval)
 </s> add         logger.trace("All Plugins: %s", retval)  # type: ignore
    def launch(self) -> None:
          logger.debug("Overriding batchsize for plugin_type: %s to: %s", plugin_type, batchsize)
          plugin = getattr(self, f"_{plugin_type}")
          plugin.batchsize = batchsize
  
    def launch(self) -> None:
          """ Launches the plugin(s)
  
          This launches the plugins held in the pipeline, and should be called at the beginning
          of each :attr:`phase`. To ensure VRAM is conserved, It will only launch the plugin(s)
          required for the currently running phase
keep keep keep keep replace keep keep keep keep keep
 extract: Add batch processing mode 
plugins/extract/pipeline.py