      """ Update legacy alignments:
  
          - Add frame dimensions
          - Rotate landmarks and bounding boxes on legacy alignments
          and remove the 'r' parameter """
      def __init__(self, alignments, frames):
          self.alignments = alignments
          self.frames = {os.path.basename(frame): frame
                         for frame in frames}
          self.process()
  
 
</s> remove         and remove the 'r' parameter """
 </s> add           and remove the 'r' parameter
        - Add face hashes to alignments file
    """ </s> remove     def __init__(self, alignments, arguments,
                 frames=None, child_process=False):
 </s> add     def __init__(self, alignments, arguments, frames=None, faces=None, child_process=False):
        logger.debug("Initializing %s: (arguments: %s, child_process: %s)",
                     self.__class__.__name__, arguments, child_process) </s> remove         self.process()
 </s> add         self.process(faces_dir) </s> remove     def process(self):
 </s> add     def process(self, faces_dir): </s> remove     def check_skipface(self, filename, face_idx):
        """ Check whether face is to be skipped """
        if self.faces_to_swap is None:
            return False
        face_name = "{}_{}{}".format(Path(filename).stem,
                                     face_idx,
                                     Path(filename).suffix)
        face_file = Path(self.args.input_aligned_dir) / Path(face_name)
        skip_face = face_file not in self.faces_to_swap
        if skip_face:
            logger.info("face %s for frame '%s' was deleted, skipping",
                        face_idx, os.path.basename(filename))
        return skip_face

 </s> add 
        and remove the 'r' parameter
        - Add face hashes to alignments file
        """
    def __init__(self, alignments, frames, faces_dir):
      """ Update legacy alignments:
  
          - Add frame dimensions
          - Rotate landmarks and bounding boxes on legacy alignments
        and remove the 'r' parameter
        - Add face hashes to alignments file
        """
    def __init__(self, alignments, frames, faces_dir):
        and remove the 'r' parameter
        - Add face hashes to alignments file
        """
    def __init__(self, alignments, frames, faces_dir):
          self.alignments = alignments
          self.frames = {os.path.basename(frame): frame
                         for frame in frames}
          self.process()
  
keep keep keep keep replace replace keep keep keep keep keep
 Add Face Hashes to Alignments (#550)

* Convert main scripts to use face hashes

* Alignment tool: Use hashes, add logging, add face rename function

* More logging. Update Manual tool to work with hashing 
scripts/convert.py