code: def forward(
      self,
      condition: torch.Tensor,
      lengths: torch.Tensor,
      ws: List[torch.Tensor],
      noise: torch.Tensor,
  ):
      batch_size, _, _, max_length = condition.shape
  
      x = self.initial_block.expand(
          batch_size, -1, -1, max_length // self.upsample_factor
      )
  
      rgb = None
      x = self.initial_conv(x)
  
      for style, block in zip(ws, self.blocks):
          x, rgb = block(x, rgb, style, noise)
  
          x = self.add_scaled_condition(x, condition, lengths)
          rgb = self.add_scaled_condition(rgb, condition, lengths)
  
      return rgb
  
imports: import math
  from functools import partial
  from math import log2
  from typing import List
  import torch
  import torch.nn.functional
  from einops import rearrange
  from kornia.filters import filter2d
  from nemo.collections.tts.parts.utils.helpers import mask_sequence_tensor
label_desc: Use image node_id 4 for calling the Generator obj's underlying member method code with example usage: obj.forward(condition, lengths, ws, noise) and returns: rgb