                      self._counts["skip"] += 1
                      logger.warning("Legacy face not found in alignments file. This face has not "
                                     "been updated: '%s'", filename)
                      continue
              if "source_frame_dims" not in metadata["source"]:
                  logger.error("The faces need to be re-extracted as at least some of them do not "
                               "contain information required to correctly generate masks.")
                  logger.error("You can re-extract the face-set by using the Alignments Tool's "
                               "Extract job.")
                  break
 
</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             help=_("Optionally filter out people who you do not wish to process by passing in an "
                   "image of that person. Should be a front portrait with a single person in the "
                   "image. Multiple images can be added space separated. NB: Using face filter "
                   "will significantly decrease extraction speed and its accuracy cannot be "
                   "guaranteed.")))
 </s> add             help=_("Optionally filter out people who you do not wish to extract by passing in "
                   "images of those people. Should be a small variety of images at different "
                   "angles and in different conditions. Multiple images can be added space "
                   "separated."))) </s> remove             if not item.detected_faces:
 </s> add             if not item.is_aligned and not item.detected_faces: </s> remove "Optionally filter out people who you do not wish to process by passing in an "
"image of that person. Should be a front portrait with a single person in the "
"image. Multiple images can be added space separated. NB: Using face filter "
"will significantly decrease extraction speed and its accuracy cannot be "
"guaranteed."
 </s> add "Optionally filter out people who you do not wish to extract by passing in "
"images of those people. Should be a small variety of images at different "
"angles and in different conditions. Multiple images can be added space "
"separated."
            if not metadata.get("source_frame_dims"):
                      self._counts["skip"] += 1
                      logger.warning("Legacy face not found in alignments file. This face has not "
                                     "been updated: '%s'", filename)
                      continue
            if not metadata.get("source_frame_dims"):
                  logger.error("The faces need to be re-extracted as at least some of them do not "
                               "contain information required to correctly generate masks.")
                  logger.error("You can re-extract the face-set by using the Alignments Tool's "
                               "Extract job.")
                  break
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 
tools/mask/mask.py