          tk_vars = get_config().tk_vars
          if self._command != "train" or not tk_vars.is_training.get():
              return
  
          if "[saved models]" not in output.strip().lower():
              return
  
          logger.debug("Trigger GUI Training update")
          logger.trace("tk_vars: %s", {itm: var.get()  # type:ignore[attr-defined]
                                       for itm, var in tk_vars.__dict__.items()})
 
</s> remove                 if self._command == "train" and output.startswith("Reading training images"):
                    print(output.strip(), file=sys.stdout)
 </s> add                 if self._process_training_determinate_function(output): </s> remove         if not all(os.path.isfile(os.path.join(self.model_dir, fname))
 </s> add         if not all(os.path.isfile(os.path.join(self.io.model_dir, fname)) </s> remove         archive_dir = f"{self.model_dir}_TF1_Archived"
 </s> add         archive_dir = f"{self.io.model_dir}_TF1_Archived"
        t_output = output.strip().lower()
        if "[saved model]" not in t_output or t_output.endswith("[saved model]"):
            # Not a saved model line or saving the model for a reason other than standard saving
          tk_vars = get_config().tk_vars
          if self._command != "train" or not tk_vars.is_training.get():
              return
  
        t_output = output.strip().lower()
        if "[saved model]" not in t_output or t_output.endswith("[saved model]"):
            # Not a saved model line or saving the model for a reason other than standard saving
              return
  
          logger.debug("Trigger GUI Training update")
          logger.trace("tk_vars: %s", {itm: var.get()  # type:ignore[attr-defined]
                                       for itm, var in tk_vars.__dict__.items()})
keep keep keep keep replace keep keep keep keep keep
 Learning Rate finder (#1341)

* Add LR Finder support structure

* Move trainer.Feeder to lib.training.generator

* Expose model.io

* Add lr_finder

* Update docs and locales

* Pre-PR fixups
  - Fix training graph not displaying
  - CI fixes
  - Switch lr finder progress to tqdm
  - Exit lr finder early on NaN
  - Display lr finder progress in GUI 
lib/gui/wrapper.py