  from lib.faces_detect import DetectedFace
  from lib.gpu_stats import GPUStats
  from lib.multithreading import MultiThread, PoolProcess, SpawnProcess
  from lib.queue_manager import queue_manager, QueueEmpty
  from lib.utils import get_folder
  from plugins.plugin_loader import PluginLoader
  from scripts.fsmedia import Alignments, Images, PostProcess, Utils
  
  tqdm.monitor_interval = 0  # workaround for TqdmSynchronisationWarning
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
 
</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 import cv2
 </s> add  </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
from lib.utils import get_folder, hash_encode_image
  from lib.faces_detect import DetectedFace
  from lib.gpu_stats import GPUStats
  from lib.multithreading import MultiThread, PoolProcess, SpawnProcess
  from lib.queue_manager import queue_manager, QueueEmpty
from lib.utils import get_folder, hash_encode_image
  from plugins.plugin_loader import PluginLoader
  from scripts.fsmedia import Alignments, Images, PostProcess, Utils
  
  tqdm.monitor_interval = 0  # workaround for TqdmSynchronisationWarning
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
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