Diffusers documentation

MotifVideoTransformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

MotifVideoTransformer3DModel

Motif Technologies Team による Motif-Video で、3D ビデオ類似データ向けの Diffusion Transformer モデルが紹介されました。

このモデルは、動画生成のために、12層のデュアルストリーム + 16層のシングルストリーム + 8層のDDTデコーダー層からなる3段階アーキテクチャと、回転位置埋め込み(RoPE)を使用しています。

モデルは、以下のコードスニペットで読み込むことができます。

from diffusers import MotifVideoTransformer3DModel

transformer = MotifVideoTransformer3DModel.from_pretrained("Motif-Technologies/Motif-Video-2B", subfolder="transformer", dtype=torch.bfloat16)

MotifVideoTransformer3DModel

クラス diffusers.MotifVideoTransformer3DModel

< >

( in_channels: int = 33out_channels: int = 16num_attention_heads: int = 24attention_head_dim: int = 128num_layers: int = 20num_single_layers: int = 40num_decoder_layers: int = 0mlp_ratio: float = 4.0patch_size: int = 2patch_size_t: int = 1qk_norm: str = 'rms_norm'norm_type: str = 'layer_norm'text_embed_dim: int = 4096image_embed_dim: int | None = Nonerope_theta: float = 256.0rope_axes_dim: typing.Tuple[int, ...] = (16, 56, 56)enable_text_cross_attention_dual: bool = Falseenable_text_cross_attention_single: bool = False )

パラメータ

  • in_channels (int, デフォルトは 33) — 入力におけるチャネル数です。
  • out_channels (int、デフォルトは16) — 出力のチャネル数です。
  • num_attention_heads (int、デフォルトは 24) — マルチヘッドアテンションで使用するヘッドの数です。
  • attention_head_dim (int、デフォルトは128) — 各ヘッドのチャネル数です。
  • num_layers (int、デフォルトは20) — 使用するdual-streamブロックの層数です。
  • num_single_layers (int, デフォルトは 40) — 使用する単一ストリームブロックの層数です。
  • num_decoder_layers (int、デフォルトは0) — 単一ストリームブロックにおけるデコーダー層の数。
  • mlp_ratio (float、デフォルト値は4.0) — フィードフォワードネットワークにおける隠れ層サイズと入力サイズの比率です。
  • patch_size (int、デフォルトは2) — パッチ埋め込み層で使用する空間パッチのサイズです。
  • patch_size_t (int、デフォルトは1) — パッチ埋め込み層で使用する時間方向のパッチのサイズです。
  • qk_norm (str、デフォルトは rms_norm) — アテンション層におけるクエリとキーの射影に使用する正規化手法です。
  • text_embed_dim (int、デフォルトは 4096) — テキストエンコーダーからのテキスト埋め込みの入力次元数。
  • image_embed_dim (int, 任意) — ビジョンエンコーダーからの画像埋め込みの入力次元です。指定すると、画像条件付けが有効になります。
  • rope_theta (float、デフォルト値は 256.0) — RoPE レイヤーで使用する theta の値です。
  • rope_axes_dim (Tuple[int]、デフォルトは (16, 56, 56)) — RoPE レイヤーで使用する軸の次元です。

Motif-Videoモデルで使用される、動画のようなデータ向けのTransformerモデル。

forward

< >

( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorencoder_attention_mask: typing.Optional[torch.Tensor] = Noneimage_embeds: typing.Optional[torch.Tensor] = Noneattention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonereturn_dict: bool = True ) → Transformer2DModelOutput or tuple

パラメータ

  • hidden_states (torch.Tensor) — (batch_size, channels, num_frames, height, width) の形状を持つ入力潜在テンソル。
  • timestep (torch.LongTensor) — (batch_size,) の形状を持つ Diffusion のタイムステップ。
  • encoder_hidden_states (torch.Tensor) — (batch_size, sequence_length, embed_dim) の形状を持つテキストの条件付け。
  • encoder_attention_mask (torch.Tensor) — (batch_size, sequence_length) の形状を持つ、テキスト条件付け用のマスク。
  • image_embeds (torch.Tensor, 任意) — 形状が (batch_size, num_tokens, embed_dim) の、ビジョンエンコーダーからの画像埋め込み。
  • attention_kwargs (dict、任意) — attention プロセッサに渡す追加の引数。
  • return_dict (bool、デフォルトは True) — True の場合、Transformer2DModelOutput を返します。

戻り値

Transformer2DModelOutput または tuple

予測されたサンプル。

MotifVideoTransformer3DModelのフォワードパス。

Transformer2DModelOutput

クラス diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

パラメータ

  • sample (torch.Tensor、形状 (batch_size, num_channels, height, width)、または Transformer2DModel が離散型の場合 (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states 入力を条件とする隠れ状態の出力です。離散型の場合、ノイズ除去されていない潜在ピクセルの確率分布を返します。

Transformer2DModelの出力です。

Update on GitHub