          face_losses = [(self._loss_dict[v], self._config.get(f"loss_weight_{k[-1]}", 100))
                         for k, v in sorted(self._config.items())
                         if k.startswith("loss_function")
                         and self._config.get(f"loss_weight_{k[-1]}", 100) != 0
                         and v is not None]
  
          for name, output_name in zip(self._names, output_names):
              if name.startswith("mask"):
                  loss_func = self._loss_dict[self._config["mask_loss_function"]]
              else:
 
</s> remove         face_losses = [(self._loss_dict[v], self._config.get(f"loss_weight_{k[-1]}", 100))
                       for k, v in sorted(self._config.items())
 </s> add         face_losses = [(lossname, self._config.get(f"loss_weight_{k[-1]}", 100))
                       for k, lossname in sorted(self._config.items()) </s> remove                 loss_func = self._loss_dict[self._config["mask_loss_function"]]
 </s> add                 loss_func = self._get_function(self._config["mask_loss_function"]) </s> remove                 tooltip_kwargs = dict(text=self.option.helptext, wrap_length=600)
 </s> add                 tooltip_kwargs = dict(text=self.option.helptext) </s> remove     elif extension in (".yaml", ".yml") and yaml is None:
 </s> add     elif extension in (".yaml", ".yml"): </s> remove     elif serializer.lower() == "yaml" and yaml is None:
 </s> add     elif serializer.lower() == "yaml":
                       and lossname is not None]
          face_losses = [(self._loss_dict[v], self._config.get(f"loss_weight_{k[-1]}", 100))
                         for k, v in sorted(self._config.items())
                         if k.startswith("loss_function")
                         and self._config.get(f"loss_weight_{k[-1]}", 100) != 0
                       and lossname is not None]
  
          for name, output_name in zip(self._names, output_names):
              if name.startswith("mask"):
                  loss_func = self._loss_dict[self._config["mask_loss_function"]]
              else:
keep keep keep keep replace keep keep keep keep keep
 Core updates
   - Change loss loading mechanism
   - Autosize tooltips based on content size
   - Random linting + code modernisation 
plugins/train/model/_base/settings.py