  import os
  import sys
  from pathlib import Path
  
  import cv2
  from tqdm import tqdm
  
  from lib.faces_detect import DetectedFace
  from lib.gpu_stats import GPUStats
  from lib.multithreading import MultiThread, PoolProcess, SpawnProcess
 
</s> remove from lib.utils import get_folder
 </s> add from lib.utils import get_folder, hash_encode_image </s> remove from lib.utils import get_folder, get_image_paths
 </s> add from lib.utils import get_folder, get_image_paths, hash_image_file </s> remove from cv2 import (  # pylint: disable=no-name-in-module
    rectangle, circle, polylines, putText,
    FONT_HERSHEY_DUPLEX, fillPoly, addWeighted)
from numpy import array, int32, uint8, zeros
 </s> add import logging

import cv2
import numpy as np </s> remove from tools.lib_alignments.jobs import Check, Draw, Extract, Legacy, Reformat, RemoveAlignments, Sort, Spatial
 </s> add from tools.lib_alignments.jobs import Check, Draw, Extract, Legacy, Reformat, RemoveAlignments, Rename, Sort, Spatial
  import os
  import sys
  from pathlib import Path
  

  from tqdm import tqdm
  
  from lib.faces_detect import DetectedFace
  from lib.gpu_stats import GPUStats
  from lib.multithreading import MultiThread, PoolProcess, SpawnProcess
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 
scripts/extract.py