          logger.debug("Calculating center and scale")
          center_scale = np.empty((len(detected_faces), 68, 3), dtype='float32')
          for index, face in enumerate(detected_faces):
              x_center = (face.left + face.right) / 2.0
              y_center = (face.top + face.bottom) / 2.0 - face.h * 0.12
              scale = (face.w + face.h) * self.reference_scale
              center_scale[index, :, 0] = np.full(68, x_center, dtype='float32')
              center_scale[index, :, 1] = np.full(68, y_center, dtype='float32')
              center_scale[index, :, 2] = np.full(68, scale, dtype='float32')
          logger.trace("Calculated center and scale: %s", center_scale)
          return center_scale
 
</s> remove         face.landmarks_xy = ((face.landmarks_xy - center) * scale) + center
 </s> add         face._landmarks_xy = ((face.landmarks_xy - center) * scale) + center </s> remove         center = np.int32((face.aligned.size / 2, face.aligned.size / 2)).reshape(1, 2)
 </s> add         center = np.array((face.aligned.size / 2,
                           face.aligned.size / 2)).astype("int32").reshape(1, 2) </s> remove         logger.trace("kernel_size: %s", kernel_size)
 </s> add         logger.trace("kernel_size: %s", kernel_size)  # type: ignore </s> remove             return kernel
 </s> add             return int(kernel) </s> remove                 face_size = (face.w ** 2 + face.h ** 2) ** 0.5
 </s> add                 face_size = (face.width ** 2 + face.height ** 2) ** 0.5
            y_center = (face.top + face.bottom) / 2.0 - face.height * 0.12
            scale = (face.width + face.height) * self.reference_scale
          logger.debug("Calculating center and scale")
          center_scale = np.empty((len(detected_faces), 68, 3), dtype='float32')
          for index, face in enumerate(detected_faces):
              x_center = (face.left + face.right) / 2.0
            y_center = (face.top + face.bottom) / 2.0 - face.height * 0.12
            scale = (face.width + face.height) * self.reference_scale
            y_center = (face.top + face.bottom) / 2.0 - face.height * 0.12
            scale = (face.width + face.height) * self.reference_scale
              center_scale[index, :, 0] = np.full(68, x_center, dtype='float32')
              center_scale[index, :, 1] = np.full(68, y_center, dtype='float32')
              center_scale[index, :, 2] = np.full(68, scale, dtype='float32')
          logger.trace("Calculated center and scale: %s", center_scale)
          return center_scale
keep keep keep keep replace replace keep keep keep keep keep
 lib.align updates:
  - alignments.py
    - Add typed dicts for imported alignments
    - Explicitly check for presence of thumb value in alignments dict
    - linting
  - detected_face.py
    - Typing
    - Linting
    - Legacy support for pre-aligned face
    - Update dependencies to new property names 
plugins/extract/align/fan.py