code: def __init__(
      self,
      in_: int,
      out_: int,
      size: int = 5,
      is_first: bool = False,
      setup: Any = None,
  ) -> None:
      self.in_ = in_
      self.out_ = out_
  
      downsample: Module
      if is_first:
          downsample = nn.Sequential()
          conv = Conv(in_, out_, size, skip_norm_and_gate=True)
      else:
          downsample = TrivialDownsample()
          conv = Conv(in_, out_, size)
  
      super().__init__(downsample, conv)
  
imports: from __future__ import annotations
  from typing import Any
  import torch
  import torch.nn.functional
  from torch import nn
  from kornia.core import Module, Tensor
label_desc: Use image node_id 1 to create a new ThinUnetDownBlock object from inherited base classes: nn with example: obj = ThinUnetDownBlock(in_, out_, size, is_first, setup)