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

Một mô hình Diffusion Transformer cho dữ liệu 3D từ CogVideoX đã được giới thiệu trong CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer bởi Đại học Thanh Hoa & ZhipuAI.

Mô hình có thể được tải bằng đoạn mã sau.

from diffusers import CogVideoXTransformer3DModel

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

CogVideoXTransformer3DModel

lớp 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 )

Tham số

  • num_attention_heads (int, mặc định là 30) — Số lượng đầu (heads) được sử dụng cho cơ chế chú ý đa đầu (multi-head attention).
  • attention_head_dim (int, mặc định là 64) — Số lượng kênh trong mỗi head.
  • in_channels (int, mặc định là 16) — Số lượng kênh trong đầu vào.
  • out_channels (int, tùy chọn, mặc định là 16) — Số lượng kênh trong đầu ra.
  • flip_sin_to_cos (bool, mặc định là True) — Có nên đảo sin thành cos trong time embedding hay không.
  • time_embed_dim (int, mặc định là 512) — Kích thước đầu ra của các embedding bước thời gian.
  • ofs_embed_dim (int, mặc định là 512) — Kích thước đầu ra của các embedding “ofs” được sử dụng trong CogVideoX-5b-I2B ở phiên bản 1.5
  • text_embed_dim (int, mặc định là 4096) — Kích thước đầu vào của các vector nhúng văn bản từ bộ mã hóa văn bản.
  • num_layers (int, mặc định là 30) — Số lượng lớp khối Transformer cần sử dụng.
  • dropout (float, mặc định là 0.0) — Xác suất dropout cần sử dụng.
  • attention_bias (bool, mặc định là True) — Có sử dụng bias trong các lớp chiếu attention hay không.
  • sample_width (int, mặc định là 90) — Chiều rộng của các latents đầu vào.
  • sample_height (int, mặc định là 60) — Chiều cao của các latents đầu vào.
  • sample_frames (int, mặc định là 49) — Số lượng khung hình trong các latent đầu vào. Lưu ý rằng tham số này đã được khởi tạo sai thành 49 thay vì 13 vì CogVideoX xử lý 13 khung hình latent cùng lúc trong các cài đặt mặc định và được khuyến nghị, nhưng không thể thay đổi thành giá trị đúng để đảm bảo tính tương thích ngược. Để tạo một transformer với K khung hình latent, giá trị đúng cần truyền ở đây là: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, mặc định là 2) — Kích thước của các patch được sử dụng trong lớp nhúng patch.
  • temporal_compression_ratio (int, mặc định là 4) — Tỷ lệ nén theo chiều thời gian. Xem tài liệu cho sample_frames.
  • max_text_seq_length (int, mặc định là 226) — Chiều dài tối đa của chuỗi cho các nhúng văn bản đầu vào.
  • activation_fn (str, mặc định là "gelu-approximate") — Hàm kích hoạt được sử dụng trong mạng truyền thẳng.
  • timestep_activation_fn (str, mặc định là "silu") — Hàm kích hoạt được sử dụng khi tạo các nhúng bước thời gian (timestep embeddings).
  • norm_elementwise_affine (bool, mặc định là True) — Có sử dụng affine theo từng phần tử trong các lớp chuẩn hóa hay không.
  • norm_eps (float, mặc định là 1e-5) — Giá trị epsilon được sử dụng trong các lớp chuẩn hóa.
  • spatial_interpolation_scale (float, mặc định là 1.875) — Hệ số tỷ lệ áp dụng cho các nhúng vị trí 3D trên các chiều không gian.
  • temporal_interpolation_scale (float, mặc định là 1.0) — Hệ số tỷ lệ áp dụng cho các nhúng vị trí 3D trên các chiều thời gian.

Một mô hình Transformer cho dữ liệu dạng video trong CogVideoX.

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 )

Tham số

  • hidden_states (torch.Tensor có hình dạng (batch_size, num_frames, channels, height, width)) — hidden_states đầu vào.
  • encoder_hidden_states (torch.Tensor có hình dạng (batch_size, sequence_len, embed_dims)) — Các embedding điều kiện (embedding được tính từ các điều kiện đầu vào như prompt) cần sử dụng.
  • timestep (torch.LongTensor) — Dùng để chỉ bước khử nhiễu.
  • timestep_cond (torch.Tensor, optional) — Các embedding điều kiện cho timestep. Nếu được cung cấp, các embedding này sẽ được cộng với các mẫu đã đi qua lớp self.time_embedding để thu được các embedding timestep cuối cùng.
  • ofs (torch.Tensor, tùy chọn) — Các embedding offset được sử dụng trong CogVideoX-5b-I2V.
  • image_rotary_emb (tuple của torch.Tensor, tùy chọn) — Các embedding vị trí xoay đã được tính trước.
  • attention_kwargs (dict, tùy chọn) — Một từ điển kwargs, nếu được chỉ định, sẽ được truyền đến AttentionProcessor như đã định nghĩa dưới self.processor trong diffusers.models.attention_processor.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ~models.transformer_2d.Transformer2DModelOutput thay vì một tuple thông thường hay không.

Phương thức forward của CogVideoXTransformer3DModel.

fuse_qkv_projections

< >

( )

Bật các phép chiếu QKV đã hợp nhất. Đối với các module tự chú ý, tất cả các ma trận chiếu (tức là truy vấn, khóa, giá trị) đều được hợp nhất. Đối với các module chú ý chéo, các ma trận chiếu khóa và giá trị được hợp nhất.

> API này 🧪 mang tính thử nghiệm.

unfuse_qkv_projections

< >

( )

Tắt dự phóng QKV hợp nhất nếu đã được bật.

> API này 🧪 mang tính thử nghiệm.

Transformer2DModelOutput

lớp diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Tham số

  • sample (torch.Tensor có hình dạng (batch_size, num_channels, height, width) hoặc (batch size, num_vector_embeds - 1, num_latent_pixels) nếu Transformer2DModel là rời rạc) — Trạng thái ẩn đầu ra được điều kiện bởi đầu vào encoder_hidden_states. Nếu là rời rạc, trả về các phân phối xác suất cho các pixel tiềm ẩn không nhiễu.

Đầu ra của Transformer2DModel.

Update on GitHub