  
      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"):
 
</s> remove             if task == "extract_detect_in" or (not self._is_parallel
                                               and task == "extract_align_in"):
 </s> add             if task == "extract_{}_in".format(self._flow[0]) or (not self._is_parallel
                                                                 and not task.endswith("_out")): </s> remove             retval = [None]
 </s> add             retval = [getattr(self, "_{}".format(self.phase))] </s> remove             in_queue and out_queue should be pre-created queue manager queues
 </s> add             in_queue and out_queue should be previously created queue manager queues. </s> remove                     self.name, self._plugin_type, self.batchsize)
 </s> add                     self.name, self._plugin_type.title(), self.batchsize) </s> remove     def load_aligned(self, image, size=256, coverage_ratio=1.0, dtype=None):
 </s> add     def load_aligned(self, image, size=256, dtype=None):
        tasks = ["extract_{}_in".format(phase) for phase in self._flow]
        tasks.append("extract_{}_out".format(self._final_phase))
  
      def _add_queues(self):
          """ Add the required processing queues to Queue Manager """
          queues = dict()
        tasks = ["extract_{}_in".format(phase) for phase in self._flow]
        tasks.append("extract_{}_out".format(self._final_phase))
          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"):
keep keep keep keep replace keep keep keep keep keep
 Smart Mask - Extract code review

- Lint simple_tests.py
- Only reformat alignments file if it exists otherwise change filename
- Update legacy alignments to new format at all stages
- faces_detect.Mask.from_dict - logging format fix
- convert.py fix otf for new pipeline
- cli.py - Add note that masks not used. Revert convert masks
- faces_detect.py - Revert non-extract code
- Add .p and .pickle extensions for serializer
- plugins/extract revert some changes
- scripts/fsmedia - Revert code changes
- Pipeline - cleanup
- Consistant alpha channel stripping (fixes single-process)
- Store landmarks as numpy array
- Code attribution
- Normalize feed face and reference face to 0.0 - 1.0 in convert
- Lock in mask VRAM sized
- Add documentation to plugin_loader
- Update alignments tool to work with new format 
plugins/extract/pipeline.py