Diffusers documentation
AutoencoderKLLTXVideo
AutoencoderKLLTXVideo
Mô hình autoencoder biến phân 3D (VAE) với tổn thất KL được sử dụng trong LTX do Lightricks giới thiệu.
Mô hình có thể được tải bằng đoạn mã sau.
from diffusers import AutoencoderKLLTXVideo
vae = AutoencoderKLLTXVideo.from_pretrained("Lightricks/LTX-Video", subfolder="vae", dtype=torch.float32).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLLTXVideo
lớp diffusers.AutoencoderKLLTXVideo
< source >( in_channels: int = 3out_channels: int = 3latent_channels: int = 128block_out_channels: tuple = (128, 256, 512, 512)down_block_types: tuple = ('LTXVideoDownBlock3D', 'LTXVideoDownBlock3D', 'LTXVideoDownBlock3D', 'LTXVideoDownBlock3D')decoder_block_out_channels: tuple = (128, 256, 512, 512)layers_per_block: tuple = (4, 3, 3, 3, 4)decoder_layers_per_block: tuple = (4, 3, 3, 3, 4)spatio_temporal_scaling: tuple = (True, True, True, False)decoder_spatio_temporal_scaling: tuple = (True, True, True, False)decoder_inject_noise: tuple = (False, False, False, False, False)downsample_type: tuple = ('conv', 'conv', 'conv', 'conv')upsample_residual: tuple = (False, False, False, False)upsample_factor: tuple = (1, 1, 1, 1)timestep_conditioning: bool = Falsepatch_size: int = 4patch_size_t: int = 1resnet_norm_eps: float = 1e-06scaling_factor: float = 1.0encoder_causal: bool = Truedecoder_causal: bool = Falsespatial_compression_ratio: int = Nonetemporal_compression_ratio: int = None )
Tham số
- in_channels (
int, mặc định là3) — Số lượng kênh đầu vào. - out_channels (
int, mặc định là3) — Số lượng kênh đầu ra. - latent_channels (
int, mặc định là128) — Số lượng kênh tiềm ẩn. - block_out_channels (
tuple[int, ...], mặc định là(128, 256, 512, 512)) — Số lượng kênh đầu ra cho mỗi khối. - spatio_temporal_scaling (
tuple[bool, ...], defaults to(True, True, True, False)` — Xác định xem một khối có nên chứa việc giảm tỷ lệ không-thời gian hay không. - layers_per_block (
tuple[int, ...], mặc định là(4, 3, 3, 3, 4)) — Số lượng lớp trong mỗi khối. - patch_size (
int, mặc định là4) — Kích thước của các mảng không gian. - patch_size_t (
int, mặc định là1) — Kích thước của các patch thời gian. - resnet_norm_eps (
float, mặc định là1e-6) — Giá trị epsilon cho các lớp chuẩn hóa của ResNet. - scaling_factor (
float, tùy chọn, mặc định là1.0) — Độ 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 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 gốc 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. - encoder_causal (
bool, mặc định làTrue) — Xác định xem encoder có nên hoạt động theo kiểu nhân quả (các khung hình trong tương lai chỉ phụ thuộc vào các khung hình trong quá khứ) hay không. - decoder_causal (
bool, mặc định làFalse) — Xác định xem bộ giải mã có nên hoạt động theo kiểu nhân quả (các khung hình trong tương lai chỉ phụ thuộc vào các khung hình trong quá khứ) hay không.
Mô hình VAE có tổn thất KL để mã hóa ảnh thành các ẩn và giải mã các biểu diễn ẩn thành ảnh. Được sử dụng trong LTX.
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: Tensortemb: typing.Optional[torch.Tensor] = Nonereturn_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, tùy chọn, 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ô ảnh.
encode
< source >( x: Tensorreturn_dict: bool = True )
Mã hóa một lô ảnh thành các biến ẩn.
enable_tiling
< source >( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_sample_min_num_frames: int | None = Nonetile_sample_stride_height: float | None = Nonetile_sample_stride_width: float | None = Nonetile_sample_stride_num_frames: float | None = None )
Tham số
- tile_sample_min_height (
int, tùy chọn) — Chiều cao tối thiểu cần thiết để một mẫu được tách thành các ô (tile) theo chiều cao. - tile_sample_min_width (
int, tùy chọn) — Chiều rộng tối thiểu cần thiết để một mẫu được tách thành các ô (tile) theo chiều rộng. - tile_sample_stride_height (
int, tùy chọn) — Lượng chồng lấn tối thiểu giữa hai gạch dọc liên tiếp. Điều này nhằm đảm bảo không có hiện tượng lỗi ghép gạch nào xảy ra dọc theo chiều cao. - tile_sample_stride_width (
int, tùy chọn) — Bước nhảy giữa hai lát cắt ngang liên tiếp. Điều này nhằm đảm bảo không có hiện tượng lỗi lát cắt nào xuất hiện trên chiều rộng.
Bật giải mã VAE dạng gạch. Khi tùy chọn này được bật, VAE sẽ chia tensor đầu vào thành các gạch để tính toán giải mã và mã hóa qua nhiều bước. Điều này hữu ích để tiết kiệm một lượng lớn bộ nhớ và cho phép xử lý các hình ảnh lớn hơn.
forward
< source >( sample: Tensortemb: typing.Optional[torch.Tensor] = Nonesample_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. - temb (
torch.Tensor, tùy chọn) — Tensor nhúng bước thời gian tùy chọn được sử dụng để điều kiện hóa bộ giải mã. - 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) — Mộttorch.Generatorđể làm cho việc lấy mẫu trở nên tất định.
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ề.
tiled_decode
< source >( z: Tensortemb: typing.Optional[torch.Tensor]return_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, tùy chọn, 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ô ảnh bằng trình giải mã dạng gạch.
tiled_encode
< source >( x: Tensor ) → torch.Tensor
Mã hóa một lô ảnh bằng trình mã hóa dạng gạch.
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ã.