          self.y = y  # pylint:disable=invalid-name
          self.h = h  # pylint:disable=invalid-name
          self.landmarks_xy = landmarks_xy
          self.mask = dict() if mask is None else mask
          self.filename = filename
          self.hash = None
          self.face = None
          """ str: The hash of the face. This cannot be set until the file is saved due to image
          compression, but will be set if loading data from :func:`from_alignment` """
  
 
</s> remove         self.face = None
        """ str: The hash of the face. This cannot be set until the file is saved due to image
        compression, but will be set if loading data from :func:`from_alignment` """
 </s> add  </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 </s> remove         self._intepolator = None
 </s> add         self._interpolator = None </s> remove             src_face = detected_face.reference_face
 </s> add             src_face = detected_face.reference_face[..., :3] / 255.0 </s> remove             face = AlignerExtract().transform(
                image,
                self.aligned["matrix"],
                size,
                self.aligned["padding"])
 </s> add             face = AlignerExtract().transform(image, self.aligned["matrix"], size, padding)
          self.y = y  # pylint:disable=invalid-name
          self.h = h  # pylint:disable=invalid-name
          self.landmarks_xy = landmarks_xy
          self.mask = dict() if mask is None else mask

          self.hash = None
          self.face = None
          """ str: The hash of the face. This cannot be set until the file is saved due to image
          compression, but will be set if loading data from :func:`from_alignment` """
  
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 
lib/faces_detect.py