                      "\n\tbottom. For alignments with multiple faces this will"
                      "\n\tensure that the top-most face is at index 0"
                      "\n\tOptionally pass in a faces folder (-fc) to also"
                      "\n\trename extracted faces."
                      "\n'spatial' - Perform spatial and temporal filtering to "
                      "\n\tsmooth alignments (EXPERIMENTAL!)"})
          argument_list.append({"opts": ("-a", "--alignments_file"),
                                "action": FileFullPaths,
                                "dest": "alignments_file",
                                "required": True,
 
</s> remove         elif self.type == "faces" and self.job not in ("multi-faces",
                                                       "leftover-faces"):
 </s> add         elif self.type == "faces" and self.job not in ("multi-faces", "leftover-faces"): </s> remove                     "\n'legacy': This updates legacy alignments to the latest "
                    "\n\tformat by adding frame dimensions and rotating "
                    "\n\tthe landmarks and bounding boxes" + frames_dir +
 </s> add                     "\n'legacy': This updates legacy alignments to the latest"
                    "\n\tformat by adding frame dimensions, rotating the"
                    "\n\tlandmarks and bounding boxes and adding face_hashes" +
                    frames_and_faces_dir + </s> remove             frame_key = "frame_name"
 </s> add             frame_key = "face_hash"
                    "\n'spatial' - Perform spatial and temporal filtering to"
                      "\n\tbottom. For alignments with multiple faces this will"
                      "\n\tensure that the top-most face is at index 0"
                      "\n\tOptionally pass in a faces folder (-fc) to also"
                      "\n\trename extracted faces."
                    "\n'spatial' - Perform spatial and temporal filtering to"
                      "\n\tsmooth alignments (EXPERIMENTAL!)"})
          argument_list.append({"opts": ("-a", "--alignments_file"),
                                "action": FileFullPaths,
                                "dest": "alignments_file",
                                "required": True,
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 
tools/cli.py