          sections = ("navigation", "display", "color", "size", "edit")
          helpout = {section: list() for section in sections}
          helptext = ""
          for key, val in self.interface.controls.items():
              help_section = val["args"][0]
              if help_section not in ("navigation", "edit"):
                  help_section = val["args"][1]
              key_text = val.get("key_text", None)
 
</s> remove         self.aligned["face"] = AlignerExtract().transform(
            image,
            self.aligned["matrix"],
            size,
            padding)
 </s> add         if image is None:
            self.aligned["face"] = None
        else:
            self.aligned["face"] = AlignerExtract().transform(
                image,
                self.aligned["matrix"],
                size,
                padding) </s> remove                 points = array([landmarks[val[0]:val[1]]], int32)
 </s> add                 points = np.array([landmarks[val[0]:val[1]]], np.int32)
            logger.trace("Generating help for:(key: '%s', val: '%s'", key, val)
          sections = ("navigation", "display", "color", "size", "edit")
          helpout = {section: list() for section in sections}
          helptext = ""
          for key, val in self.interface.controls.items():
            logger.trace("Generating help for:(key: '%s', val: '%s'", key, val)
              help_section = val["args"][0]
              if help_section not in ("navigation", "edit"):
                  help_section = val["args"][1]
              key_text = val.get("key_text", None)
keep keep keep add 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