          >>> for phase in extractor.passes:
          >>>     extractor.launch():
          >>>         <do processing>
          """
  
          if self._is_parallel:
              for phase in self._flow:
                  self._launch_plugin(phase)
          else:
              self._launch_plugin(self.phase)
  
      def detected_faces(self):
          """ Generator that returns results, frame by frame from the extraction pipeline
  
          This is the exit point for the extraction pipeline and is used to obtain the output
 
</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         retval = self._is_parallel or self.phase == self._final_phase
 </s> add         retval = self._phase_index == len(self._phases) - 1 </s> remove             self.phase = self._next_phase
            logger.debug("Switching to %s phase", self.phase)
 </s> add             self._phase_index += 1
            logger.debug("Switching to phase: %s", self._current_phase) </s> remove         logger.debug("Running Detection. Phase: '%s'", self.phase)
 </s> add         logger.debug("Running Detection. Phase: '%s'", self._current_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()
        for phase in self._current_phase:
            self._launch_plugin(phase)
          >>> for phase in extractor.passes:
          >>>     extractor.launch():
          >>>         <do processing>
          """
        for phase in self._current_phase:
            self._launch_plugin(phase)
        for phase in self._current_phase:
            self._launch_plugin(phase)
        for phase in self._current_phase:
            self._launch_plugin(phase)
        for phase in self._current_phase:
            self._launch_plugin(phase)
        for phase in self._current_phase:
            self._launch_plugin(phase)
        for phase in self._current_phase:
            self._launch_plugin(phase)
  
      def detected_faces(self):
          """ Generator that returns results, frame by frame from the extraction pipeline
  
          This is the exit point for the extraction pipeline and is used to obtain the output
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 Extract - Better VRAM Allocation in Extraction Pipeline 
plugins/extract/pipeline.py