          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(mask, image_is_aligned, configfile) for mask in masker]
          self._is_parallel = self._set_parallel_processing(multiprocess)
          self._set_extractor_batchsize()
          self._queues = self._add_queues()
          logger.debug("Initialized %s", self.__class__.__name__)
  
      @property
 
</s> remove         self._vram_buffer = 256  # Leave a buffer for VRAM allocation
 </s> add         self._vram_stats = self._get_vram_stats() </s> remove         self.phase = self._flow[0]
 </s> add  </s> remove         retval = 1 if self._is_parallel else len(self._flow)
 </s> add         retval = len(self._phases)
        logger.trace(retval)
        return retval

    @property
    def phase_text(self):
        """ str: The plugins that are running in the current phase, formatted for info text
        output. """
        plugin_types = set(self._get_plugin_type_and_index(phase)[0]
                           for phase in self._current_phase)
        retval = ", ".join(plugin_type.title() for plugin_type in list(plugin_types)) </s> remove             vrams[phase] = attr.vram
 </s> add             retval[phase] = attr.vram
        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 </s> remove     def _total_vram_required(self):
        """ Return vram required for all phases plus the buffer """
        vrams = dict()
 </s> add     def _vram_per_phase(self):
        """ dict: The amount of vram required for each phase in :attr:`_flow`. """
        retval = dict()
        self._phases = self._set_phases(multiprocess)
        self._phase_index = 0
          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(mask, image_is_aligned, configfile) for mask in masker]
          self._is_parallel = self._set_parallel_processing(multiprocess)
        self._phases = self._set_phases(multiprocess)
        self._phase_index = 0
          self._set_extractor_batchsize()
          self._queues = self._add_queues()
          logger.debug("Initialized %s", self.__class__.__name__)
  
      @property
keep keep keep add keep keep keep keep keep
 Extract - Better VRAM Allocation in Extraction Pipeline 
plugins/extract/pipeline.py