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

Un modelo Diffusion Transformer para datos 3D de CogVideoX fue introducido en CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer por Tsinghua University & ZhipuAI.

El modelo se puede cargar con el siguiente fragmento de código.

from diffusers import CogVideoXTransformer3DModel

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

CogVideoXTransformer3DModel

clase 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 )

Parámetros

  • num_attention_heads (int, por defecto 30) — El número de cabezas a utilizar para la atención multi-cabeza.
  • attention_head_dim (int, por defecto 64) — El número de canales en cada cabeza.
  • in_channels (int, por defecto 16) — El número de canales en la entrada.
  • out_channels (int, opcional, valor predeterminado 16) — El número de canales en la salida.
  • flip_sin_to_cos (bool, por defecto True) — Si se debe cambiar el sin por el cos en la incrustación temporal.
  • time_embed_dim (int, por defecto 512) — Dimensión de salida de las incrustaciones de paso de tiempo.
  • ofs_embed_dim (int, por defecto 512) — Dimensión de salida de los embeddings “ofs” utilizados en CogVideoX-5b-I2B en la versión 1.5
  • text_embed_dim (int, por defecto 4096) — Dimensión de entrada de las incrustaciones de texto del codificador de texto.
  • num_layers (int, por defecto 30) — El número de capas de bloques Transformer a utilizar.
  • dropout (float, por defecto 0.0) — La probabilidad de dropout a utilizar.
  • attention_bias (bool, por defecto True) — Si se debe usar sesgo en las capas de proyección de atención.
  • sample_width (int, por defecto 90) — El ancho de los latentes de entrada.
  • sample_height (int, por defecto 60) — La altura de los latentes de entrada.
  • sample_frames (int, por defecto 49) — El número de fotogramas en los latentes de entrada. Tenga en cuenta que este parámetro se inicializó incorrectamente en 49 en lugar de 13, ya que CogVideoX procesaba 13 fotogramas latentes a la vez en su configuración predeterminada y recomendada, pero no se puede cambiar al valor correcto para garantizar la compatibilidad hacia atrás. Para crear un transformador con K fotogramas latentes, el valor correcto que se debe pasar aquí sería: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, por defecto 2) — El tamaño de los parches a utilizar en la capa de incrustación de parches.
  • temporal_compression_ratio (int, por defecto 4) — La relación de compresión a lo largo de la dimensión temporal. Consulte la documentación de sample_frames.
  • max_text_seq_length (int, por defecto 226) — La longitud máxima de la secuencia de las incrustaciones de texto de entrada.
  • activation_fn (str, por defecto "gelu-approximate") — Función de activación a utilizar en la red feed-forward.
  • timestep_activation_fn (str, por defecto "silu") — Función de activación a utilizar al generar las incrustaciones de paso temporal.
  • norm_elementwise_affine (bool, por defecto True) — Si se debe usar afinidad por elemento en las capas de normalización.
  • norm_eps (float, por defecto 1e-5) — El valor de epsilon a utilizar en las capas de normalización.
  • spatial_interpolation_scale (float, por defecto 1.875) — Factor de escala a aplicar en los embeddings posicionales 3D a lo largo de las dimensiones espaciales.
  • temporal_interpolation_scale (float, por defecto 1.0) — Factor de escala para aplicar en los embeddings posicionales 3D a lo largo de las dimensiones temporales.

Un modelo Transformer para datos tipo video en 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 )

Parámetros

  • hidden_states (torch.Tensor de forma (batch_size, num_frames, channels, height, width)) — Entrada hidden_states.
  • encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_len, embed_dims)) — Incrustaciones condicionales (incrustaciones calculadas a partir de las condiciones de entrada, como los prompts) que se deben utilizar.
  • timestep (torch.LongTensor) — Se utiliza para indicar el paso de desruido.
  • timestep_cond (torch.Tensor, opcional) — Incrustaciones condicionales para el paso de tiempo. Si se proporcionan, las incrustaciones se sumarán con las muestras pasadas a través de la capa self.time_embedding para obtener las incrustaciones finales del paso de tiempo.
  • ofs (torch.Tensor, opcional) — Embeddings de desplazamiento utilizados en CogVideoX-5b-I2V.
  • image_rotary_emb (tuple de torch.Tensor, opcional) — Incrustaciones posicionales rotatorias precalculadas.
  • attention_kwargs (dict, opcional) — Un diccionario de kwargs que, si se especifica, se pasa al AttentionProcessor definido en self.processor dentro de diffusers.models.attention_processor.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ~models.transformer_2d.Transformer2DModelOutput en lugar de una tupla simple.

El método forward de CogVideoXTransformer3DModel.

fuse_qkv_projections

< >

( )

Habilita las proyecciones QKV fusionadas. Para los módulos de autoatención, todas las matrices de proyección (es decir, consulta, clave y valor) se fusionan. Para los módulos de atención cruzada, las matrices de proyección de clave y valor se fusionan.

> Esta API es 🧪 experimental.

unfuse_qkv_projections

< >

( )

Desactiva la proyección QKV fusionada si está habilitada.

> Esta API es 🧪 experimental.

Transformer2DModelOutput

clase diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parámetros

  • sample (torch.Tensor de forma (batch_size, num_channels, height, width) o (batch size, num_vector_embeds - 1, num_latent_pixels) si Transformer2DModel es discreto) — La salida de estados ocultos condicionada a la entrada encoder_hidden_states. Si es discreto, devuelve distribuciones de probabilidad para los píxeles latentes sin ruido.

La salida de Transformer2DModel.

Update on GitHub