          if hasattr(self._args, "summary") and self._args.summary:
              print_fn = None  # Print straight to stdout
          else:
              # print to logger
              print_fn = lambda x: logger.verbose("%s", x)  # type: ignore # noqa
          for idx, model in enumerate(get_all_sub_models(self.model)):
              if idx == 0:
                  parent = model
                  continue
              model.summary(line_length=100, print_fn=print_fn)
 
</s> remove                               clahe_chance=int(self._config.get("color_clahe_chance", 50)) / 100,
                              clahe_max_size=int(self._config.get("color_clahe_max_size", 4)),
 </s> add                               clahe_chance=color_clahe_chance / 100,
                              clahe_max_size=color_clahe_max_size, </s> remove         fix_map = lambda o: [elm for elm in style.map("Treeview", query_opt=o)  # noqa
 </s> add         fix_map = lambda o: [elm for elm in style.map("Treeview", query_opt=o)  # noqa[E731]  # pylint:disable=C3001 </s> remove                 for option, params in conf.defaults[section].items():
                    if option == "helptext":
                        retval[key]["helptext"] = params
                        continue
 </s> add                 retval[key]["helptext"] = conf.defaults[section].helptext
                for option, params in conf.defaults[section].items.items(): </s> remove         indices = np.where(randoms > int(self._config.get("random_flip", 50)) / 100)[0]
 </s> add         flip_chance = self._config.get("random_flip", 50)
        assert isinstance(flip_chance, int)
        indices = np.where(randoms > flip_chance / 100)[0] </s> remove                     if params["type"] == list and isinstance(initial_value, list):
 </s> add                     if params.datatype == list and isinstance(initial_value, list):
            print_fn = lambda x: logger.verbose("%s", x)  #type:ignore[attr-defined]  # noqa[E731]  # pylint:disable=C3001
          if hasattr(self._args, "summary") and self._args.summary:
              print_fn = None  # Print straight to stdout
          else:
              # print to logger
            print_fn = lambda x: logger.verbose("%s", x)  #type:ignore[attr-defined]  # noqa[E731]  # pylint:disable=C3001
          for idx, model in enumerate(get_all_sub_models(self.model)):
              if idx == 0:
                  parent = model
                  continue
              model.summary(line_length=100, print_fn=print_fn)
keep keep keep keep replace keep keep keep keep keep
 Preview - Allow mask color/opacity configuration
  - typing: lib.config
  - docs: lib.config
  - bugfix: popup_configure - keep assets on top 
plugins/train/model/_base/model.py