code: def __init__(
      self,
      image_embed_dim=1024,
      cross_attention_dim=1024,
      mult=1,
      num_tokens=1,
  ):
      super().__init__()
      from diffusers.models.attention import FeedForward
  
      self.num_tokens = num_tokens
      self.cross_attention_dim = cross_attention_dim
      self.ff = FeedForward(
          image_embed_dim,
          cross_attention_dim * num_tokens,
          mult=mult,
          activation_fn="gelu",
      )
      self.norm = nn.LayerNorm(cross_attention_dim)
  
imports: import inspect
  from typing import Any, Callable, Dict, List, Optional, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from packaging import version
  from safetensors import safe_open
  from transformers import CLIPImageProcessor, CLIPTextModel, CLIPTokenizer, CLIPVisionModelWithProjection
  from diffusers.configuration_utils import FrozenDict
  from diffusers.image_processor import VaeImageProcessor
  from diffusers.loaders import FromSingleFileMixin, IPAdapterMixin, LoraLoaderMixin, TextualInversionLoaderMixin
  from diffusers.models import AutoencoderKL, UNet2DConditionModel
  from diffusers.models.attention_processor import FusedAttnProcessor2_0
  from diffusers.models.lora import LoRALinearLayer, adjust_lora_scale_text_encoder
  from diffusers.pipelines.pipeline_utils import DiffusionPipeline
  from diffusers.pipelines.stable_diffusion.pipeline_output import StableDiffusionPipelineOutput
  from diffusers.pipelines.stable_diffusion.safety_checker import StableDiffusionSafetyChecker
  from diffusers.schedulers import KarrasDiffusionSchedulers
  from diffusers.utils import USE_PEFT_BACKEND, _get_model_file, deprecate, logging, scale_lora_layers, unscale_lora_layers
  from diffusers.utils.torch_utils import randn_tensor
label_desc: Use image node_id 1 to create a new IPAdapterFullImageProjection object from inherited base classes: nn with example: obj = IPAdapterFullImageProjection(image_embed_dim, cross_attention_dim, mult, num_tokens)