                                      feed=batch.refeeds[idx],
                                      prediction=batch.prediction[idx],
                                      data=[batch.data[idx]])
              self.process_output(subbatch)
              landmarks.append(subbatch.landmarks)
          batch.landmarks = np.average(landmarks, axis=0)
          return batch
  
      # <<< FACE NORMALIZATION METHODS >>> #
      def _normalize_faces(self, faces: List[np.ndarray]) -> List[np.ndarray]:
          """ Normalizes the face for feeding into model
 
</s> remove     def filtered_mask(self, faces: List[DetectedFace], minimum_dimension: int) -> List[bool]:
 </s> add     def filtered_mask(self, faces: List[DetectedFace], minimum_dimension: List[int]) -> List[bool]: </s> remove         landmarks = []
 </s> add         landmark_list: List[np.ndarray] = []
        masks: List[List[bool]] = [] </s> remove         for idx, face in enumerate(faces):
 </s> add         for idx, (face, dim) in enumerate(zip(faces, minimum_dimension)): </s> remove         minimum_dimension: int
            The minimum (height, width) of the original frame
 </s> add         minimum_dimension: list
            The minimum (height, width) of the original frames that the faces come from
            landmark_list.append(subbatch.landmarks)

            if self.config["filter_refeed"]:
                fcs = [DetectedFace(landmarks_xy=lm) for lm in subbatch.landmarks.copy()]
                min_sizes = [min(img.shape[:2]) for img in batch.image]
                masks.append(self._filter.filtered_mask(fcs, min_sizes))

        batch.landmarks = self._get_mean_landmarks(np.array(landmark_list), masks)
                                      feed=batch.refeeds[idx],
                                      prediction=batch.prediction[idx],
                                      data=[batch.data[idx]])
              self.process_output(subbatch)
            landmark_list.append(subbatch.landmarks)

            if self.config["filter_refeed"]:
                fcs = [DetectedFace(landmarks_xy=lm) for lm in subbatch.landmarks.copy()]
                min_sizes = [min(img.shape[:2]) for img in batch.image]
                masks.append(self._filter.filtered_mask(fcs, min_sizes))

        batch.landmarks = self._get_mean_landmarks(np.array(landmark_list), masks)
            landmark_list.append(subbatch.landmarks)

            if self.config["filter_refeed"]:
                fcs = [DetectedFace(landmarks_xy=lm) for lm in subbatch.landmarks.copy()]
                min_sizes = [min(img.shape[:2]) for img in batch.image]
                masks.append(self._filter.filtered_mask(fcs, min_sizes))

        batch.landmarks = self._get_mean_landmarks(np.array(landmark_list), masks)
          return batch
  
      # <<< FACE NORMALIZATION METHODS >>> #
      def _normalize_faces(self, faces: List[np.ndarray]) -> List[np.ndarray]:
          """ Normalizes the face for feeding into model
keep keep keep keep replace replace keep keep keep keep keep
 Aligner updates
  - Add filter re-feeds option
  - bugfix roll calculation 
plugins/extract/align/_base.py