Diffusers documentation

HeliosTransformer3DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

HeliosTransformer3DModel

由北京大学、字节跳动等机构在 Helios: Real Real-Time Long Video Generation Model 中介绍了 Helios 的 14B 实时自回归扩散 Transformer 模型(支持 T2V、I2V 和 V2V),用于处理 3D 类视频数据。

可以使用以下代码片段加载该模型。

from diffusers import HeliosTransformer3DModel

# Best Quality
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Base", subfolder="transformer", dtype=torch.bfloat16)
# Intermediate Weight
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Mid", subfolder="transformer", dtype=torch.bfloat16)
# Best Efficiency
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Distilled", subfolder="transformer", dtype=torch.bfloat16)

HeliosTransformer3DModel

class diffusers.HeliosTransformer3DModel

< >

( patch_size: tuple = (1, 2, 2)num_attention_heads: int = 40attention_head_dim: int = 128in_channels: int = 16out_channels: int = 16text_dim: int = 4096freq_dim: int = 256ffn_dim: int = 13824num_layers: int = 40cross_attn_norm: bool = Trueqk_norm: str | None = 'rms_norm_across_heads'eps: float = 1e-06added_kv_proj_dim: int | None = Nonerope_dim: tuple = (44, 42, 42)rope_theta: float = 10000.0guidance_cross_attn: bool = Truezero_history_timestep: bool = Truehas_multi_term_memory_patch: bool = Trueis_amplify_history: bool = Falsehistory_scale_mode: str = 'per_head' )

参数

  • patch_size (tuple[int],默认为 (1, 2, 2)) — 用于视频嵌入的 3D patch 维度 (t_patch, h_patch, w_patch)。
  • num_attention_heads (int,默认为 40) — 文本嵌入的固定长度。
  • attention_head_dim (int,默认为 128) — 每个头中的通道数。
  • in_channels (int,默认为 16) — 输入数据的通道数。
  • out_channels (int,默认为 16) — 输出中的通道数。
  • text_dim (int,默认为 512) — 文本嵌入的输入维度。
  • freq_dim (int,默认为 256) — 正弦时间嵌入的维度。
  • ffn_dim (int,默认为 13824) — 前馈网络中的中间维度。
  • num_layers (int,默认为 40) — 要使用的 transformer 块层数。
  • window_size (tuple[int],默认为 (-1, -1)) — 局部注意力的窗口大小(-1 表示全局注意力)。
  • cross_attn_norm(bool,默认为 True)— 启用交叉注意力归一化。
  • qk_norm (bool,默认为 True) — 启用查询/键归一化。
  • eps (float,默认为 1e-6) — 归一化层的 epsilon 值。
  • add_img_emb (bool,默认为 False) — 是否使用 img_emb。
  • added_kv_proj_dim (int,可选,默认为 None) — 用于附加的 key 和 value 投影的通道数。如果为 None,则不使用投影。

用于 Helios 模型中类视频数据的 Transformer 模型。

forward

< >

( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorindices_hidden_states = Noneindices_latents_history_short = Noneindices_latents_history_mid = Noneindices_latents_history_long = Nonelatents_history_short = Nonelatents_history_mid = Nonelatents_history_long = Nonereturn_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = None )

参数

  • hidden_states(形状为 (batch_size, num_channels, num_frames, height, width) 的 torch.Tensor)— 输入的 hidden_states。
  • timestep (torch.LongTensor) — 用于指示去噪步骤。
  • encoder_hidden_states (torch.Tensor,形状为 (batch_size, sequence_len, embed_dims)) — 要使用的条件嵌入(从输入条件(例如提示词)计算得出的嵌入)。
  • indices_hidden_states (torch.Tensor, 可选) — 用于计算旋转位置嵌入的 hidden_states 的帧索引。
  • indices_latents_history_short (torch.Tensor, 可选) — 短历史潜变量的帧索引。
  • indices_latents_history_mid (torch.Tensor, 可选) — 中间历史潜变量的帧索引。
  • indices_latents_history_long (torch.Tensor, 可选) — 长历史潜变量的帧索引。
  • latents_history_short (torch.Tensor, 可选) — 短历史潜变量条件。
  • latents_history_mid (torch.Tensor, 可选) — 中间历史潜变量条件。
  • latents_history_long (torch.Tensor, 可选) — 长历史潜变量条件。
  • return_dict (bool,可选,默认为 True) — 是否返回 ~models.transformer_2d.Transformer2DModelOutput 而不是普通的元组。
  • attention_kwargs (dict, 可选) — 一个 kwargs 字典,如果指定,将传递给 diffusers.models.attention_processor 中定义的 AttentionProcessor,该处理器在 self.processor 下定义。

HeliosTransformer3DModel 的前向方法。

Transformer2DModelOutput

类 diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

参数

  • sample(形状为 (batch_size, num_channels, height, width) 的 torch.Tensor,或者如果 Transformer2DModel 是离散的,则为 (batch size, num_vector_embeds - 1, num_latent_pixels))— 以 encoder_hidden_states 输入为条件的隐藏状态输出。如果是离散的,则返回未加噪潜在像素的概率分布。

Transformer2DModel 的输出。

Update on GitHub