          >>>         extractor.input_queue.put({"filename": "path/to/image/file",
          >>>                                    "image": np.array(image)})
          >>>     else:
          >>>         extractor.input_queue.put({"filename": "path/to/image/file",
          >>>                                    "image": np.array(image),
          >>>                                    "detected_faces": [<DetectedFace objects]})
          """
          retval = 1 if self._is_parallel else 3
          logger.trace(retval)
          return retval
 
</s> remove         retval = 1 if self._is_parallel else 3
 </s> add         retval = 1 if self._is_parallel else len(self._flow) </s> remove         >>>                                    "image": np.array(image),
 </s> add         >>>                                    "image": numpy.array(image), </s> remove         >>>                                    "image": np.array(image)})
 </s> add         >>>                                    "image": numpy.array(image)}) </s> remove         retval = self._is_parallel or self.phase == "mask"
 </s> add         retval = self._is_parallel or self.phase == self._final_phase </s> remove         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> add         qname = "extract_{}_in".format(self.phase)
        >>>                                    "image": numpy.array(image),
          >>>         extractor.input_queue.put({"filename": "path/to/image/file",
          >>>                                    "image": np.array(image)})
          >>>     else:
          >>>         extractor.input_queue.put({"filename": "path/to/image/file",
        >>>                                    "image": numpy.array(image),
          >>>                                    "detected_faces": [<DetectedFace objects]})
          """
          retval = 1 if self._is_parallel else 3
          logger.trace(retval)
          return retval
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