                           model_filename,
                           configfile=configfile,
                           instance=instance,
                           **kwargs)
          self._normalize_method = None
          self._re_feed = re_feed
          self.set_normalize_method(normalize_method)
  
          self._plugin_type = "align"
          self._faces_per_filename = {}  # Tracking for recompiling face batches
 
</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     def __init__(self, git_model_id=None, model_filename=None,
                 configfile=None, instance=0, normalize_method=None, re_feed=0, **kwargs):
 </s> add     def __init__(self,
                 git_model_id: Optional[int] = None,
                 model_filename: Optional[str] = None,
                 configfile: Optional[str] = None,
                 instance: int = 0,
                 normalize_method: Optional[Literal["none", "clahe", "hist", "mean"]] = None,
                 re_feed: int = 0, **kwargs) -> None: </s> remove         self._normalize_method = method
 </s> add         self._normalize_method = cast(Optional[Literal["clahe", "hist", "mean"]], method) </s> remove     def get_batch(self, queue):
 </s> add     def get_batch(self, queue: "Queue") -> Tuple[bool, AlignerBatch]: </s> remove             logger.trace("Getting from _rollover: (filename: `%s`, faces: %s)",
 </s> add             logger.trace("Getting from _rollover: (filename: `%s`, faces: %s)",  # type:ignore
        self._normalize_method: Optional[Literal["clahe", "hist", "mean"]] = None
                           model_filename,
                           configfile=configfile,
                           instance=instance,
                           **kwargs)
        self._normalize_method: Optional[Literal["clahe", "hist", "mean"]] = None
          self._re_feed = re_feed
          self.set_normalize_method(normalize_method)
  
          self._plugin_type = "align"
          self._faces_per_filename = {}  # Tracking for recompiling face batches
keep keep keep keep replace keep 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