Diffusers documentation

HunyuanVideoTransformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

HunyuanVideoTransformer3DModel

Tencent による HunyuanVideo: A Systematic Framework For Large Video Generative Models で、3D ビデオ類似データ向けの Diffusion Transformer モデルが紹介されました。

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

from diffusers import HunyuanVideoTransformer3DModel

transformer = HunyuanVideoTransformer3DModel.from_pretrained("hunyuanvideo-community/HunyuanVideo", subfolder="transformer", dtype=torch.bfloat16)

HunyuanVideoTransformer3DModel

class diffusers.HunyuanVideoTransformer3DModel

< >

( in_channels: int = 16out_channels: int = 16num_attention_heads: int = 24attention_head_dim: int = 128num_layers: int = 20num_single_layers: int = 40num_refiner_layers: int = 2mlp_ratio: float = 4.0patch_size: int = 2patch_size_t: int = 1qk_norm: str = 'rms_norm'guidance_embeds: bool = Truetext_embed_dim: int = 4096pooled_projection_dim: int = 768rope_theta: float = 256.0rope_axes_dim: tuple[int, ...] = (16, 56, 56)image_condition_type: str | None = None )

パラメータ

  • in_channels (int, デフォルトは 16) — 入力におけるチャネル数。
  • 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_refiner_layers (int、デフォルトは2) — 使用する refiner ブロックの層数です。
  • mlp_ratio (float、デフォルト値は4.0) — フィードフォワードネットワークにおける隠れ層サイズと入力サイズの比率です。
  • patch_size (int、デフォルトは2) — パッチ埋め込み層で使用する空間パッチのサイズです。
  • patch_size_t (int, デフォルトは 1) — パッチ埋め込み層で使用する時間パッチのサイズです。
  • qk_norm (str、デフォルトは rms_norm) — アテンション層におけるクエリとキーの射影に使用する正規化手法です。
  • guidance_embeds (bool、デフォルトはTrue) — モデルでガイダンス埋め込みを使用するかどうか。
  • text_embed_dim (int、デフォルトは 4096) — テキストエンコーダーからのテキスト埋め込みの入力次元数。
  • pooled_projection_dim (int, デフォルトは 768) — テキスト埋め込みのプーリング投影の次元数です。
  • rope_theta (float、デフォルト値は 256.0) — RoPE レイヤーで使用する theta の値です。
  • rope_axes_dim (tuple[int]、デフォルトは (16, 56, 56)) — RoPE レイヤーで使用する軸の次元です。
  • image_condition_type (str、任意、デフォルトは None) — 使用する画像条件付けの種類です。None の場合は、画像条件付けは使用されません。latent_concat の場合は、画像が潜在ストリームに連結されます。token_replace の場合は、画像を使用して潜在ストリームの先頭フレームのトークンを置き換え、条件付けを適用します。

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

forward

< >

( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorencoder_attention_mask: Tensorpooled_projections: Tensorguidance: Tensor = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )

パラメータ

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

HunyuanVideoTransformer3DModel の 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