code: def __init__(
      self,
      clip_version="openai/clip-vit-large-patch14",
      t5_version="google/t5-v1_1-xl",
      device="cuda",
      clip_max_length=77,
      t5_max_length=77,
  ):
      super().__init__()
      self.clip_encoder = FrozenCLIPEmbedder(
          clip_version, device, max_length=clip_max_length
      )
      self.t5_encoder = FrozenT5Embedder(
          t5_version, device, max_length=t5_max_length
      )
      print(
          f"{self.clip_encoder.__class__.__name__} has {count_params(self.clip_encoder) * 1.e-6:.2f} M parameters, "
          f"{self.t5_encoder.__class__.__name__} comes with {count_params(self.t5_encoder) * 1.e-6:.2f} M params."
      )
  
imports: import torch
  import torch.nn
  import kornia
  from torch.utils.checkpoint import checkpoint
  from transformers import T5Tokenizer, T5EncoderModel, CLIPTokenizer, CLIPTextModel
  import open_clip
  from ldm.util import default, count_params, autocast
  from ldm.modules.diffusionmodules.upscaling import ImageConcatWithNoiseAugmentation
  from ldm.modules.diffusionmodules.openaimodel import Timestep
label_desc: Use image node_id 1 to create a new FrozenCLIPT5Encoder object from inherited base classes: AbstractEncoder with example: obj = FrozenCLIPT5Encoder(clip_version, t5_version, device, clip_max_length, t5_max_length)