code: def __init__(
      self,
      disc_start,
      logvar_init=0.0,
      kl_weight=1.0,
      pixelloss_weight=1.0,
      disc_num_layers=3,
      disc_in_channels=3,
      disc_factor=1.0,
      disc_weight=1.0,
      perceptual_weight=1.0,
      use_actnorm=False,
      disc_conditional=False,
      disc_loss="hinge",
  ):
      super().__init__()
      assert disc_loss in ["hinge", "vanilla"]
      self.kl_weight = kl_weight
      self.pixel_weight = pixelloss_weight
      self.perceptual_loss = LPIPS().eval()
      self.perceptual_weight = perceptual_weight
      # output log variance
      self.logvar = nn.Parameter(torch.ones(size=()) * logvar_init)
  
      self.discriminator = NLayerDiscriminator(
          input_nc=disc_in_channels,
          n_layers=disc_num_layers,
          use_actnorm=use_actnorm,
      ).apply(weights_init)
      self.discriminator_iter_start = disc_start
      self.disc_loss = (
          hinge_d_loss if disc_loss == "hinge" else vanilla_d_loss
      )
      self.disc_factor = disc_factor
      self.discriminator_weight = disc_weight
      self.disc_conditional = disc_conditional
  
file_path: compvis-stable-diffusion/ldm/modules/losses/contperceptual.py
imports: import torch
  import torch.nn
  from taming.modules.losses.vqperceptual import *
label_desc: Use image node_id 1 to create a new LPIPSWithDiscriminator object from inherited base classes: nn with example: obj = LPIPSWithDiscriminator(disc_start, logvar_init, kl_weight, pixelloss_weight, disc_num_layers, disc_in_channels, disc_factor, disc_weight, perceptual_weight, use_actnorm, disc_conditional, disc_loss)