  
              if self.alignments.frame_has_multiple_faces(frame):
                  yield retval
  
      def get_missing_alignments(self):
          """ yield each frame that does not exist in alignments file """
          self.output_message = "Frames missing from alignments file"
 
</s> remove         for frame in tqdm(self.items, total=len(self.items)):
 </s> add         for frame in tqdm(self.items, desc=self.output_message): </s> remove         for frame in tqdm(self.alignments.data.keys(),
                          total=len(self.alignments.frames_count)):
 </s> add         for frame in tqdm(self.alignments.data.keys(), desc=self.output_message): </s> remove         for frame in tqdm(self.items, total=len(self.items)):
 </s> add         for frame in tqdm(self.items, desc=self.output_message):
            logger.trace(frame)
                if self.type == "faces":
                    # Add correct alignments index for moving faces
                    retval = (retval, idx)
                logger.trace("Returning: '%s'", retval)
  
              if self.alignments.frame_has_multiple_faces(frame):
                if self.type == "faces":
                    # Add correct alignments index for moving faces
                    retval = (retval, idx)
                logger.trace("Returning: '%s'", retval)
                  yield retval
  
      def get_missing_alignments(self):
          """ yield each frame that does not exist in alignments file """
          self.output_message = "Frames missing from alignments file"
keep add 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 
tools/lib_alignments/jobs.py