Allow models to provide an additional loss

This commit is contained in:
Jaret Burkett
2026-06-28 09:49:36 -06:00
parent 1e12b6b73f
commit 4e50535478

View File

@@ -944,6 +944,12 @@ class SDTrainer(BaseSDTrainProcess):
loss = loss + additional_loss
if hasattr(self.sd, "get_additional_loss"):
additional_model_loss = self.sd.get_additional_loss(pred, target)
if additional_model_loss is not None:
loss = loss + additional_model_loss
self.additional_logs["additional_model_loss"] = additional_model_loss.item()
if self.train_config.max_loss_debug and self.train_config.max_loss is not None:
if loss.item() > self.train_config.max_loss:
print_acc(f"Loss {loss.item()} is greater than max loss {self.train_config.max_loss}. Clipping to max loss.")