  
      def frame_has_faces(self, frame):
          """ Return true if frame exists and has faces """
          retval = bool(self.data.get(frame, list()))
          logger.trace(retval)
          return retval
  
      def frame_has_multiple_faces(self, frame):
          """ Return true if frame exists and has faces """
          if not frame:
 
</s> remove         logger.trace(retval)
 </s> add         logger.trace("'%s': %s", frame, retval) </s> remove         logger.trace(retval)
 </s> add         logger.trace("'%s': %s", frame, retval) </s> remove             return faces
        valid_faces = list()
        sizes = self.extracted_faces.get_roi_size_for_frame(frame)
        for idx, size in enumerate(sizes):
            if size >= self.extracted_faces.size:
                valid_faces.append(faces[idx])
 </s> add             valid_faces = faces
        else:
            sizes = self.extracted_faces.get_roi_size_for_frame(frame)
            valid_faces = [faces[idx]
                           for idx, size in enumerate(sizes)
                           if size >= self.extracted_faces.size]
        logger.trace("frame: '%s', total_faces: %s, valid_faces: %s",
                     frame, len(faces), len(valid_faces))
        logger.trace("'%s': %s", frame, retval)
  
      def frame_has_faces(self, frame):
          """ Return true if frame exists and has faces """
          retval = bool(self.data.get(frame, list()))
        logger.trace("'%s': %s", frame, retval)
          return retval
  
      def frame_has_multiple_faces(self, frame):
          """ Return true if frame exists and has faces """
          if not frame:
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 
lib/alignments.py