              yield faces
  
          self._join_threads()
          if self.final_pass:
              # Cleanup queues
              for q_name in self._queues:
                  queue_manager.del_queue(q_name)
              logger.debug("Detection Complete")
          else:
              self._phase_index += 1
              logger.debug("Switching to phase: %s", self._current_phase)
  
 
</s> remove     def _parallel_scaling(self):
 </s> add     def _parallel_scaling(self) -> Dict[int, float]: </s> remove         logger.trace(retval)
 </s> add         logger.trace(retval)  # type: ignore </s> remove     def set_batchsize(self, plugin_type, batchsize):
 </s> add     def reset_phase_index(self) -> None:
        """ Reset the current phase index back to 0. Used for when batch processing is used in
        extract. """
        self._phase_index = 0

    def set_batchsize(self,
                      plugin_type: Literal["align", "detect"],
                      batchsize: int) -> None: </s> remove     def _output_queue(self):
 </s> add     def _output_queue(self) -> EventQueue: </s> remove         logger.trace("%s: %s", qname, retval)
 </s> add         logger.trace("%s: %s", qname, retval)  # type: ignore
              yield faces
  
          self._join_threads()
          if self.final_pass:



              logger.debug("Detection Complete")
          else:
              self._phase_index += 1
              logger.debug("Switching to phase: %s", self._current_phase)
  
keep keep keep keep replace replace replace keep keep keep keep keep
 extract: Add batch processing mode 
plugins/extract/pipeline.py