Diffusers 文件
AutoencoderKLAllegro
並獲得增強的文件體驗
開始使用
AutoencoderKLAllegro
在 Allegro 中使用的帶有 KL 損失的 3D 變分自編碼器 (VAE) 模型由 RhymesAI 在 Allegro: Open the Black Box of Commercial-Level Video Generation Model 論文中引入。
該模型可以透過以下程式碼片段載入。
from diffusers import AutoencoderKLAllegro
vae = AutoencoderKLAllegro.from_pretrained("rhymes-ai/Allegro", subfolder="vae", torch_dtype=torch.float32).to("cuda")
AutoencoderKLAllegro
class diffusers.AutoencoderKLAllegro
< 來源 >( in_channels: int = 3 out_channels: int = 3 down_block_types: typing.Tuple[str, ...] = ('AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D') up_block_types: typing.Tuple[str, ...] = ('AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D') block_out_channels: typing.Tuple[int, ...] = (128, 256, 512, 512) temporal_downsample_blocks: typing.Tuple[bool, ...] = (True, True, False, False) temporal_upsample_blocks: typing.Tuple[bool, ...] = (False, True, True, False) latent_channels: int = 4 layers_per_block: int = 2 act_fn: str = 'silu' norm_num_groups: int = 32 temporal_compression_ratio: float = 4 sample_size: int = 320 scaling_factor: float = 0.13 force_upcast: bool = True )
引數
- in_channels (int, 預設為
3
) — 輸入影像中的通道數。 - out_channels (int, 預設為
3
) — 輸出通道數。 - down_block_types (
Tuple[str, ...]
, 預設為("AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D")
) — 表示要使用的下采樣塊型別的字串元組。 - up_block_types (
Tuple[str, ...]
, 預設為("AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D")
) — 表示要使用的上取樣塊型別的字串元組。 - block_out_channels (
Tuple[int, ...]
, 預設為(128, 256, 512, 512)
) — 每個塊中的輸出通道數元組。 - temporal_downsample_blocks (
Tuple[bool, ...]
, 預設為(True, True, False, False)
) — 表示哪些塊啟用時間下采樣的布林值元組。 - latent_channels (
int
, 預設為4
) — 潛在空間中的通道數。 - layers_per_block (
int
, 預設為2
) — 每個下/上取樣塊中 resnet 或 attention 或時間卷積層的數量。 - act_fn (
str
, 預設為"silu"
) — 要使用的啟用函式。 - norm_num_groups (
int
, 預設為32
) — 歸一化層中使用的組數。 - temporal_compression_ratio (
int
, 預設為4
) — 樣本時間維度壓縮比率。 - sample_size (
int
, 預設為320
) — 預設潛在空間大小。 - scaling_factor (
float
, 預設為0.13235
) — 使用訓練集的第一批計算的訓練潛在空間的逐分量標準差。這用於在訓練擴散模型時將潛在空間縮放到單位方差。潛在空間在傳遞給擴散模型之前透過公式z = z * scaling_factor
進行縮放。解碼時,潛在空間透過公式z = 1 / scaling_factor * z
縮放回原始比例。有關更多詳細資訊,請參閱 高解析度影像合成與潛在擴散模型 論文的 4.3.2 節和 D.1 節。 - force_upcast (
bool
, 預設為True
) — 如果啟用,它將強制 VAE 以 float32 執行,以實現高影像解析度流水線,例如 SD-XL。VAE 可以進行微調/訓練以降低範圍,而不會損失太多精度,在這種情況下,force_upcast
可以設定為False
- 請參閱:https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
一個帶有 KL 損失的 VAE 模型,用於將影片編碼為潛在空間並將潛在表示解碼為影片。在 Allegro 中使用。
此模型繼承自 ModelMixin。有關所有模型實現的通用方法(如下載或儲存),請參閱超類文件。
停用切片 VAE 解碼。如果之前啟用了 enable_slicing
,此方法將恢復一步計算解碼。
停用平鋪 VAE 解碼。如果之前啟用了 enable_tiling
,此方法將恢復一步計算解碼。
啟用切片 VAE 解碼。啟用此選項後,VAE 會將輸入張量分片,分步計算解碼。這有助於節省一些記憶體並允許更大的批次大小。
啟用平鋪 VAE 解碼。啟用此選項後,VAE 將把輸入張量分割成瓦片,分多步計算編碼和解碼。這對於節省大量記憶體和處理更大的影像非常有用。
forward
< 來源 >( sample: Tensor sample_posterior: bool = False return_dict: bool = True generator: typing.Optional[torch._C.Generator] = None )
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 )
解碼方法的輸出。