          logger.trace(retval)
          return retval
  
      @property
      def _total_vram_required(self):
          """ Return vram required for all phases plus the buffer """
          vrams = self._vram_per_phase
          vram_required_count = sum(1 for p in vrams.values() if p > 0)
          logger.debug("VRAM requirements: %s. Plugins requiring VRAM: %s",
                       vrams, vram_required_count)
 
</s> remove         logger.trace(retval)
 </s> add         logger.trace(retval)  # type: ignore </s> remove         phases = []
        current_phase = []
        available = self._vram_stats["vram_free"]
 </s> add         phases: List[List[str]] = []
        current_phase: List[str] = []
        available = cast(int, self._vram_stats["vram_free"]) </s> remove         if plugins_required + batch_required <= self._vram_stats["vram_free"]:
 </s> add         if plugins_required + batch_required <= cast(int, self._vram_stats["vram_free"]): </s> remove     def _vram_per_phase(self):
 </s> add     def _vram_per_phase(self) -> Dict[str, float]: </s> remove         logger.trace(retval)
 </s> add         logger.trace(retval)  # type: ignore
    def _total_vram_required(self) -> float:
          logger.trace(retval)
          return retval
  
      @property
    def _total_vram_required(self) -> float:
          """ Return vram required for all phases plus the buffer """
          vrams = self._vram_per_phase
          vram_required_count = sum(1 for p in vrams.values() if p > 0)
          logger.debug("VRAM requirements: %s. Plugins requiring VRAM: %s",
                       vrams, vram_required_count)
keep keep keep keep replace keep keep keep keep keep
 extract: Add batch processing mode 
plugins/extract/pipeline.py