                         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:
                  loss_func = losses.LossWrapper()
                  for func, weight in face_losses:
                      self._add_face_loss_function(loss_func, func, weight / 100.)
  
 
</s> remove                        and v is not None]
 </s> add                        and lossname is not None] </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_wrapper.add_loss(loss_function,
 </s> add         loss_wrapper.add_loss(self._get_function(loss_function), </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":
                loss_func = self._get_function(self._config["mask_loss_function"])
                         and v is not None]
  
          for name, output_name in zip(self._names, output_names):
              if name.startswith("mask"):
                loss_func = self._get_function(self._config["mask_loss_function"])
              else:
                  loss_func = losses.LossWrapper()
                  for func, weight in face_losses:
                      self._add_face_loss_function(loss_func, func, weight / 100.)
  
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