Diffusers 文档

AutoencoderKLWan

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

AutoencoderKLWan

Alibaba Wan 团队在 Wan 2.1 中使用的带 KL 损失的 3D 变分自编码器 (VAE) 模型。

该模型可以通过以下代码片段加载。

from diffusers import AutoencoderKLWan

vae = AutoencoderKLWan.from_pretrained("Wan-AI/Wan2.1-T2V-1.3B-Diffusers", subfolder="vae", torch_dtype=torch.float32)

AutoencoderKLWan

class diffusers.AutoencoderKLWan

< >

( base_dim: int = 96 z_dim: int = 16 dim_mult: typing.Tuple[int] = [1, 2, 4, 4] num_res_blocks: int = 2 attn_scales: typing.List[float] = [] temperal_downsample: typing.List[bool] = [False, True, True] dropout: float = 0.0 latents_mean: typing.List[float] = [-0.7571, -0.7089, -0.9113, 0.1075, -0.1745, 0.9653, -0.1517, 1.5508, 0.4134, -0.0715, 0.5517, -0.3632, -0.1922, -0.9497, 0.2503, -0.2921] latents_std: typing.List[float] = [2.8184, 1.4541, 2.3275, 2.6558, 1.2196, 1.7708, 2.6052, 2.0743, 3.2687, 2.1526, 2.8652, 1.5579, 1.6382, 1.1253, 2.8251, 1.916] )

一个 VAE 模型,带有 KL 损失,用于将视频编码为潜在表示,并将潜在表示解码为视频。在 [Wan 2.1] 中引入。

此模型继承自 ModelMixin。有关所有模型实现的通用方法(如下载或保存),请参阅超类文档。

包装器

< >

( *args **kwargs )

禁用切片

< >

( )

禁用切片 VAE 解码。如果之前启用了 enable_slicing,此方法将恢复一步计算解码。

禁用平铺

< >

( )

禁用平铺 VAE 解码。如果之前启用了 enable_tiling,此方法将恢复一步计算解码。

启用切片

< >

( )

启用切片 VAE 解码。启用此选项后,VAE 会将输入张量分片,分步计算解码。这有助于节省一些内存并允许更大的批次大小。

启用平铺

< >

( tile_sample_min_height: typing.Optional[int] = None tile_sample_min_width: typing.Optional[int] = None tile_sample_stride_height: typing.Optional[float] = None tile_sample_stride_width: typing.Optional[float] = None )

参数

  • tile_sample_min_height (int, 可选) — 样本在高度维度上被分割成瓷砖所需的最小高度。
  • tile_sample_min_width (int, 可选) — 样本在宽度维度上被分割成瓷砖所需的最小宽度。
  • tile_sample_stride_height (int, 可选) — 两个连续垂直切片之间的最小重叠量。这用于确保在高度维度上不会出现平铺伪影。
  • tile_sample_stride_width (int, 可选) — 两个连续水平切片之间的步幅。这用于确保在宽度维度上不会出现平铺伪影。

启用平铺 VAE 解码。启用此选项后,VAE 将把输入张量分割成瓦片,分多步计算编码和解码。这对于节省大量内存和处理更大的图像非常有用。

前向

< >

( sample: Tensor sample_posterior: bool = False return_dict: bool = True generator: typing.Optional[torch._C.Generator] = None )

参数

  • sample (torch.Tensor) — 输入样本。
  • return_dict (bool, 可选, 默认为 True) — 是否返回 DecoderOutput 而不是普通元组。

分块解码

< >

( z: Tensor return_dict: bool = True ) ~models.vae.DecoderOutputtuple

参数

  • z (torch.Tensor) — 输入批量潜在向量。
  • return_dict (bool, 可选, 默认为 True) — 是否返回 ~models.vae.DecoderOutput 而不是普通元组。

返回

~models.vae.DecoderOutputtuple

如果 return_dict 为 True,则返回 ~models.vae.DecoderOutput,否则返回普通的 tuple

使用分块解码器解码一批图像。

分块编码

< >

( x: Tensor ) torch.Tensor

参数

  • x (torch.Tensor) — 输入批量视频。

返回

torch.Tensor

编码视频的潜在表示。

使用分块编码器编码一批图像。

DecoderOutput

class diffusers.models.autoencoders.vae.DecoderOutput

< >

( sample: Tensor commit_loss: typing.Optional[torch.FloatTensor] = None )

参数

  • sample (形状为 (batch_size, num_channels, height, width)torch.Tensor) — 模型最后一层的解码输出样本。

解码方法的输出。

< > 在 GitHub 上更新