          self.frames = {os.path.basename(frame): frame
                         for frame in frames}
          self.process()
  
      def process(self):
          """ Run the rotate alignments process """
          no_dims = self.alignments.get_legacy_no_dims()
          rotated = self.alignments.get_legacy_rotation()
          if not no_dims and not rotated:
              return
 
</s> remove         self.process()
 </s> add         self.process(faces_dir) </s> remove         if not no_dims and not rotated:
 </s> add         hashes = self.alignments.get_legacy_no_hashes()
        if not no_dims and not rotated and not hashes: </s> remove         if self.child_process and not rotated and not no_dims:
 </s> add         hashes = self.alignments.get_legacy_no_hashes()
        if (not self.frames or (not no_dims and not rotated)) and (not self.faces or not hashes): </s> remove         self.child_process = child_process
        self.frames = frames
        if not frames:
 </s> add         if child_process:
            self.frames = frames
            self.faces = faces
        else:
    def process(self, faces_dir):
          self.frames = {os.path.basename(frame): frame
                         for frame in frames}
          self.process()
  
    def process(self, faces_dir):
          """ Run the rotate alignments process """
          no_dims = self.alignments.get_legacy_no_dims()
          rotated = self.alignments.get_legacy_rotation()
          if not no_dims and not rotated:
              return
keep keep keep keep 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