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

класс 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) — Выходное измерение эмбеддингов «ofs», используемых в CogVideoX-5b-I2B версии 1.5
  • text_embed_dim (int, по умолчанию 4096) — Входное измерение текстовых эмбеддингов от текстового энкодера.
  • num_layers (int, по умолчанию 30) — Количество блоков Transformer, используемых в модели.
  • dropout (float, по умолчанию 0.0) — Вероятность применения dropout.
  • attention_bias (bool, по умолчанию True) — Использовать ли смещение (bias) в слоях проекции внимания.
  • sample_width (int, по умолчанию 90) — Ширина входных латентов.
  • sample_height (int, по умолчанию 60) — Высота входных латентов.
  • sample_frames (int, по умолчанию 49) — Количество кадров во входных латентах. Обратите внимание, что этот параметр был неверно инициализирован значением 49 вместо 13, поскольку CogVideoX обрабатывал 13 латентных кадров за один проход в своих настройках по умолчанию и рекомендуемых настройках, однако его нельзя изменить на правильное значение, чтобы обеспечить обратную совместимость. Чтобы создать трансформер с K латентными кадрами, правильным значением для передачи здесь будет: ((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) — Использовать ли elementwise affine в слоях нормализации.
  • norm_eps (float, по умолчанию 1e-5) — Значение эпсилона, используемое в слоях нормализации.
  • spatial_interpolation_scale (float, по умолчанию 1.875) — Коэффициент масштабирования, применяемый к 3D-позиционным эмбеддингам по пространственным измерениям.
  • temporal_interpolation_scale (float, по умолчанию 1.0) — Коэффициент масштабирования, применяемый к 3D-позиционным эмбеддингам вдоль временных измерений.

Модель Transformer для видеоподобных данных в 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 )

Параметры

  • 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 из torch.Tensor, необязательный) — Предварительно вычисленные ротационные позиционные эмбеддинги.
  • attention_kwargs (dict, необязательный) — Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать ~models.transformer_2d.Transformer2DModelOutput вместо обычного кортежа.

Метод forward модели CogVideoXTransformer3DModel.

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) или (batch size, num_vector_embeds - 1, num_latent_pixels), если Transformer2DModel дискретный) — Выходные скрытые состояния, обусловленные входом encoder_hidden_states. Если модель дискретная, возвращает распределения вероятностей для латентных пикселей без шума.

Вывод Transformer2DModel.

Update on GitHub