      logger.debug("extension: '%s'", extension)
  
      if extension == ".json":
          retval = _JSONSerializer()
      elif extension == ".p":
          retval = _PickleSerializer()
      elif extension == ".npy":
          retval = _NPYSerializer()
      elif extension == ".fsa":
          retval = _CompressedSerializer()
 
</s> remove             retval = [self._detector, self._aligner, self._masker]
        elif self.passes == 3 and self.phase == 'detect':
            retval = [self._detector]
        elif self.passes == 3 and self.phase == 'align':
            retval = [self._aligner]
        elif self.passes == 3 and self.phase == 'mask':
            retval = [self._masker]
 </s> add             retval = self._all_plugins </s> remove             retval = [None]
 </s> add             retval = [getattr(self, "_{}".format(self.phase))] </s> remove         if extension in (".json", ".p", ".yaml", ".yml"):
 </s> add         if extension in (".json", ".p", ".pickle", ".yaml", ".yml"): </s> remove         retval = self._is_parallel or self.phase == "mask"
 </s> add         retval = self._is_parallel or self.phase == self._final_phase
    elif extension in (".p", ".pickle"):
      logger.debug("extension: '%s'", extension)
  
      if extension == ".json":
          retval = _JSONSerializer()
    elif extension in (".p", ".pickle"):
          retval = _PickleSerializer()
      elif extension == ".npy":
          retval = _NPYSerializer()
      elif extension == ".fsa":
          retval = _CompressedSerializer()
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 
lib/serializer.py