  
      @staticmethod
      def set_full_roi(size):
          """ ROI is the full frame for faces, so set based on size """
          return [np.array([[(0, 0), (0, size - 1),
                             (size - 1, size - 1), (size - 1, 0)]], np.int32)]
  
      def annotate_faces(self):
          """ Annotate each of the faces """
          state = self.interface.state
          selected_face = self.interface.get_selected_face_id()
 
</s> remove         cv2.rectangle(image, (0, 0), (width - 1, height - 1),
                      color, 1)

 </s> add         cv2.rectangle(image, (0, 0), (width - 1, height - 1), color, 1) </s> remove         cv2.rectangle(image, (0, 0), (width - 1, height - 1),
                      color, 2)
 </s> add         cv2.rectangle(image, (0, 0), (width - 1, height - 1), color, 2)
        logger.trace("Created help text canvas")
        return [np.array([[(0, 0), (0, size - 1), (size - 1, size - 1), (size - 1, 0)]], np.int32)]
  
      @staticmethod
      def set_full_roi(size):
          """ ROI is the full frame for faces, so set based on size """
        return [np.array([[(0, 0), (0, size - 1), (size - 1, size - 1), (size - 1, 0)]], np.int32)]
        return [np.array([[(0, 0), (0, size - 1), (size - 1, size - 1), (size - 1, 0)]], np.int32)]
  
      def annotate_faces(self):
          """ Annotate each of the faces """
          state = self.interface.state
          selected_face = self.interface.get_selected_face_id()
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 
tools/lib_alignments/jobs_manual.py