Diffusers documentation

MochiTransformer3DModel

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

MochiTransformer3DModel

Genmo による Mochi-1 Preview で、3D ビデオ類似データ向けの Diffusion Transformer モデルが紹介されました。

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

from diffusers import MochiTransformer3DModel

transformer = MochiTransformer3DModel.from_pretrained("genmo/mochi-1-preview", subfolder="transformer", dtype=torch.float16).to("cuda")  # or "mps", "xpu", "cpu"

MochiTransformer3DModel

class diffusers.MochiTransformer3DModel

< >

( patch_size: int = 2num_attention_heads: int = 24attention_head_dim: int = 128num_layers: int = 48pooled_projection_dim: int = 1536in_channels: int = 12out_channels: int | None = Noneqk_norm: str = 'rms_norm'text_embed_dim: int = 4096time_embed_dim: int = 256activation_fn: str = 'swiglu'max_sequence_length: int = 256 )

パラメータ

  • patch_size (int, デフォルトは 2) — パッチ埋め込み層で使用するパッチのサイズです。
  • num_attention_heads (int、デフォルトは 24) — マルチヘッドアテンションで使用するヘッドの数です。
  • attention_head_dim (int、デフォルトは128) — 各ヘッドのチャネル数です。
  • num_layers (int、デフォルトは 48) — 使用する Transformer ブロックの層数です。
  • in_channels (int、デフォルトは 12) — 入力データのチャネル数です。
  • out_channels (int、任意、デフォルトはNone) — 出力のチャネル数。
  • qk_norm (str、デフォルトは "rms_norm") — 使用する正規化レイヤーです。
  • text_embed_dim (int、デフォルトは 4096) — テキストエンコーダーからのテキスト埋め込みの入力次元数。
  • time_embed_dim (int、デフォルトは 256) — タイムステップ埋め込みの出力次元数。
  • activation_fn (str、デフォルトは "swiglu") — フィードフォワード層で使用する活性化関数。
  • max_sequence_length (int、デフォルトは256) — サポートされるテキスト埋め込みの最大シーケンス長です。

Mochiで紹介された、動画のようなデータ向けの Transformer モデル。

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: LongTensorencoder_attention_mask: Tensorattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True ) → torch.Tensor

パラメータ

  • hidden_states (torch.Tensor、形状 (batch_size, num_channels, num_frames, height, width)) — 入力となる hidden_states。
  • encoder_hidden_states (torch.Tensor、形状 (batch_size, sequence_len, embed_dims)) — 使用する条件埋め込み(プロンプトなどの入力条件から計算される埋め込み)。
  • timestep (torch.LongTensor) — デノイジングステップを示すために使用されます。
  • encoder_attention_mask (torch.Tensor) — アテンション時にencoder_hidden_statesに適用されるマスク。
  • attention_kwargs (dict, 省略可) — 指定された場合、diffusers.models.attention_processor で定義されている self.processor 内の AttentionProcessor に渡される kwargs 辞書です。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく ~models.transformer_2d.Transformer2DModelOutput を返すかどうか。

戻り値

torch.Tensor

形状が(batch_size, out_channels, num_frames, height, width)のノイズ除去済み出力テンソル。

MochiTransformer3DModelのforwardメソッドです。

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