          self.h = h
          self.landmarks = landmarks
      
      def landmarksAsXY(self):
          return [(p.x, p.y) for p in self.landmarks.parts()]
 
</s> remove     
 </s> add         self.landmarksXY = landmarksXY
 </s> remove     def __init__(self, image, x, w, y, h, landmarks):
 </s> add     def __init__(self, image=None, x=None, w=None, y=None, h=None, landmarks=None, landmarksXY=None): </s> remove         for idx, face in self.get_faces(image):
 </s> add         faces = self.get_faces(image)
        rvals = []
        for idx, face in faces: </s> remove         for face in detect_faces(image, self.arguments.detector):
 </s> add         faces = self.faces_detected[filename]
        for rawface in faces:
            face = DetectedFace(**rawface)
        if self.landmarksXY:
            return self.landmarksXY
        self.landmarksXY = [(p.x, p.y) for p in self.landmarks.parts()]
        return self.landmarksXY
          self.h = h
          self.landmarks = landmarks
      
      def landmarksAsXY(self):
        if self.landmarksXY:
            return self.landmarksXY
        self.landmarksXY = [(p.x, p.y) for p in self.landmarks.parts()]
        return self.landmarksXY
keep keep keep keep replace
 Added serializers.

This speeds up convert speed x4 on my machine. 
lib/faces_detect.py