  from plugins.extract.pipeline import ExtractMedia
  
  if TYPE_CHECKING:
      from queue import Queue
      from lib.align import DetectedFace
      from lib.align.aligned_face import CenteringType
  
  logger = logging.getLogger(__name__)
  
  
 
</s> remove     from lib.align.alignments import AlignmentFileDict
 </s> add     from lib.align.alignments import AlignmentFileDict, PNGHeaderDict, PNGHeaderSourceDict </s> remove from lib.align import AlignedFace
 </s> add from lib.align import AlignedFace, DetectedFace
from lib.image import read_image_meta </s> remove if sys.version_info < (3, 8):
    from typing_extensions import get_args, Literal
else:
    from typing import get_args, Literal

 </s> add 
  from plugins.extract.pipeline import ExtractMedia
  
  if TYPE_CHECKING:
      from queue import Queue

      from lib.align.aligned_face import CenteringType
  
  logger = logging.getLogger(__name__)
  
  
keep keep keep keep replace keep keep keep keep keep
 Update Face Filter
  - Remove old face filter
  - plugins.extract.pipeline: Expose plugins directly
  - Change `is_aligned` from plugin level to ExtractMedia level
  - Allow extract pipeline to take faceswap aligned images
  - Add ability for recognition plugins to accept aligned faces as input
  - Add face filter to recognition plugin
  - Move extractor pipeline IO ops to own class 
plugins/extract/recognition/_base.py