                   configfile: Optional[str] = None,
                   multiprocess: bool = False,
                   exclude_gpus: Optional[List[int]] = None,
                   rotate_images: Optional[List[int]] = None,
                   min_size: int = 20,
                   normalize_method: Optional[str] = None,
                   re_feed: int = 0,
                   image_is_aligned: bool = False) -> None:
          logger.debug("Initializing %s: (detector: %s, aligner: %s, masker: %s, configfile: %s, "
                       "multiprocess: %s, exclude_gpus: %s, rotate_images: %s, min_size: %s, "
                       "normalize_method: %s, re_feed: %s, image_is_aligned: %s)",
 
</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             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         logger.trace("Padding: (l: %s, t: %s, r: %s, b: %s)", pad_l, pad_t, pad_r, pad_b)
 </s> add         logger.trace("Padding: (l: %s, t: %s, r: %s, b: %s)",  # type:ignore
                     pad_l, pad_t, pad_r, pad_b) </s> remove         logger.trace("image_shape: %s, Padded shape: %s, box: %s, offsets: %s",
 </s> add         logger.trace("image_shape: %s, Padded shape: %s, box: %s, offsets: %s",  # type:ignore </s> remove                 logger.trace("Getting from queue: (filename: %s, faces: %s)",
 </s> add                 logger.trace("Getting from queue: (filename: %s, faces: %s)",  # type:ignore
                 min_size: int = 0,
                 normalize_method:  Optional[Literal["none", "clahe", "hist", "mean"]] = None,
                   configfile: Optional[str] = None,
                   multiprocess: bool = False,
                   exclude_gpus: Optional[List[int]] = None,
                   rotate_images: Optional[List[int]] = None,
                 min_size: int = 0,
                 normalize_method:  Optional[Literal["none", "clahe", "hist", "mean"]] = None,
                 min_size: int = 0,
                 normalize_method:  Optional[Literal["none", "clahe", "hist", "mean"]] = None,
                   re_feed: int = 0,
                   image_is_aligned: bool = False) -> None:
          logger.debug("Initializing %s: (detector: %s, aligner: %s, masker: %s, configfile: %s, "
                       "multiprocess: %s, exclude_gpus: %s, rotate_images: %s, min_size: %s, "
                       "normalize_method: %s, re_feed: %s, image_is_aligned: %s)",
keep keep keep keep replace 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/pipeline.py