      source_filename: str
      source_is_video: bool
  
  
  class AlignmentDict(TypedDict):
      """ Dictionary for holding all of the alignment information within a single alignment file """
 
</s> remove         alignment = self._alignments.get_faces_in_frame(frame_name)
        if not alignment or face_index > len(alignment) - 1:
 </s> add         alignments = self._alignments.get_faces_in_frame(frame_name)
        if not alignments or face_index > len(alignments) - 1: </s> remove         alignment = alignment[face_index]
 </s> add         alignment = alignments[face_index] </s> remove     image_is_aligned: bool, optional
        Indicates that the passed in image is an aligned face rather than a frame.
        Default: ``False``
 </s> add  </s> remove     image_is_aligned: bool, optional
        Indicates that the passed in image is an aligned face rather than a frame.
        Default: ``False``
 </s> add 
    source_frame_dims: Optional[Tuple[int, int]]
      source_filename: str
      source_is_video: bool
    source_frame_dims: Optional[Tuple[int, int]]
  
  
  class AlignmentDict(TypedDict):
      """ Dictionary for holding all of the alignment information within a single alignment file """
keep add 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 
lib/align/alignments.py