  
  from lib.image import encode_image_with_hash, ImagesLoader, ImagesSaver
  from lib.multithreading import MultiThread
  from lib.utils import get_folder
  from plugins.extract.pipeline import Extractor
  from scripts.fsmedia import Alignments, PostProcess, Utils
  
  tqdm.monitor_interval = 0  # workaround for TqdmSynchronisationWarning
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
 
</s> remove import cv2
import numpy as np

 </s> add  </s> remove from plugins.extract._base import Extractor, logger
 </s> add from plugins.extract._base import Extractor, ExtractMedia, logger </s> remove from plugins.extract._base import Extractor, logger
 </s> add from plugins.extract._base import Extractor, logger, ExtractMedia
from plugins.extract.pipeline import Extractor, ExtractMedia
  
  from lib.image import encode_image_with_hash, ImagesLoader, ImagesSaver
  from lib.multithreading import MultiThread
  from lib.utils import get_folder
from plugins.extract.pipeline import Extractor, ExtractMedia
  from scripts.fsmedia import Alignments, 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
 plugins.extract - Create ExtractMedia class for pipeline flow
Bugfix - Fix memory leak in extract 
scripts/extract.py