      img_path = download_file(img_src, pathjoin(img_base, "test_img.jpg"))
      if not img_path:
          print_fail("[-] Aborting")
          exit(1)
      img_extract = run_test(
          "Extraction images with cv2-dnn detector and cv2-dnn aligner.",
          extract_args("Cv2-Dnn", "Cv2-Dnn", img_base, pathjoin(img_base, "faces"))
      )
  
      if vid_extract:
 
</s> remove     if fail_count == 0:
        print_ok("[+] Failed %i/%i tests." % (fail_count, test_count))
 </s> add     if FAIL_COUNT == 0:
        print_ok("[+] Failed %i/%i tests." % (FAIL_COUNT, TEST_COUNT)) </s> remove         print_fail("[-] Failed %i/%i tests." % (fail_count, test_count))
 </s> add         print_fail("[-] Failed %i/%i tests." % (FAIL_COUNT, TEST_COUNT)) </s> remove     def _load_detector(detector, rotation, min_size, configfile):
 </s> add     def _load_align(aligner, configfile, normalize_method):
        """ Set global arguments and load aligner plugin """
        aligner_name = aligner.replace("-", "_").lower()
        logger.debug("Loading Aligner: '%s'", aligner_name)
        aligner = PluginLoader.get_aligner(aligner_name)(configfile=configfile,
                                                         normalize_method=normalize_method)
        return aligner

    @staticmethod
    def _load_detect(detector, rotation, min_size, configfile): </s> remove         self.landmarks_xy = alignment["landmarks_xy"]
 </s> add         landmarks = alignment["landmarks_xy"]
        if not isinstance(landmarks, np.ndarray):
            landmarks = np.array(landmarks, dtype="int32")
        self.landmarks_xy = landmarks
    run_test(
      img_path = download_file(img_src, pathjoin(img_base, "test_img.jpg"))
      if not img_path:
          print_fail("[-] Aborting")
          exit(1)
    run_test(
          "Extraction images with cv2-dnn detector and cv2-dnn aligner.",
          extract_args("Cv2-Dnn", "Cv2-Dnn", img_base, pathjoin(img_base, "faces"))
      )
  
      if vid_extract:
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 
_travis/simple_tests.py