              For keys "a" and "b" values are a dict with the key being the sha1 hash of the face
              and the value being the corresponding :class:`lib.faces_detect.DetectedFace` object.
          """
          logger.debug("Loading alignments")
          retval = dict()
          for side, fullpath in self._alignments_paths.items():
              logger.debug("side: '%s', path: '%s'", side, fullpath)
              path, filename = os.path.split(fullpath)
              alignments = Alignments(path, filename=filename)
              retval[side] = self._to_detected_faces(alignments, side)
 
</s> remove         Returns
        -------
        dict
            For keys "a" and "b" values are a dict with the key being the sha1 hash of the face
            and the value being the corresponding :class:`lib.faces_detect.DetectedFace` object.
 </s> add         Assign the alignments file version to :attr:`_alignments_version` and the converted
        detected faces to :attr:`_detected_faces` for each side </s> remove             retval[side] = self._to_detected_faces(alignments, side)
        logger.debug("Returning: %s", {k: len(v) for k, v in retval.items()})
        return retval
 </s> add             self._detected_faces[side] = self._to_detected_faces(alignments, side)
            self._alignments_version[side] = alignments.version
        logger.debug("alignments_versions: %s, detected_faces: %s, ", self._alignments_version,
                     {k: len(v) for k, v in self._detected_faces.items()}) </s> remove         """ Load the alignments and convert to :class:`lib.faces_detect.DetectedFace` objects.
 </s> add         """ Load the alignments and convert to :class:`lib.align.DetectedFace` objects. </s> remove             The :class:`numpy.ndarray` aligned landmarks for keys "a" and "b"
 </s> add             The "a", "b" keys for each side, containing a sub-dictionary with the
            filename as key and :class:`lib.faces.detected_face.AlignedFace` object as value. </s> remove             :class:`lib.faces_detect.DetectedFace` object
 </s> add             :class:`lib.align.DetectedFace` object
              For keys "a" and "b" values are a dict with the key being the sha1 hash of the face
              and the value being the corresponding :class:`lib.faces_detect.DetectedFace` object.
          """
          logger.debug("Loading alignments")

          for side, fullpath in self._alignments_paths.items():
              logger.debug("side: '%s', path: '%s'", side, fullpath)
              path, filename = os.path.split(fullpath)
              alignments = Alignments(path, filename=filename)
              retval[side] = self._to_detected_faces(alignments, side)
keep keep keep keep replace keep keep keep keep keep
 Extract - Increase area and move centering (#1095)

* Extract
  - Implement aligner re-feeding
  - Add extract type to pipeline.ExtractMedia
  - Add pose annotation to debug
* Convert
  - implement centering
  - remove usage of feed and reference face properties
  - Remove distributed option from convert
  - Force update of alignments file on legacy receive
* Train
  - Resize preview image to model output size
  - Force legacy centering if centering does not exist in model's state file
  - Enable training on legacy face sets

* Alignments Tool
  - Update draw to include head/pose
  - Remove DFL drop + linting
  - Remove remove-frames job
  - remove align-eyes option
  - Update legacy masks to new extract type
  - Exit if attempting to merge version 1.0 alignments files with version 2.0 alignments files
  - Re-generate thumbnails on legacy upgrade
* Mask Tool
  - Update for new extract + bugfix full frame
* Manual Tool
  - Update to new extraction method
   - Disable legacy alignments,
   - extract box bugfix
   - extract faces - size to 512 and center on head
* Preview Tool
  - Display based on model centering
* Sort Tool
  - Use alignments for sort by face

* lib.aligner
  - Add Pose Class
  - Add AlignedFace Class
  - center _MEAN_FACE on x
  - Add meta information with versioning to alignments file
  - lib.aligner.get_align_matrix to use landmarks not face
  - Refactor aligned faces in lib.faces_detect
* lib.logger
  - larger file log padding
* lib.config
  - Fix global changeable_items
* lib.face_filter
  - Use new extracted face images
* lib.image
  - bump thumbnail default size to 96px 
plugins/train/trainer/_base.py