  import cv2
  import imageio_ffmpeg as im_ffm
  import numpy as np
  
  from lib.utils import convert_to_secs, FaceswapError
  
  logger = logging.getLogger(__name__)  # pylint:disable=invalid-name
  
  # ################### #
  # <<< IMAGE UTILS >>> #
 
</s> remove def read_image(filename, raise_error=False):
 </s> add def read_image(filename, raise_error=False, with_hash=False): </s> remove     # Note that other than with the subprocess calls below, ffmpeg wont hang here.
 </s> add     # Note that other than with the sub-process calls below, ffmpeg wont hang here.
from lib.multithreading import MultiThread
from lib.queue_manager import queue_manager, QueueEmpty
from lib.utils import convert_to_secs, FaceswapError, _video_extensions, get_image_paths
  import cv2
  import imageio_ffmpeg as im_ffm
  import numpy as np
  
from lib.multithreading import MultiThread
from lib.queue_manager import queue_manager, QueueEmpty
from lib.utils import convert_to_secs, FaceswapError, _video_extensions, get_image_paths
  
  logger = logging.getLogger(__name__)  # pylint:disable=invalid-name
  
  # ################### #
  # <<< IMAGE UTILS >>> #
keep keep keep keep replace keep keep keep keep keep
 Mask tool

tools.mask - A tool for creating masks for existing alignments files and outputting mask previews
lib.image.BackgroundIO - A background image loader and saver 
lib/image.py