vllm_omni.diffusion.models.sdxl.sdxl_unet ¶
SDXLBasicTransformerBlock ¶
Bases: Module
attn1 instance-attribute ¶
attn1 = SDXLSelfAttention(
dim=dim,
num_attention_heads=num_attention_heads,
attention_head_dim=attention_head_dim,
prefix=f"{prefix}.attn1",
)
attn2 instance-attribute ¶
attn2 = SDXLCrossAttention(
dim=dim,
cross_attention_dim=cross_attention_dim,
num_attention_heads=num_attention_heads,
attention_head_dim=attention_head_dim,
prefix=f"{prefix}.attn2",
)
forward ¶
SDXLCrossAttention ¶
SDXLCrossAttnDownBlock2D ¶
Bases: Module
SDXLCrossAttnUpBlock2D ¶
Bases: Module
SDXLDownBlock2D ¶
SDXLDownsample2D ¶
SDXLFeedForward ¶
SDXLGEGLU ¶
SDXLSelfAttention ¶
Bases: Module
attention instance-attribute ¶
attention = Attention(
num_heads=num_attention_heads,
head_size=attention_head_dim,
causal=False,
softmax_scale=1.0 / math.sqrt(attention_head_dim),
role="self",
prefix=prefix,
)
to_out instance-attribute ¶
to_qkv instance-attribute ¶
to_qkv = QKVParallelLinear(
hidden_size=dim,
head_size=attention_head_dim,
total_num_heads=num_attention_heads,
bias=False,
)
SDXLTimestepEmbedding ¶
SDXLTransformer2DModel ¶
Bases: Module
transformer_blocks instance-attribute ¶
transformer_blocks = nn.ModuleList(
[
(
SDXLBasicTransformerBlock(
dim=inner_dim,
num_attention_heads=num_attention_heads,
attention_head_dim=attention_head_dim,
cross_attention_dim=cross_attention_dim,
prefix=f"{prefix}.transformer_blocks.{i}",
)
)
for i in (range(num_layers))
]
)
SDXLUNet2DConditionModel ¶
Bases: Module
add_embedding instance-attribute ¶
add_embedding = SDXLAddTimestepEmbedding(
addition_time_embed_dim=addition_time_embed_dim,
text_embed_dim=1280,
time_embed_dim=time_embed_dim,
)
conv_norm_out instance-attribute ¶
conv_out instance-attribute ¶
mid_block instance-attribute ¶
mid_block = SDXLUNetMidBlock2DCrossAttn(
in_channels=block_out_channels[2],
time_embed_dim=time_embed_dim,
num_attention_heads=block_out_channels[2]
// num_head_channels,
cross_attention_dim=cross_attention_dim,
transformer_layers_per_block=transformer_layers_per_block[
2
],
prefix="mid_block",
)
time_embedding instance-attribute ¶
time_embedding = SDXLTimestepEmbedding(
model_channels, time_embed_dim
)
SDXLUNetMidBlock2DCrossAttn ¶
Bases: Module
attentions instance-attribute ¶
attentions = nn.ModuleList(
[
SDXLTransformer2DModel(
num_attention_heads=num_attention_heads,
attention_head_dim=attention_head_dim,
in_channels=in_channels,
num_layers=transformer_layers_per_block,
cross_attention_dim=cross_attention_dim,
prefix=f"{prefix}.attentions.0",
)
]
)
resnets instance-attribute ¶
resnets = nn.ModuleList(
[
SDXLResnetBlock2D(
in_channels, in_channels, time_embed_dim
),
SDXLResnetBlock2D(
in_channels, in_channels, time_embed_dim
),
]
)