code: def __init__(
      self,
      channels,
      layer_norm_eps,
      ln_elementwise_affine,
      use_bias,
      hidden_dropout,
      hidden_size,
      res_ffn_factor=4,
  ):
      super().__init__()
      self.depthwise = nn.Conv2d(
          channels,
          channels,
          kernel_size=3,
          padding=1,
          groups=channels,
          bias=use_bias,
      )
      self.norm = RMSNorm(
          channels, layer_norm_eps, ln_elementwise_affine
      )
      self.channelwise_linear_1 = nn.Linear(
          channels, int(channels * res_ffn_factor), bias=use_bias
      )
      self.channelwise_act = nn.GELU()
      self.channelwise_norm = GlobalResponseNorm(
          int(channels * res_ffn_factor)
      )
      self.channelwise_linear_2 = nn.Linear(
          int(channels * res_ffn_factor), channels, bias=use_bias
      )
      self.channelwise_dropout = nn.Dropout(hidden_dropout)
      self.cond_embeds_mapper = nn.Linear(
          hidden_size, channels * 2, use_bias
      )
  
imports: from typing import Dict, Union
  import torch
  import torch.nn.functional
  from torch import nn
  from torch.utils.checkpoint import checkpoint
  from ..configuration_utils import ConfigMixin, register_to_config
  from ..loaders import PeftAdapterMixin
  from .attention import BasicTransformerBlock, SkipFFTransformerBlock
  from .attention_processor import ADDED_KV_ATTENTION_PROCESSORS, CROSS_ATTENTION_PROCESSORS, AttentionProcessor, AttnAddedKVProcessor, AttnProcessor
  from .embeddings import TimestepEmbedding, get_timestep_embedding
  from .modeling_utils import ModelMixin
  from .normalization import GlobalResponseNorm, RMSNorm
  from .resnet import Downsample2D, Upsample2D
label_desc: Use image node_id 1 to create a new ConvNextBlock object from inherited base classes: nn with example: obj = ConvNextBlock(channels, layer_norm_eps, ln_elementwise_affine, use_bias, hidden_dropout, hidden_size, res_ffn_factor)