Diffusers 文件
AutoencoderKLLTX影片
並獲得增強的文件體驗
開始使用
AutoencoderKLLTX影片
LTX中使用的具有KL損失的3D變分自動編碼器(VAE)模型由Lightricks引入。
該模型可以透過以下程式碼片段載入。
from diffusers import AutoencoderKLLTXVideo
vae = AutoencoderKLLTXVideo.from_pretrained("Lightricks/LTX-Video", subfolder="vae", torch_dtype=torch.float32).to("cuda")
AutoencoderKLLTX影片
class diffusers.AutoencoderKLLTXVideo
< 源 >( in_channels: int = 3 out_channels: int = 3 latent_channels: int = 128 block_out_channels: typing.Tuple[int, ...] = (128, 256, 512, 512) down_block_types: typing.Tuple[str, ...] = ('LTXVideoDownBlock3D', 'LTXVideoDownBlock3D', 'LTXVideoDownBlock3D', 'LTXVideoDownBlock3D') decoder_block_out_channels: typing.Tuple[int, ...] = (128, 256, 512, 512) layers_per_block: typing.Tuple[int, ...] = (4, 3, 3, 3, 4) decoder_layers_per_block: typing.Tuple[int, ...] = (4, 3, 3, 3, 4) spatio_temporal_scaling: typing.Tuple[bool, ...] = (True, True, True, False) decoder_spatio_temporal_scaling: typing.Tuple[bool, ...] = (True, True, True, False) decoder_inject_noise: typing.Tuple[bool, ...] = (False, False, False, False, False) downsample_type: typing.Tuple[str, ...] = ('conv', 'conv', 'conv', 'conv') upsample_residual: typing.Tuple[bool, ...] = (False, False, False, False) upsample_factor: typing.Tuple[int, ...] = (1, 1, 1, 1) timestep_conditioning: bool = False patch_size: int = 4 patch_size_t: int = 1 resnet_norm_eps: float = 1e-06 scaling_factor: float = 1.0 encoder_causal: bool = True decoder_causal: bool = False spatial_compression_ratio: int = None temporal_compression_ratio: int = None )
引數
- in_channels (
int
, 預設為3
) — 輸入通道數。 - out_channels (
int
, 預設為3
) — 輸出通道數。 - latent_channels (
int
, 預設為128
) — 潛在通道數。 - block_out_channels (
Tuple[int, ...]
, 預設為(128, 256, 512, 512)
) — 每個塊的輸出通道數。 - spatio_temporal_scaling (
Tuple[bool, ...], 預設為
(True, True, True, False)` — 塊是否應該包含時空下采樣。 - layers_per_block (
Tuple[int, ...]
, 預設為(4, 3, 3, 3, 4)
) — 每個塊的層數。 - patch_size (
int
, 預設為4
) — 空間補丁的大小。 - patch_size_t (
int
, 預設為1
) — 時間補丁的大小。 - resnet_norm_eps (
float
, 預設為1e-6
) — ResNet歸一化層的epsilon值。 - scaling_factor (
float
, 可選, 預設為1.0
) — 使用訓練集的第一批資料計算的訓練潛在空間的逐分量標準差。這用於在訓練擴散模型時將潛在空間縮放到單位方差。在傳遞給擴散模型之前,潛在空間會根據公式z = z * scaling_factor
進行縮放。解碼時,潛在空間會根據公式z = 1 / scaling_factor * z
縮放回原始比例。有關更多詳細資訊,請參閱《Latent Diffusion Models的高解析度影像合成》論文的4.3.2節和D.1節。 - encoder_causal (
bool
, 預設為True
) — 編碼器是否應因果行為(未來幀僅取決於過去幀)。 - decoder_causal (
bool
, 預設為False
) — 解碼器是否應因果行為(未來幀僅取決於過去幀)。
一個具有KL損失的VAE模型,用於將影像編碼為潛在表示,並將潛在表示解碼為影像。用於LTX。
此模型繼承自 ModelMixin。有關所有模型實現的通用方法(如下載或儲存),請參閱超類文件。
停用切片 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_min_num_frames: typing.Optional[int] = None tile_sample_stride_height: typing.Optional[float] = None tile_sample_stride_width: typing.Optional[float] = None tile_sample_stride_num_frames: typing.Optional[float] = None )
啟用平鋪 VAE 解碼。啟用此選項後,VAE 將把輸入張量分割成瓦片,分多步計算編碼和解碼。這對於節省大量記憶體和處理更大的影像非常有用。
分塊解碼
< 源 >( z: Tensor temb: typing.Optional[torch.Tensor] return_dict: bool = True ) → ~models.vae.DecoderOutput
或 tuple
使用分塊解碼器解碼一批影像。
使用分塊編碼器編碼一批影像。
AutoencoderKLOutput
class diffusers.models.modeling_outputs.AutoencoderKLOutput
< 源 >( latent_dist: DiagonalGaussianDistribution )
AutoencoderKL 編碼方法的輸出。
DecoderOutput
class diffusers.models.autoencoders.vae.DecoderOutput
< 源 >( sample: Tensor commit_loss: typing.Optional[torch.FloatTensor] = None )
解碼方法的輸出。