          legacy_mapping = self._legacy_mapping()  # pylint:disable=assignment-from-none
          if legacy_mapping is None:
              return
  
          if not all(os.path.isfile(os.path.join(self.model_dir, fname))
                     for fname in legacy_mapping):
              return
          archive_dir = f"{self.model_dir}_TF1_Archived"
          if os.path.exists(archive_dir):
              raise FaceswapError("We need to update your model files for use with Tensorflow 2.x, "
 
</s> remove         archive_dir = f"{self.model_dir}_TF1_Archived"
 </s> add         archive_dir = f"{self.io.model_dir}_TF1_Archived" </s> remove         if "[saved models]" not in output.strip().lower():
 </s> add         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 </s> remove         filename = self._io._filename  # pylint:disable=protected-access
 </s> add         filename = self._io.filename </s> remove                 msg = (f"Unable to load the model from '{self._filename}'. This may be a "
 </s> add                 msg = (f"Unable to load the model from '{self.filename}'. This may be a " </s> remove                    f"{self.model_dir}'. This is not supported.\nPlease split the model files into "
                   "their own folders before proceeding")
 </s> add                    f"{self.io.model_dir}'. This is not supported.\nPlease split the model files "
                   "into their own folders before proceeding")
        if not all(os.path.isfile(os.path.join(self.io.model_dir, fname))
          legacy_mapping = self._legacy_mapping()  # pylint:disable=assignment-from-none
          if legacy_mapping is None:
              return
  
        if not all(os.path.isfile(os.path.join(self.io.model_dir, fname))
                     for fname in legacy_mapping):
              return
          archive_dir = f"{self.model_dir}_TF1_Archived"
          if os.path.exists(archive_dir):
              raise FaceswapError("We need to update your model files for use with Tensorflow 2.x, "
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 
plugins/train/model/_base/model.py