                      "\n\talignments file. The original alignments file"
                      "\n\twill be backed up. A different file format for"
                      "\n\tthe alignments file can optionally be specified"
                      "\n\t(-fmt)." + frames_dir +
                      "\n'sort-x' - Re-index the alignments from left to"
                      "\n\tright. For alignments with multiple faces this will"
                      "\n\tensure that the left-most face is at index 0"
                      "\n\tOptionally pass in a faces folder (-fc) to also"
                      "\n\trename extracted faces."
                      "\n'sort-y' - Re-index the alignments from top to"
 
</s> remove                     "\n'spatial' - Perform spatial and temporal filtering to "
 </s> add                     "\n'spatial' - Perform spatial and temporal filtering to" </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             logger.info("Aligned directory not specified. All faces listed in the "
                        "alignments file will be converted")
 </s> add             logger.verbose("Aligned directory not specified. All faces listed in the "
                           "alignments file will be converted") </s> remove             which faces in the target frames should be swapped """
        faces_to_swap = None
 </s> add             which faces in the target frames should be swapped.
            If it exists, obtain the hashes of the faces in the folder """
        face_hashes = list()
                    "\n'rename' - Rename faces to correspond with their"
                    "\n\tparent frame and position index in the alignments"
                    "\n\tfile (i.e. how they are named after running"
                    "\n\textract)." + faces_dir +
                      "\n\talignments file. The original alignments file"
                      "\n\twill be backed up. A different file format for"
                      "\n\tthe alignments file can optionally be specified"
                      "\n\t(-fmt)." + frames_dir +
                    "\n'rename' - Rename faces to correspond with their"
                    "\n\tparent frame and position index in the alignments"
                    "\n\tfile (i.e. how they are named after running"
                    "\n\textract)." + faces_dir +
                      "\n'sort-x' - Re-index the alignments from left to"
                      "\n\tright. For alignments with multiple faces this will"
                      "\n\tensure that the left-most face is at index 0"
                      "\n\tOptionally pass in a faces folder (-fc) to also"
                      "\n\trename extracted faces."
                      "\n'sort-y' - Re-index the alignments from top to"
keep keep keep add keep 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