          print("{} file not found.\n"
                "Landmark file can be found in http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2"
                "\nUnzip it in the contrib/ folder.".format(shapePredictor))
          return
      aligner = Aligner(shapePredictor, humanFaceDetector)
  
      assert image.shape == (256, 256, 3)
      crop = slice(48, 208)
      face = image[crop, crop]
      face = cv2.resize(face, (64, 64))
 
</s> remove     return superpose(image, new_face, crop)
 </s> add  </s> remove     # result = aligner.align(image.copy(), new_face)
    # if result is None:
    #     return superpose(image, new_face, crop)
    # else:
    #     return result
 </s> add     if use_aligner:
        return aligner.align(image.copy(), new_face)
    else:
        return superpose(image, new_face, crop) </s> remove                 new_face = convert_one_image(cv2.resize(face.image, (256, 256)), self.arguments.model_dir)
 </s> add                 new_face = convert_one_image(cv2.resize(face.image, (256, 256)), self.arguments.model_dir, self.arguments.swap_model) </s> remove     decoder_A.load_weights(model_dir + "/decoder_A.h5")
    decoder_B.load_weights(model_dir + "/decoder_B.h5")
 </s> add     decoder_A.load_weights(model_dir + face_A)
    decoder_B.load_weights(model_dir + face_B)
    if use_aligner:
        aligner = Aligner(shapePredictor, humanFaceDetector)
          print("{} file not found.\n"
                "Landmark file can be found in http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2"
                "\nUnzip it in the contrib/ folder.".format(shapePredictor))
          return
    if use_aligner:
        aligner = Aligner(shapePredictor, humanFaceDetector)
  
      assert image.shape == (256, 256, 3)
      crop = slice(48, 208)
      face = image[crop, crop]
      face = cv2.resize(face, (64, 64))
keep keep keep keep replace keep keep keep keep keep
 Allow users to swap the A/B models (#29)

* Allow users to swap the conversion models. 
lib/faces_process.py