  
      def process(self) -> None:
          """ Run the job to read faces from a folder to create alignments file(s). """
          logger.info("[CREATE ALIGNMENTS FROM FACES]")  # Tidy up cli output
          skip_count = 0
          d_align: Dict[str, Dict[str, List[Tuple[int, "AlignmentFileDict", str, dict]]]] = {}
          for filename, meta in tqdm(read_image_meta_batch(self._filelist),
                                     desc="Generating Alignments",
                                     total=len(self._filelist),
                                     leave=False):
 
</s> remove         for filename, meta in tqdm(read_image_meta_batch(self._filelist),
 </s> add         filelist = cast(List[Tuple[str, "PNGHeaderDict"]], self._faces.file_list_sorted)
        for filename, meta in tqdm(filelist, </s> remove     def _get_filenames(self) -> List[str]:
        """ Obtain the full path to all filenames in the specified faces folder.

        Only png files will be returned, any other files will be ignored. An error is output if
        the returned filelist is not valid

        Returns
        -------
        list
            Full path list to face png files
        """
        err = None
        if not self._faces_dir:
            err = "A faces folder must be provided."
        elif not os.path.isdir(self._faces_dir):
            err = f"The Faces location '{self._faces_dir}' does not exit"
        else:
            filelist = [os.path.join(self._faces_dir, fname)
                        for fname in os.listdir(self._faces_dir)
                        if os.path.splitext(fname.lower())[1] == ".png"]
        if not err and not filelist:
            err = "Faces folder should contain Faceswap extracted PNG files"
        if err:
            logger.error(err)
            sys.exit(0)
        logger.debug("Collected %s png images from folder '%s'", len(filelist), self._faces_dir)
        return filelist

 </s> add  </s> remove                                    total=len(self._filelist),
 </s> add                                    total=len(filelist), </s> remove     def _save_alignments(self, all_alignments: dict) -> None:
 </s> add     def _save_alignments(self,
                         all_alignments: Dict[str, Dict[str, "AlignmentDict"]],
                         versions: Dict[str, float]) -> None: </s> remove     @classmethod
    def _update_mask_centering(cls, alignment: dict) -> None:
        """ Prior to alignment version 2.2 all masks were stored with face centering.

        Update the existing masks with correct centering parameter.

        Parameters
        ----------
        alignment: dict
            The alignment for the face to have the mask centering parameter updated
        """
        if "mask" not in alignment:
            alignment["mask"] = {}
        for mask in alignment["mask"].values():
            mask["stored_centering"] = "face"

 </s> add 
        all_versions: Dict[str, List[float]] = {}
  
      def process(self) -> None:
          """ Run the job to read faces from a folder to create alignments file(s). """
          logger.info("[CREATE ALIGNMENTS FROM FACES]")  # Tidy up cli output
        all_versions: Dict[str, List[float]] = {}
          d_align: Dict[str, Dict[str, List[Tuple[int, "AlignmentFileDict", str, dict]]]] = {}
          for filename, meta in tqdm(read_image_meta_batch(self._filelist),
                                     desc="Generating Alignments",
                                     total=len(self._filelist),
                                     leave=False):
keep keep keep keep replace keep keep keep keep keep
 alignments tool - Remove-face - Minor update 
tools/alignments/jobs_faces.py