vllm_omni.diffusion.models.anima.anima_transformer ¶
ANIMA_TRANSFORMER_CONFIG module-attribute ¶
ANIMA_TRANSFORMER_CONFIG = {
"in_channels": 16,
"out_channels": 16,
"num_attention_heads": 16,
"attention_head_dim": 128,
"num_layers": 28,
"mlp_ratio": 4.0,
"text_embed_dim": 1024,
"adaln_lora_dim": 256,
"max_size": (128, 240, 240),
"patch_size": (1, 2, 2),
"rope_scale": (1.0, 4.0, 4.0),
"concat_padding_mask": True,
"extra_pos_embed_type": None,
}
AnimaTransformer3DModel ¶
Bases: Module
config instance-attribute ¶
config = SimpleNamespace(
in_channels=in_channels,
out_channels=out_channels,
num_attention_heads=num_attention_heads,
attention_head_dim=attention_head_dim,
num_layers=num_layers,
mlp_ratio=mlp_ratio,
text_embed_dim=text_embed_dim,
adaln_lora_dim=adaln_lora_dim,
max_size=max_size,
patch_size=patch_size,
rope_scale=rope_scale,
concat_padding_mask=concat_padding_mask,
extra_pos_embed_type=extra_pos_embed_type,
use_crossattn_projection=use_crossattn_projection,
crossattn_proj_in_channels=crossattn_proj_in_channels,
encoder_hidden_states_channels=encoder_hidden_states_channels,
controlnet_block_every_n=controlnet_block_every_n,
img_context_dim_in=img_context_dim_in,
img_context_num_tokens=img_context_num_tokens,
img_context_dim_out=img_context_dim_out,
extra_config=kwargs,
)
learnable_pos_embed instance-attribute ¶
learnable_pos_embed: (
CosmosLearnablePositionalEmbed | None
) = None
patch_embed instance-attribute ¶
patch_embed = CosmosPatchEmbed(
patch_embed_in_channels,
hidden_size,
patch_size,
bias=False,
)
proj_out instance-attribute ¶
proj_out = nn.Linear(
hidden_size,
patch_size[0]
* patch_size[1]
* patch_size[2]
* out_channels,
bias=False,
)
rope instance-attribute ¶
rope = CosmosRotaryPosEmbed(
hidden_size=attention_head_dim,
max_size=max_size,
patch_size=patch_size,
rope_scale=rope_scale,
)
transformer_blocks instance-attribute ¶
transformer_blocks = nn.ModuleList(
[
CosmosTransformerBlock(
num_attention_heads=num_attention_heads,
attention_head_dim=attention_head_dim,
cross_attention_dim=text_embed_dim,
mlp_ratio=mlp_ratio,
adaln_lora_dim=adaln_lora_dim,
out_bias=False,
img_context=img_context_dim_in is not None
and img_context_dim_in > 0,
prefix=f"transformer_blocks.{i}",
)
for i in range(num_layers)
]
)
forward ¶
forward(
hidden_states: Tensor,
timestep: Tensor,
encoder_hidden_states: Tensor
| tuple[Tensor, Tensor | None],
block_controlnet_hidden_states: list[Tensor]
| None = None,
attention_mask: Tensor
| tuple[Tensor | None, Tensor | None]
| None = None,
fps: float | None = None,
condition_mask: Tensor | None = None,
padding_mask: Tensor | None = None,
return_dict: bool = True,
) -> Transformer2DModelOutput | tuple[Tensor]
CosmosAdaLayerNormZero ¶
CosmosAttention ¶
Bases: Module
attn instance-attribute ¶
attn = Attention(
num_heads=heads,
head_size=dim_head,
softmax_scale=1.0 / dim_head**0.5,
causal=False,
num_kv_heads=heads,
prefix=prefix,
)
img_attn instance-attribute ¶
img_attn = Attention(
num_heads=heads,
head_size=dim_head,
softmax_scale=1.0 / dim_head**0.5,
causal=False,
num_kv_heads=heads,
prefix=f"{prefix}.img_attn" if prefix else "img_attn",
)
to_out instance-attribute ¶
CosmosEmbedding ¶
Bases: Module
t_embedder instance-attribute ¶
t_embedder = CosmosTimestepEmbedding(
embedding_dim, condition_dim
)
time_proj instance-attribute ¶
CosmosFeedForward ¶
Bases: Module
net instance-attribute ¶
net = nn.ModuleList(
[
CosmosGELU(dim, inner_dim, bias=bias),
nn.Identity(),
nn.Linear(inner_dim, dim, bias=bias),
]
)
CosmosGELU ¶
CosmosLearnablePositionalEmbed ¶
CosmosPatchEmbed ¶
CosmosTimestepEmbedding ¶
Bases: Module
CosmosTransformerBlock ¶
Bases: Module
after_proj instance-attribute ¶
attn1 instance-attribute ¶
attn1 = CosmosAttention(
query_dim=hidden_size,
cross_attention_dim=None,
heads=num_attention_heads,
dim_head=attention_head_dim,
out_bias=out_bias,
prefix=f"{prefix}.attn1" if prefix else "attn1",
)
attn2 instance-attribute ¶
attn2 = CosmosAttention(
query_dim=hidden_size,
cross_attention_dim=cross_attention_dim,
heads=num_attention_heads,
dim_head=attention_head_dim,
out_bias=out_bias,
img_context=img_context,
prefix=f"{prefix}.attn2" if prefix else "attn2",
)
before_proj instance-attribute ¶
norm1 instance-attribute ¶
norm1 = CosmosAdaLayerNormZero(
in_features=hidden_size, hidden_features=adaln_lora_dim
)
norm2 instance-attribute ¶
norm2 = CosmosAdaLayerNormZero(
in_features=hidden_size, hidden_features=adaln_lora_dim
)
norm3 instance-attribute ¶
norm3 = CosmosAdaLayerNormZero(
in_features=hidden_size, hidden_features=adaln_lora_dim
)
forward ¶
forward(
hidden_states: Tensor,
encoder_hidden_states: Tensor
| tuple[Tensor, Tensor | None],
embedded_timestep: Tensor,
temb: Tensor | None = None,
image_rotary_emb: tuple[Tensor, Tensor] | None = None,
extra_pos_emb: Tensor | None = None,
attention_mask: Tensor
| tuple[Tensor | None, Tensor | None]
| None = None,
controlnet_residual: Tensor | None = None,
latents: Tensor | None = None,
block_idx: int | None = None,
) -> Tensor | tuple[Tensor, Tensor]