              retval[side] = alignments_path
          logger.debug("Alignments paths: %s", retval)
          return retval
  
      def _get_aligned_faces(self):
          """ Pre-generate aligned faces as they are needed for all training functions.
  
          Returns
          -------
          dict
 
</s> remove         cropped = np.zeros((batch.shape[0], size, size, batch.shape[3]), dtype=batch.dtype)

        for out, align, img in zip(cropped, aligned, batch):
            slices = align.get_cropped_slices(self._config["centering"])
            out[slices["out"][0], slices["out"][1], :] = img[slices["in"][0], slices["in"][1], :]
 </s> add         cropped = np.array([align.extract_face(img) for align, img in zip(aligned, batch)]) </s> remove                 face.load_aligned(None, size=size, centering=centering)
 </s> add                 face.aligned = AlignedFace(face.landmarks_xy,
                                           centering=self._config["centering"],
                                           size=size,
                                           is_aligned=True) </s> remove     def _extract_face(self, image):
 </s> add     def extract_face(self, image): </s> remove             size = self._training_sizes[side]
            centering = "legacy" if self._alignments_version[side] == 1.0 else "head"
            logger.debug("side: %s, centering: %s", side, centering)
 </s> add 
    def _get_aligned_faces(self, input_sizes):
              retval[side] = alignments_path
          logger.debug("Alignments paths: %s", retval)
          return retval
  
    def _get_aligned_faces(self, input_sizes):
          """ Pre-generate aligned faces as they are needed for all training functions.
  
          Returns
          -------
          dict
keep keep keep keep replace keep keep keep keep keep
 Bugfix - Warp to landmarks 
plugins/train/trainer/_base.py