                  continue
  
              output = self._extract_media.pop(filename)
              output.add_detected_faces(self._output_faces)
              self._output_faces = []
  
 
</s> remove             logger.trace("Final Output: (filename: '%s', image shape: %s, detected_faces: %s, "
                         "item: %s)",
 </s> add             logger.trace("Final Output: (filename: '%s', image shape: %s, "  # type:ignore
                         "detected_faces: %s, item: %s)", </s> remove         for filename, face in zip(batch["filename"], batch["detected_faces"]):
 </s> add         for frame, filename, face in zip(batch.image, batch.filename, batch.detected_faces): </s> remove     def set_normalize_method(self, method):
 </s> add     def set_normalize_method(self,
                             method: Optional[Literal["none", "clahe", "hist", "mean"]]) -> None: </s> remove         self._faces_per_filename = {}  # Tracking for recompiling face batches
        self._rollover = None  # Items that are rolled over from the previous batch in get_batch
        self._output_faces = []
        self._additional_keys = []
 </s> add         self._faces_per_filename: Dict[str, int] = {}  # Tracking for recompiling batches
        self._rollover: Optional[ExtractMedia] = None  # batch rollover items
        self._output_faces: List[DetectedFace] = []
        self._filter = AlignedFilter(min_scale=self.config["aligner_min_scale"],
                                     max_scale=self.config["aligner_max_scale"],
                                     distance=self.config["aligner_distance"]) </s> remove                 batch.setdefault("image", []).append(converted_image)
                batch.setdefault("detected_faces", []).append(face)
                batch.setdefault("filename", []).append(item.filename)
 </s> add                 batch.image.append(converted_image)
                batch.detected_faces.append(face)
                batch.filename.append(item.filename)
            self._output_faces = self._filter(self._output_faces, min(frame.shape[:2]))

                  continue
  
            self._output_faces = self._filter(self._output_faces, min(frame.shape[:2]))

              output = self._extract_media.pop(filename)
              output.add_detected_faces(self._output_faces)
              self._output_faces = []
  
keep add keep keep keep keep
 Extract updates:
  - Default CPU detector to MTCNN
  - add basic Aligner false positive filters
  - Typing: align + plugins
  - Use specific AlignerBatch class for alignment
  - 
plugins/extract/align/_base.py