      return dlib.rectangle(css[3], css[0], css[1], css[2])
  # end of Copy/Paste
  
  class DetectedFace(object):
      def __init__(self, image, x, w, y, h, landmarks):
          self.image = image
          self.x = x
          self.w = w
          self.y = y
          self.h = h
 
</s> remove     
 </s> add         self.landmarksXY = landmarksXY
 </s> remove             yield filename, image, self.get_faces(image)
 </s> add             if self.have_face(filename):
                faces = self.get_faces_alignments(filename)
            else:
                faces = self.get_faces(image)
            yield filename, image, faces </s> remove         return [(p.x, p.y) for p in self.landmarks.parts()]
 </s> add         if self.landmarksXY:
            return self.landmarksXY
        self.landmarksXY = [(p.x, p.y) for p in self.landmarks.parts()]
        return self.landmarksXY </s> remove     faces_detected = 0
 </s> add     num_faces_detected = 0
    faces_detected = dict() </s> remove         self.faces_detected = 0
 </s> add 
    def __init__(self, image=None, x=None, w=None, y=None, h=None, landmarks=None, landmarksXY=None):
      return dlib.rectangle(css[3], css[0], css[1], css[2])
  # end of Copy/Paste
  
  class DetectedFace(object):
    def __init__(self, image=None, x=None, w=None, y=None, h=None, landmarks=None, landmarksXY=None):
          self.image = image
          self.x = x
          self.w = w
          self.y = y
          self.h = h
keep keep keep keep replace keep keep keep keep keep
 Added serializers.

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