gamecraftvae_blocks ¶
GameCraft VAE building blocks - ported from official Hunyuan-GameCraft-1.0/hymm_sp/vae/unet_causal_3d_blocks.py.
Matches the official structure exactly for weight loading.
Classes¶
fastvideo.models.vaes.gamecraftvae_blocks.CausalConv3d ¶
CausalConv3d(chan_in: int, chan_out: int, kernel_size: Union[int, Tuple[int, int, int]] = 3, stride: Union[int, Tuple[int, int, int]] = 1, dilation: Union[int, Tuple[int, int, int]] = 1, pad_mode: str = 'replicate', disable_causal: bool = False, **kwargs)
Bases: Module
Causal 3D convolution - matches official structure (has .conv).
Source code in fastvideo/models/vaes/gamecraftvae_blocks.py
fastvideo.models.vaes.gamecraftvae_blocks.DownEncoderBlockCausal3D ¶
DownEncoderBlockCausal3D(in_channels: int, out_channels: int, num_layers: int = 2, resnet_eps: float = 1e-06, resnet_act_fn: str = 'swish', resnet_groups: int = 32, add_downsample: bool = True, downsample_stride: Union[int, Tuple[int, int, int]] = 2, downsample_padding: int = 0, disable_causal: bool = False)
Bases: Module
Encoder down block - matches official structure.
Source code in fastvideo/models/vaes/gamecraftvae_blocks.py
fastvideo.models.vaes.gamecraftvae_blocks.DownsampleCausal3D ¶
DownsampleCausal3D(channels: int, out_channels: Optional[int] = None, padding: int = 1, stride: Union[int, Tuple[int, int, int]] = 2, kernel_size: int = 3, bias: bool = True, disable_causal: bool = False)
Bases: Module
Causal 3D downsampling - matches official (has .conv).
Source code in fastvideo/models/vaes/gamecraftvae_blocks.py
fastvideo.models.vaes.gamecraftvae_blocks.GameCraftVAEAttention ¶
GameCraftVAEAttention(in_channels: int, heads: int, dim_head: int, eps: float = 1e-06, norm_num_groups: Optional[int] = 32, bias: bool = True)
Bases: Module
Attention block matching official diffusers Attention structure (group_norm, to_q, to_k, to_v, to_out).
Source code in fastvideo/models/vaes/gamecraftvae_blocks.py
fastvideo.models.vaes.gamecraftvae_blocks.ResnetBlockCausal3D ¶
ResnetBlockCausal3D(in_channels: int, out_channels: Optional[int] = None, temb_channels: Optional[int] = None, eps: float = 1e-06, groups: int = 32, dropout: float = 0.0, non_linearity: str = 'swish', disable_causal: bool = False)
Bases: Module
ResNet block - matches official structure (conv1.conv, conv2.conv, norm1, norm2).
Source code in fastvideo/models/vaes/gamecraftvae_blocks.py
fastvideo.models.vaes.gamecraftvae_blocks.UNetMidBlockCausal3D ¶
UNetMidBlockCausal3D(in_channels: int, temb_channels: Optional[int] = None, num_layers: int = 1, resnet_eps: float = 1e-06, resnet_act_fn: str = 'swish', resnet_groups: int = 32, add_attention: bool = True, attention_head_dim: int = 1, disable_causal: bool = False, causal_attention: bool = False)
Bases: Module
Mid block with resnets and optional attention - matches official structure.
Source code in fastvideo/models/vaes/gamecraftvae_blocks.py
fastvideo.models.vaes.gamecraftvae_blocks.UpDecoderBlockCausal3D ¶
UpDecoderBlockCausal3D(in_channels: int, out_channels: int, num_layers: int = 3, resnet_eps: float = 1e-06, resnet_act_fn: str = 'swish', resnet_groups: int = 32, add_upsample: bool = True, upsample_scale_factor: Tuple[int, int, int] = (2, 2, 2), temb_channels: Optional[int] = None, disable_causal: bool = False)
Bases: Module
Decoder up block - matches official structure.
Source code in fastvideo/models/vaes/gamecraftvae_blocks.py
fastvideo.models.vaes.gamecraftvae_blocks.UpsampleCausal3D ¶
UpsampleCausal3D(channels: int, out_channels: Optional[int] = None, kernel_size: int = 3, upsample_factor: Tuple[int, int, int] = (2, 2, 2), disable_causal: bool = False, bias: bool = True)
Bases: Module
Causal 3D upsampling - matches official (has .conv when use_conv=True).