    def __init__(
        self,
        # conditioning_embedding_channels: int,
        # conditioning_channels: int = 3,
        # block_out_channels: Tuple[int] = (16, 32, 96, 256),
    ):
        super().__init__()
        """
        Note: This is different to diffusers ControlNetConditioningEmbedding
        Required Conv2dBiasFewChannels for the first layer, then Conv2dBias for the rest
        Could be changed back to a loop and use parameters though,
        but it ended up like this when debugging.
        """
        self.conv_in = nn.Conv2dBiasFewChannels(3, 16, 3, 1, 1)

        self.blocks = nn.ModuleList([])
        self.blocks.append(nn.Conv2dBias(16, 16, 3, 1, 1))
        self.blocks.append(nn.Conv2dBias(16, 32, 3, 2, 1))
        self.blocks.append(nn.Conv2dBias(32, 32, 3, 1, 1))
        self.blocks.append(nn.Conv2dBias(32, 96, 3, 2, 1))
        self.blocks.append(nn.Conv2dBias(96, 96, 3, 1, 1))
        self.blocks.append(nn.Conv2dBias(96, 256, 3, 2, 1))

        self.conv_out = nn.Conv2dBias(256, 320, 3, 1, 1)
Note: This is different to diffusers ControlNetConditioningEmbedding
Required Conv2dBiasFewChannels for the first layer, then Conv2dBias for the rest
Could be changed back to a loop and use parameters though,
but it ended up like this when debugging.
examples/05_stable_diffusion/src/modeling/controlnet_unet_2d_condition.py