code: def calc_updown(self, orig_weight):
      w1a = self.w1a.to(orig_weight.device, dtype=orig_weight.dtype)
      w1b = self.w1b.to(orig_weight.device, dtype=orig_weight.dtype)
      w2a = self.w2a.to(orig_weight.device, dtype=orig_weight.dtype)
      w2b = self.w2b.to(orig_weight.device, dtype=orig_weight.dtype)
  
      output_shape = [w1a.size(0), w1b.size(1)]
  
      if self.t1 is not None:
          output_shape = [w1a.size(1), w1b.size(1)]
          t1 = self.t1.to(orig_weight.device, dtype=orig_weight.dtype)
          updown1 = lyco_helpers.make_weight_cp(t1, w1a, w1b)
          output_shape += t1.shape[2:]
      else:
          if len(w1b.shape) == 4:
              output_shape += w1b.shape[2:]
          updown1 = lyco_helpers.rebuild_conventional(
              w1a, w1b, output_shape
          )
  
      if self.t2 is not None:
          t2 = self.t2.to(orig_weight.device, dtype=orig_weight.dtype)
          updown2 = lyco_helpers.make_weight_cp(t2, w2a, w2b)
      else:
          updown2 = lyco_helpers.rebuild_conventional(
              w2a, w2b, output_shape
          )
  
      updown = updown1 * updown2
  
      return self.finalize_updown(updown, orig_weight, output_shape)
  
file_path: stable-diffusion-webui/extensions-builtin/Lora/network_hada.py
imports: import lyco_helpers
  import network
label_desc: Use image node_id 2 for calling the NetworkModuleHada obj's underlying member method code with example usage: obj.calc_updown(orig_weight) and returns: self