          self.normalized["scale_factors"] = normalized_shape[1]
          self.normalized["mean_coords"] = normalized_shape[2]
  
      def shape_model(self):
          """ build 2D shape model """
          logger.debug("Shape model")
          landmarks_norm = self.normalized["landmarks"]
 
</s> remove         normalized_shapes_tbl = np.reshape(landmarks_norm,
                                           [68*2, landmarks_norm.shape[2]]).T
        self.shapes_model = decomposition.PCA(
            n_components=num_components,
            whiten=True,
            random_state=1).fit(normalized_shapes_tbl)
 </s> add         normalized_shapes_tbl = np.reshape(landmarks_norm, [68*2, landmarks_norm.shape[2]]).T
        self.shapes_model = decomposition.PCA(n_components=num_components,
                                              whiten=True,
                                              random_state=1).fit(normalized_shapes_tbl) </s> remove         landmarks_norm_table = np.reshape(landmarks_norm,
                                          [68 * 2, landmarks_norm.shape[2]]).T
 </s> add         landmarks_norm_table = np.reshape(landmarks_norm, [68 * 2, landmarks_norm.shape[2]]).T
        logger.debug("Normalized: %s", self.normalized)
          self.normalized["scale_factors"] = normalized_shape[1]
          self.normalized["mean_coords"] = normalized_shape[2]
        logger.debug("Normalized: %s", self.normalized)
  
      def shape_model(self):
          """ build 2D shape model """
          logger.debug("Shape model")
          landmarks_norm = self.normalized["landmarks"]
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