      ".bmp", ".jpeg", ".jpg", ".png", ".tif", ".tiff"]
  _video_extensions = [  # pylint:disable=invalid-name
      ".avi", ".flv", ".mkv", ".mov", ".mp4", ".mpeg", ".mpg", ".webm", ".wmv",
      ".ts", ".vob"]
  
  
  class _Backend():  # pylint:disable=too-few-public-methods
      """ Return the backend from config/.faceswap of from the `FACESWAP_BACKEND` Environment
 
</s> remove class DSSIMObjective(tf.keras.losses.Loss):
 </s> add class DSSIMObjective(tf.keras.losses.Loss):  # pylint:disable=too-few-public-methods </s> remove from tensorflow.python.keras.engine import compile_utils
 </s> add from tensorflow.python.keras.engine import compile_utils  # pylint:disable=no-name-in-module </s> remove from lib.utils import (FaceswapError, get_backend, KerasFinder, safe_shutdown, set_backend,
                       set_system_verbosity)
 </s> add from lib.utils import (FaceswapError, get_backend, get_tf_version, KerasFinder, safe_shutdown,
                       set_backend, set_system_verbosity) </s> remove class LInfNorm(tf.keras.losses.Loss):
 </s> add class LInfNorm(tf.keras.losses.Loss):  # pylint:disable=too-few-public-methods
_TF_VERS = None
      ".bmp", ".jpeg", ".jpg", ".png", ".tif", ".tiff"]
  _video_extensions = [  # pylint:disable=invalid-name
      ".avi", ".flv", ".mkv", ".mov", ".mp4", ".mpeg", ".mpg", ".webm", ".wmv",
      ".ts", ".vob"]
_TF_VERS = None
  
  
  class _Backend():  # pylint:disable=too-few-public-methods
      """ Return the backend from config/.faceswap of from the `FACESWAP_BACKEND` Environment
keep keep keep add keep keep keep keep
 Update code to support Tensorflow versions up to 2.8 (#1213)

* Update maximum tf version in setup + requirements

* - bump max version of tf version in launcher
- standardise tf version check

* update keras get_custom_objects  for tf>2.6

* bugfix: force black text in GUI file dialogs (linux)

* dssim loss - Move to stock tf.ssim function

* Update optimizer imports for compatibility

* fix logging for tf2.8

* Fix GUI graphing for TF2.8

* update tests

* bump requirements.txt versions

* Remove limit on nvidia-ml-py

* Graphing bugfixes
  - Prevent live graph from displaying if data not yet available

* bugfix: Live graph. Collect loss labels correctly

* fix: live graph - swallow inconsistent loss errors

* Bugfix: Prevent live graph from clearing during training

* Fix graphing for AMD 
lib/utils.py