Buckets:
AutoencoderKLCogVideoX
El modelo de autoencoder variacional (VAE) 3D con pérdida KL utilizado en CogVideoX fue introducido en CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer por la Universidad de Tsinghua y ZhipuAI.
El modelo se puede cargar con el siguiente fragmento de código.
from diffusers import AutoencoderKLCogVideoX
vae = AutoencoderKLCogVideoX.from_pretrained("THUDM/CogVideoX-2b", subfolder="vae", dtype=torch.float16).to("cuda") # or "mps", "xpu", "cpu"
AutoencoderKLCogVideoX[[diffusers.AutoencoderKLCogVideoX]]
diffusers.AutoencoderKLCogVideoX[[diffusers.AutoencoderKLCogVideoX]]
diffusers.AutoencoderKLCogVideoX(in_channels: int = 3, out_channels: int = 3, down_block_types: tuple[str] = ('CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D'), up_block_types: tuple[str] = ('CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D'), block_out_channels: tuple[int] = (128, 256, 256, 512), latent_channels: int = 16, layers_per_block: int = 3, act_fn: str = 'silu', norm_eps: float = 1e-06, norm_num_groups: int = 32, temporal_compression_ratio: float = 4, sample_height: int = 480, sample_width: int = 720, scaling_factor: float = 1.15258426, shift_factor: float | None = None, latents_mean: tuple[float] | None = None, latents_std: tuple[float] | None = None, force_upcast: float = True, use_quant_conv: bool = False, use_post_quant_conv: bool = False, invert_scale_latents: bool = False)
Parámetros:
in_channels (int, opcional, valor predeterminado 3) : Número de canales en la imagen de entrada.
out_channels (int, opcional, valor predeterminado 3) : Número de canales en la salida.
down_block_types (tuple[str], opcional, por defecto ("DownEncoderBlock2D",)) : tupla de tipos de bloques de muestreo descendente.
up_block_types (tuple[str], opcional, por defecto ("UpDecoderBlock2D",)) : tupla de tipos de bloques de remuestreo ascendente.
block_out_channels (tuple[int], opcional, valor predeterminado (64,)) : tupla de canales de salida de bloque.
act_fn (str, opcional, por defecto "silu") : La función de activación a utilizar.
sample_size (int, opcional, valor predeterminado 32) : Tamaño de entrada de muestra.
scaling_factor (float, opcional, valor predeterminado 1.15258426) : La desviación estándar por componente del espacio latente entrenado, calculada utilizando el primer lote del conjunto de entrenamiento. Esto se utiliza para escalar el espacio latente para que tenga varianza unitaria al entrenar el modelo de difusión. Los latentes se escalan con la fórmula z = z * scaling_factor antes de ser pasados al modelo de difusión. Al decodificar, los latentes se escalan de vuelta a la escala original con la fórmula: z = 1 / scaling_factor * z. Para más detalles, consulte las secciones 4.3.2 y D.1 del artículo High-Resolution Image Synthesis with Latent Diffusion Models.
force_upcast (bool, opcional, valor predeterminado True) : Si está habilitado, forzará que el VAE se ejecute en float32 para pipelines de alta resolución de imagen, como SD-XL. El VAE puede ajustarse o entrenarse para un rango inferior sin perder demasiada precisión, en cuyo caso force_upcast se puede establecer en False - ver: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
Un modelo VAE con pérdida KL para codificar imágenes en latentes y decodificar representaciones latentes en imágenes. Se utiliza en CogVideoX.
Este modelo hereda de ModelMixin. Consulta la documentación de la superclase para sus métodos genéricos implementados para todos los modelos (como la descarga o el guardado).
decode[[diffusers.AutoencoderKLCogVideoX.decode]]
decode(z: Tensor, return_dict: bool = True)
Parámetros:
z (torch.Tensor) : Lote de entrada de vectores latentes.
return_dict (bool, opcional, por defecto True) : Si se debe devolver un ~models.vae.DecoderOutput en lugar de una tupla simple.
Devuelve: ~models.vae.DecoderOutput o tuple
Si return_dict es True, se devuelve un ~models.vae.DecoderOutput; en caso contrario, se devuelve una tuple simple.
Decodificar un lote de imágenes.
encode[[diffusers.AutoencoderKLCogVideoX.encode]]
encode(x: Tensor, return_dict: bool = True)
Parámetros:
x (torch.Tensor) : Lote de entrada de imágenes.
return_dict (bool, opcional, valor predeterminado True) : Si se debe devolver un ~models.autoencoder_kl.AutoencoderKLOutput en lugar de una tupla simple.
Devuelve:
Las representaciones latentes de los videos codificados. Si return_dict es True, se devuelve un ~models.autoencoder_kl.AutoencoderKLOutput; de lo contrario, se devuelve una tuple simple.
Codifica un lote de imágenes en latentes.
enable_tiling[[diffusers.AutoencoderKLCogVideoX.enable_tiling]]
enable_tiling(tile_sample_min_height: int | None = None, tile_sample_min_width: int | None = None, tile_overlap_factor_height: float | None = None, tile_overlap_factor_width: float | None = None)
Parámetros:
tile_sample_min_height (int, opcional) : La altura mínima requerida para que una muestra se separe en mosaicos a lo largo de la dimensión de altura.
tile_sample_min_width (int, opcional) : El ancho mínimo requerido para que una muestra se separe en mosaicos a lo largo de la dimensión de ancho.
tile_overlap_factor_height (int, opcional) : La cantidad mínima de solapamiento entre dos mosaicos verticales consecutivos. Esto garantiza que no se produzcan artefactos de mosaico a lo largo de la dimensión de altura. Debe estar entre 0 y 1. Establecer un valor más alto podría provocar que se procesen más mosaicos, lo que ralentizaría el proceso de decodificación.
tile_overlap_factor_width (int, opcional) : La cantidad mínima de solapamiento entre dos mosaicos horizontales consecutivos. Esto garantiza que no se produzcan artefactos de mosaico a lo largo de la dimensión de ancho. Debe estar entre 0 y 1. Establecer un valor más alto podría provocar que se procesen más mosaicos, lo que ralentizaría el proceso de decodificación.
Habilita la decodificación de VAE en mosaicos. Cuando esta opción está habilitada, el VAE dividirá el tensor de entrada en mosaicos para calcular la decodificación y la codificación en varios pasos. Esto es útil para ahorrar una gran cantidad de memoria y para permitir el procesamiento de imágenes más grandes.
forward[[diffusers.AutoencoderKLCogVideoX.forward]]
forward(sample: Tensor, sample_posterior: bool = False, return_dict: bool = True, generator: typing.Optional[torch.Generator] = None)
Parámetros:
sample (torch.Tensor) : Muestra de entrada.
sample_posterior (bool, opcional, por defecto False) : Si se muestrea de la posterior.
return_dict (bool, opcional, por defecto True) : Si se devuelve un DecoderOutput en lugar de una tupla simple.
generator (torch.Generator, opcional) : Un torch.Generator para hacer que la muestreo sea determinista.
Devuelve: ~models.vae.DecoderOutput o tuple
Si return_dict es True, se devuelve un ~models.vae.DecoderOutput; en caso contrario, se devuelve una tuple simple.
tiled_decode[[diffusers.AutoencoderKLCogVideoX.tiled_decode]]
tiled_decode(z: Tensor, return_dict: bool = True)
Parámetros:
z (torch.Tensor) : Lote de entrada de vectores latentes.
return_dict (bool, opcional, valor predeterminado True) : Indica si se debe devolver un ~models.vae.DecoderOutput en lugar de una tupla simple.
Devuelve: ~models.vae.DecoderOutput o tuple
Si return_dict es True, se devuelve un ~models.vae.DecoderOutput; en caso contrario, se devuelve una tuple simple.
Decodificar un lote de imágenes usando un decodificador por mosaicos.
tiled_encode[[diffusers.AutoencoderKLCogVideoX.tiled_encode]]
tiled_encode(x: Tensor)
Parámetros:
x (torch.Tensor) : Lote de entrada de videos.
Devuelve: torch.Tensor
La representación latente de los videos codificados.
Codifica un lote de imágenes usando un codificador por mosaicos.
Cuando esta opción está habilitada, el VAE dividirá el tensor de entrada en mosaicos para calcular la codificación en varios pasos. Esto es útil para mantener el uso de memoria constante independientemente del tamaño de la imagen. El resultado final de la codificación por mosaicos es diferente al de la codificación sin mosaicos, ya que cada mosaico utiliza un codificador diferente. Para evitar artefactos de mosaico, los mosaicos se superponen y se fusionan para formar una salida suave. Aún puede ver cambios del tamaño de un mosaico en la salida, pero deberían ser mucho menos notorios.
AutoencoderKLOutput[[diffusers.models.modeling_outputs.AutoencoderKLOutput]]
diffusers.models.modeling_outputs.AutoencoderKLOutput[[diffusers.models.modeling_outputs.AutoencoderKLOutput]]
diffusers.models.modeling_outputs.AutoencoderKLOutput(latent_dist: DiagonalGaussianDistribution)
Parámetros:
latent_dist (DiagonalGaussianDistribution) : Salidas codificadas de Encoder representadas como la media y el logvar de DiagonalGaussianDistribution. DiagonalGaussianDistribution permite muestrear latentes de la distribución.
Salida del método de codificación de AutoencoderKL.
DecoderOutput[[diffusers.models.autoencoders.vae.DecoderOutput]]
diffusers.models.autoencoders.vae.DecoderOutput[[diffusers.models.autoencoders.vae.DecoderOutput]]
diffusers.models.autoencoders.vae.DecoderOutput(sample: Tensor, commit_loss: typing.Optional[torch.FloatTensor] = None)
Parámetros:
sample (torch.Tensor de forma (batch_size, num_channels, height, width)) : La muestra de salida decodificada de la última capa del modelo.
Salida del método de decodificación.
Xet Storage Details
- Size:
- 11.4 kB
- Xet hash:
- 3522cd10161a8bb9728468b3c96c88e41776f0d1d0b871005283186123359ddd
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.