Diffusers documentation
AutoencoderKLAllegro
AutoencoderKLAllegro
Mô hình autoencoder biến phân 3D (VAE) với tổn thất KL được sử dụng trong Allegro đã được giới thiệu trong Allegro: Open the Black Box of Commercial-Level Video Generation Model bởi RhymesAI.
Mô hình có thể được tải bằng đoạn mã sau.
from diffusers import AutoencoderKLAllegro
vae = AutoencoderKLAllegro.from_pretrained("rhymes-ai/Allegro", subfolder="vae", dtype=torch.float32).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLAllegro
lớp diffusers.AutoencoderKLAllegro
< source >( in_channels: int = 3out_channels: int = 3down_block_types: tuple = ('AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D')up_block_types: tuple = ('AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D')block_out_channels: tuple = (128, 256, 512, 512)temporal_downsample_blocks: tuple = (True, True, False, False)temporal_upsample_blocks: tuple = (False, True, True, False)latent_channels: int = 4layers_per_block: int = 2act_fn: str = 'silu'norm_num_groups: int = 32temporal_compression_ratio: float = 4sample_size: int = 320scaling_factor: float = 0.13force_upcast: bool = True )
Tham số
- in_channels (int, mặc định là
3) — Số lượng kênh trong ảnh đầu vào. - out_channels (int, mặc định là
3) — Số lượng kênh trong đầu ra. - down_block_types (
tuple[str, ...], mặc định là("AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D")) — bộ tuple các chuỗi chỉ định các loại down block cần sử dụng. - up_block_types (
tuple[str, ...], mặc định là("AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D")) — bộ tuple các chuỗi chỉ định loại up block nào sẽ được sử dụng. - block_out_channels (
tuple[int, ...], mặc định là(128, 256, 512, 512)) — bộ tuple các số nguyên chỉ số lượng kênh đầu ra trong mỗi khối. - temporal_downsample_blocks (
tuple[bool, ...], mặc định là(True, True, False, False)) — bộ tuple các giá trị boolean chỉ định các khối cần bật hạ mẫu theo thời gian. - latent_channels (
int, mặc định là4) — Số lượng kênh trong latents. - layers_per_block (
int, mặc định là2) — Số lượng lớp resnet hoặc attention hoặc temporal convolution trong mỗi khối down/up. - act_fn (
str, mặc định là"silu") — Hàm kích hoạt cần sử dụng. - norm_num_groups (
int, mặc định là32) — Số lượng nhóm được sử dụng trong các lớp chuẩn hóa. - temporal_compression_ratio (
int, mặc định là4) — Tỷ lệ nén chiều thời gian của các mẫu. - sample_size (
int, mặc định là320) — Kích thước latent mặc định. - scaling_factor (
float, mặc định là0.13235) — Độ lệch chuẩn theo từng thành phần của không gian ẩn đã được huấn luyện, được tính toán bằng cách sử dụng lô đầu tiên của tập dữ liệu huấn luyện. Giá trị này được dùng để chuẩn hóa không gian ẩn sao cho có phương sai bằng đơn vị khi huấn luyện mô hình khuếch tán. Các ẩn (latents) được chuẩn hóa bằng công thứcz = z * scaling_factortrước khi được truyền vào mô hình khuếch tán. Khi giải mã, các ẩn được đưa về thang đo ban đầu bằng công thức:z = 1 / scaling_factor * z. Để biết thêm chi tiết, hãy tham khảo các mục 4.3.2 và D.1 của bài báo High-Resolution Image Synthesis with Latent Diffusion Models. - force_upcast (
bool, mặc định làTrue) — Nếu được bật, tham số này sẽ buộc VAE chạy ở float32 cho các pipeline có độ phân giải ảnh cao, chẳng hạn như SD-XL. VAE có thể được tinh chỉnh / huấn luyện ở dải giá trị thấp hơn mà không mất quá nhiều độ chính xác, trong trường hợp đóforce_upcastcó thể được đặt thànhFalse- xem: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
Mô hình VAE có tổn thất KL để mã hóa video thành các biến ẩn và giải mã các biểu diễn ẩn thành video. Được sử dụng trong Allegro.
Mô hình này kế thừa từ ModelMixin. Hãy xem tài liệu của lớp cha để biết các phương thức chung được triển khai cho tất cả các mô hình (chẳng hạn như tải xuống hoặc lưu trữ).
decode
< source >( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple
Tham số
- z (
torch.Tensor) — Lô đầu vào của các vector ẩn. - return_dict (
bool, mặc định làTrue) — Có nên trả về một~models.vae.DecoderOutputthay vì một tuple thông thường hay không.
Trả về
~models.vae.DecoderOutput hoặc tuple
Nếu return_dict là True, một ~models.vae.DecoderOutput sẽ được trả về, ngược lại một tuple thông thường sẽ được trả về.
Giải mã một lô video.
encode
< source >( x: Tensorreturn_dict: bool = True )
Mã hóa một lô video thành các biến ẩn.
forward
< source >( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → ~models.vae.DecoderOutput or tuple
Tham số
- sample (
torch.Tensor) — Mẫu đầu vào. - sample_posterior (
bool, tùy chọn, mặc định làFalse) — Có lấy mẫu từ posterior hay không. - return_dict (
bool, tùy chọn, mặc định làTrue) — Có nên trả về mộtDecoderOutputthay vì một tuple thông thường hay không. - generator (
torch.Generator, tùy chọn) — Trình tạo số ngẫu nhiên PyTorch.
Trả về
~models.vae.DecoderOutput hoặc tuple
Nếu return_dict là True, một ~models.vae.DecoderOutput sẽ được trả về, ngược lại một tuple thông thường sẽ được trả về.
AutoencoderKLOutput
lớp diffusers.models.modeling_outputs.AutoencoderKLOutput
< source >( latent_dist: DiagonalGaussianDistribution )
Đầu ra của phương pháp mã hóa của AutoencoderKL.
DecoderOutput
lớp diffusers.models.autoencoders.vae.DecoderOutput
< source >( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )
Đầu ra của phương pháp giải mã.