Diffusers documentation

CogVideoXTransformer3DModel

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

CogVideoXTransformer3DModel

A Diffusion Transformer model for 3D data from CogVideoX was introduced in CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer by Tsinghua University & ZhipuAI.

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

from diffusers import CogVideoXTransformer3DModel

transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX-2b", subfolder="transformer", dtype=torch.float16).to("cuda")  # or "mps", "xpu", "cpu"

CogVideoXTransformer3DModel

class diffusers.CogVideoXTransformer3DModel

< >

( num_attention_heads: int = 30attention_head_dim: int = 64in_channels: int = 16out_channels: int | None = 16flip_sin_to_cos: bool = Truefreq_shift: int = 0time_embed_dim: int = 512ofs_embed_dim: int | None = Nonetext_embed_dim: int = 4096num_layers: int = 30dropout: float = 0.0attention_bias: bool = Truesample_width: int = 90sample_height: int = 60sample_frames: int = 49patch_size: int = 2patch_size_t: int | None = Nonetemporal_compression_ratio: int = 4max_text_seq_length: int = 226activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05spatial_interpolation_scale: float = 1.875temporal_interpolation_scale: float = 1.0use_rotary_positional_embeddings: bool = Falseuse_learned_positional_embeddings: bool = Falsepatch_bias: bool = True )

パラメータ

  • num_attention_heads (int、デフォルトは 30) — マルチヘッドアテンションに使用するヘッドの数。
  • attention_head_dim (int, デフォルトは 64) — 各ヘッドのチャネル数です。
  • in_channels (int, デフォルトは 16) — 入力におけるチャネル数。
  • out_channels (int、任意、デフォルトは 16) — 出力のチャネル数です。
  • flip_sin_to_cos (bool、デフォルトはTrue) — 時間埋め込みにおいて sin を cos に反転させるかどうか。
  • time_embed_dim (int、デフォルトは 512) — タイムステップ埋め込みの出力次元数。
  • ofs_embed_dim (int、デフォルトは 512) — バージョン 1.5 の CogVideoX-5b-I2B で使用される “ofs” 埋め込みの出力次元
  • text_embed_dim (int、デフォルトは 4096) — テキストエンコーダーからのテキスト埋め込みの入力次元数。
  • num_layers (int、デフォルトは 30) — 使用する Transformer ブロックの層数です。
  • dropout (float, デフォルトは 0.0) — 使用する dropout の確率。
  • attention_bias (bool、デフォルトはTrue) — アテンションの投影層でバイアスを使用するかどうか。
  • sample_width (int、デフォルトは90) — 入力潜変数の幅です。
  • sample_height (int、デフォルトは60) — 入力潜変数の高さです。
  • sample_frames (int、デフォルト値は 49) — 入力潜在変数のフレーム数です。なお、CogVideoX はデフォルトおよび推奨設定において 13 フレームの潜在変数を一度に処理するため、本来は 13 であるべきところ、誤って 49 に初期化されていました。後方互換性を確保するため、正しい値に変更することはできません。K フレームの潜在変数を持つ transformer を作成する場合、ここで渡すべき正しい値は ((K - 1) * temporal_compression_ratio + 1) です。
  • patch_size (int, デフォルトは 2) — パッチ埋め込み層で使用するパッチのサイズです。
  • temporal_compression_ratio (int、デフォルトは4) — 時間軸方向の圧縮比です。sample_framesのドキュメントを参照してください。
  • max_text_seq_length (int、デフォルトは226) — 入力テキスト埋め込みの最大シーケンス長です。
  • activation_fn (str、デフォルトは"gelu-approximate") — フィードフォワード層で使用する活性化関数。
  • timestep_activation_fn (str、デフォルトは "silu") — タイムステップ埋め込みを生成する際に使用する活性化関数。
  • norm_elementwise_affine (bool、デフォルトはTrue) — 正規化レイヤーで要素ごとのアフィン変換を使用するかどうか。
  • norm_eps (float、デフォルトは 1e-5) — 正規化層で使用する epsilon 値。
  • spatial_interpolation_scale (float、デフォルト値は1.875) — 空間次元全体にわたる3次元位置埋め込みに適用するスケーリング係数。
  • temporal_interpolation_scale (float、デフォルト値は1.0) — 時間軸の次元全体にわたる3次元位置埋め込みに適用するスケーリング係数。

CogVideoXにおける動画類似データ向けのTransformerモデル。

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: typing.Union[int, float, torch.LongTensor]timestep_cond: typing.Optional[torch.Tensor] = Noneofs: typing.Union[int, float, torch.LongTensor, NoneType] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )

パラメータ

  • hidden_states (torch.Tensor、形状 (batch_size, num_frames, channels, height, width)) — 入力となる hidden_states。
  • encoder_hidden_states (torch.Tensor、形状 (batch_size, sequence_len, embed_dims)) — 使用する条件埋め込み(プロンプトなどの入力条件から計算される埋め込み)。
  • timestep (torch.LongTensor) — デノイジングステップを示すために使用されます。
  • timestep_cond (torch.Tensor, 任意) — タイムステップ用の条件埋め込みです。指定された場合、これらの埋め込みは、self.time_embedding レイヤーを通過したサンプルと加算され、最終的なタイムステップ埋め込みが得られます。
  • ofs (torch.Tensor、任意) — CogVideoX-5b-I2V で使用されるオフセット埋め込み。
  • image_rotary_emb (tuple of torch.Tensor, 任意) — 事前計算されたロータリー位置埋め込み。
  • attention_kwargs (dict, 省略可) — 指定された場合、diffusers.models.attention_processor で定義されている self.processor 内の AttentionProcessor に渡される kwargs 辞書です。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく ~models.transformer_2d.Transformer2DModelOutput を返すかどうか。

CogVideoXTransformer3DModelのforwardメソッドです。

fuse_qkv_projections

< >

( )

融合された QKV 投影を有効にします。自己注意モジュールでは、すべての投影行列(つまり、クエリ、キー、バリュー)が融合されます。相互注意モジュールでは、キーとバリューの投影行列が融合されます。

> このAPIは🧪実験的です。

unfuse_qkv_projections

< >

( )

有効化されている場合、融合された QKV 投影を無効にします。

> このAPIは🧪実験的です。

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