          # Predetected_face is used for sort tool.
          # Landmarks should not be extracted again from predetected faces,
          # because face data is lost, resulting in a large variance
          # against extract from original image
          return [dlib.rectangle(0, 0, width, height)]
 
</s> remove             val = self.alignments.alignments[key]
 </s> add             val = self.alignments.data[key] </s> remove 
        except Exception as err:
            print("{} not read!".format(self.location))
            print(str(err))
            data = dict()
 </s> add         except IOError as err:
            print("Error: {} not read: {}".format(self.file, err.strerror))
            exit(1) </s> remove         return [face.copy() for face in faces]
 </s> add         return [face.aligned_face.copy() for face in faces] </s> remove             serializer = Serializer.get_serializer(self.args.serializer)
        print("Using {} serializer".format(serializer.ext))
 </s> add             # If there is a full filename then this will be overriden
            # by filename extension
            serializer = "json" </s> remove         for key in tqdm(sorted(self.alignments.alignments.keys()),
 </s> add         for key in tqdm(sorted(self.alignments.data.keys()),
        return [dlib.rectangle(  # pylint: disable=c-extension-no-member
            0, 0, width, height)]
          # Predetected_face is used for sort tool.
          # Landmarks should not be extracted again from predetected faces,
          # because face data is lost, resulting in a large variance
          # against extract from original image
        return [dlib.rectangle(  # pylint: disable=c-extension-no-member
            0, 0, width, height)]
keep keep keep keep replace
 Fix convert-adjust (#531)

* Add dimensions to alignments + refactor

* Add frame_dims + funcs to DetectFaces. Add alignments lib

* Convert Adjust working

* Refactor and tidy up 
plugins/extract/detect/_base.py