      from plugins.train.model._base import ModelBase
      from plugins.train.trainer._base import TrainerBase
  
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
  
  class Train():  # pylint:disable=too-few-public-methods
      """ The Faceswap Training Process.
  
 
</s> remove from lib.multithreading import MultiThread
from lib.utils import (deprecation_warning, get_dpi, get_folder, get_image_paths,
 </s> add from lib.multithreading import MultiThread, FSThread
from lib.training import Preview, PreviewBuffer, TriggerType
from lib.utils import (deprecation_warning, get_folder, get_image_paths, </s> remove from typing import cast, Callable, Dict, List, Optional, Tuple, TYPE_CHECKING
 </s> add from threading import Event
from typing import cast, Callable, Dict, List, Optional, TYPE_CHECKING </s> remove from threading import Lock
 </s> add  </s> remove from matplotlib import backend_bases, figure, pyplot as plt, rcParams
 </s> add 
logger = logging.getLogger(__name__)
      from plugins.train.model._base import ModelBase
      from plugins.train.trainer._base import TrainerBase
  
  
logger = logging.getLogger(__name__)
  
  
  class Train():  # pylint:disable=too-few-public-methods
      """ The Faceswap Training Process.
  
keep keep keep keep replace keep keep keep keep keep
 Training - Use custom preview pop-out 
scripts/train.py