  
      def _add_queues(self):
          """ Add the required processing queues to Queue Manager """
          queues = dict()
          for task in ("extract_detect_in", "extract_align_in", "extract_align_out"):
              # Limit queue size to avoid stacking ram
              self._queue_size = 32
              if task == "extract_detect_in" or (not self._is_parallel
                                                 and task == "extract_align_in"):
                  self._queue_size = 64
 
</s> remove         logger.info("Initialized %s %s with batchsize of %s", self.name, p_type, self.batchsize)
 </s> add         logger.info("Initialized %s (%s) with batchsize of %s",
                    self.name, self._plugin_type, self.batchsize) </s> remove         if self._is_parallel or self.phase == "detect":
            qname = "extract_detect_in"
        else:
            qname = "extract_align_in"
 </s> add         qname_dict = dict(detect="extract_detect_in",
                          align="extract_align_in",
                          mask="extract_mask_in")
        qname = "extract_detect_in" if self._is_parallel else qname_dict[self.phase] </s> remove         """ Set whether to run detect and align together or separately """
        if self._detector.vram == 0 or self._aligner.vram == 0:
            logger.debug("At least one of aligner or detector have no VRAM requirement. "
                         "Enabling parallel processing.")
            return True
 </s> add         """ Set whether to run detect, align, and mask together or separately """ </s> remove     def load_aligned(self, image, size=256, dtype=None):
 </s> add     def load_aligned(self, image, size=256, coverage_ratio=1.0, dtype=None):
        tasks = ["extract_detect_in", "extract_align_in", "extract_mask_in", "extract_mask_out"]
        for task in tasks:
  
      def _add_queues(self):
          """ Add the required processing queues to Queue Manager """
          queues = dict()
        tasks = ["extract_detect_in", "extract_align_in", "extract_mask_in", "extract_mask_out"]
        for task in tasks:
              # Limit queue size to avoid stacking ram
              self._queue_size = 32
              if task == "extract_detect_in" or (not self._is_parallel
                                                 and task == "extract_align_in"):
                  self._queue_size = 64
keep keep keep keep replace keep keep keep keep keep
 Smart Mask Exposure for Extraction & Training (#831)

Smart Masks - Initial Commit 
plugins/extract/pipeline.py