                           desc=self.output_message,
                           leave=False):
              if not self._alignments.frame_has_multiple_faces(item["source_filename"]):
                  continue
              retval = (item[0], item[1]["face_index"])
              logger.trace("Returning: '%s'", retval)  # type:ignore
              yield retval
  
      def _get_missing_alignments(self) -> Generator[str, None, None]:
          """ yield each frame that does not exist in alignments file
 
</s> remove             if not self._alignments.frame_has_multiple_faces(item["source_filename"]):
 </s> add             src = item[1]["source"]
            if not self._alignments.frame_has_multiple_faces(src["source_filename"]): </s> remove         for item in tqdm(cast(List[Tuple[str, "PNGHeaderSourceDict"]], self._items),
 </s> add         for item in tqdm(cast(List[Tuple[str, "PNGHeaderDict"]], self._items), </s> remove         frames = set(item["frame_fullname"] for item in self._items)
 </s> add         frames = set(item["frame_fullname"] for item in cast(List[Dict[str, str]], self._items)) </s> remove             retval: Union[Tuple[str, "PNGHeaderDict"], Tuple[str, "PNGHeaderSourceDict"]]
            retval = (os.path.basename(fullpath), sub_dict)  # type:ignore
 </s> add             retval = (os.path.basename(fullpath), sub_dict) </s> remove                 sub_dict = (metadata["itxt"] if self._with_alignments
                            else metadata["itxt"]["source"])
 </s> add                 sub_dict = cast("PNGHeaderDict", metadata["itxt"])
            retval = (item[0], src["face_index"])
                           desc=self.output_message,
                           leave=False):
              if not self._alignments.frame_has_multiple_faces(item["source_filename"]):
                  continue
            retval = (item[0], src["face_index"])
              logger.trace("Returning: '%s'", retval)  # type:ignore
              yield retval
  
      def _get_missing_alignments(self) -> Generator[str, None, None]:
          """ yield each frame that does not exist in alignments file
keep keep keep keep replace keep keep keep keep keep
 Alignments Tool updates
  - Copy info back to alignments file from faces 
tools/alignments/jobs.py