              sys.exit(1)
          else:
              raise FaceswapError(message)
  
      def _test_for_gui(self):
          """ If running the gui, performs check to ensure necessary prerequisites are present. """
          if self._command != "gui":
              return
          self._test_tkinter()
          self._check_display()
 
</s> remove     print(f"Cmd: {''.join(cmd)}")
 </s> add     print(f"Cmd: {' '.join(cmd)}") </s> remove     assert ((_BACKEND == "cpu" and keras.__version__ in ("2.4.0", "2.6.0", "2.7.0", "2.8.0")) or
 </s> add     assert ((_BACKEND == "cpu" and keras.__version__ in ("2.7.0", "2.8.0", "2.9.0")) or </s> remove             win = sys.getwindowsversion()
 </s> add             win = sys.getwindowsversion()  # type:ignore # pylint:disable=no-member </s> remove     def _import_script(self):
 </s> add     def _import_script(self) -> Callable: </s> remove             for name, value in logs.items():
                tf.summary.scalar(
                    "batch_" + name,
                    value,
                    step=self._model._model._train_counter)  # pylint:disable=protected-access
 </s> add             with tf.summary.record_if(True), self._tensorboard._train_writer.as_default():  # noqa pylint:disable=protected-access,not-context-manager
                for name, value in logs.items():
                    tf.summary.scalar(
                        "batch_" + name,
                        value,
                        step=self._tensorboard._train_step)  # pylint:disable=protected-access
        else:
            self._tensorboard.on_train_batch_end(self._model.iterations, logs=logs)
    def _test_for_gui(self) -> None:
              sys.exit(1)
          else:
              raise FaceswapError(message)
  
    def _test_for_gui(self) -> None:
          """ If running the gui, performs check to ensure necessary prerequisites are present. """
          if self._command != "gui":
              return
          self._test_tkinter()
          self._check_display()
keep keep keep keep replace keep keep keep keep keep
 Update TF to 2.9
    - Update TF to 2.7 to 2.9
    - Bump dependencies
    - Remove decode from pynvml calls
    - force keras predict functions to non-verbose
    - update tests
    - update Tensorboard logging
    - Update docs 
lib/cli/launcher.py