Diffusers documentation

Kandinsky 6 VAE

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kandinsky 6 VAE

Kandinsky 6 sử dụng K-VAE 3D nhân quả cho siêu phân giải video và VAE mel-spectrogram của MMAudio, kết hợp với MMAudioVocoder BigVGAN riêng biệt, để tạo âm thanh đồng bộ.

Kandinsky6SRVAE

3D K-VAE nhân quả được sử dụng bởi Kandinsky6SRPipeline. Nó xử lý các video có độ dài tùy ý trong các phân đoạn có bộ nhớ giới hạn trong khi tái tạo chính xác kết quả đầu ra của một lần chạy duy nhất, không phân đoạn.

import torch
from diffusers import Kandinsky6SRVAE

vae = Kandinsky6SRVAE.from_pretrained(
    "kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers", subfolder="vae", torch_dtype=torch.bfloat16
)

lớp diffusers.Kandinsky6SRVAE

< >

( in_channels: int = 3out_channels: int = 3latent_channels: int = 64encoder_block_out_channels: tuple[int, ...] = (16, 128, 256, 512, 1024)decoder_block_out_channels: tuple[int, ...] = (16, 256, 512, 1024, 2048)layers_per_block: int = 2temporal_compression_ratio: int = 4temporal_compression_start_level: int = 1scaling_factor: float = 0.910344004631042 )

Tham số

  • in_channels (int, mặc định là 3) — Số lượng kênh pixel.
  • out_channels (int, mặc định là 3) — Số lượng kênh pixel được tái tạo.
  • latent_channels (int, mặc định là 64) — Số lượng kênh tiềm ẩn.
  • encoder_block_out_channels (tuple[int, ...], mặc định là (16, 128, 256, 512, 1024)) — Độ rộng đầu ra của các khối residual ở mỗi cấp encoder; mọi cấp trừ cấp cuối cùng sẽ giảm một nửa kích thước không gian và tăng gấp đôi độ rộng khi chuyển sang cấp tiếp theo.
  • decoder_block_out_channels (tuple[int, ...], mặc định là (16, 256, 512, 1024, 2048)) — Độ rộng đầu ra của các khối dư (residual blocks) ở mỗi cấp độ của bộ giải mã (decoder).
  • layers_per_block (int, mặc định là 2) — Số lượng khối residual ở mỗi cấp encoder; decoder sử dụng thêm một khối ở mỗi cấp.
  • temporal_compression_ratio (int, mặc định là 4) — Hệ số nén theo thời gian; log2 của nó các mức liên tiếp cũng nén thời gian.
  • temporal_compression_start_level (int, mặc định là 1) — Cấp độ đầu tiên nén thời gian.
  • scaling_factor (float, mặc định là 0.910344) — Hệ số tỷ lệ được áp dụng cho các latents trước khi chúng đi vào diffusion transformer.

Causal 3D K-VAE được Kandinsky6SRPipeline sử dụng để mã hóa và giải mã video.

Video được xử lý theo các đoạn thời gian gồm 16 khung hình pixel (cộng thêm khung hình đầu tiên). Các phép tích chập nhân quả (causal convolutions) mang trạng thái đệm (padding state) của chúng giữa các đoạn, do đó việc phân đoạn chỉ giới hạn bộ nhớ đỉnh (peak memory) và không làm thay đổi kết quả.

encode

< >

( x: torch.Tensorreturn_dict: bool = True )

Tham số

  • x (torch.Tensor có shape (batch_size, channels, num_frames, height, width)) — Video pixel trong [-1, 1]. num_frames nên là 1 + k * temporal_compression_ratio.
  • return_dict (bool, mặc định là True) — Có nên trả về một AutoencoderKLOutput thay vì một tuple thông thường hay không.

Mã hóa một video thành phân phối ẩn của nó.

decode

< >

( z: torch.Tensorreturn_dict: bool = True )

Tham số

  • z (torch.Tensor có hình dạng (batch_size, latent_channels, num_latent_frames, height, width)) — Các latent, đã được chia cho scaling_factor.
  • return_dict (bool, mặc định là True) — Có nên trả về một ~models.autoencoder_kl.DecoderOutput thay vì một tuple thông thường hay không.

Giải mã các biến ẩn thành một video.

forward

< >

( sample: torch.Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: torch.Generator | None = None ) → ~models.autoencoder_kl.DecoderOutput or tuple

Tham số

  • sample (torch.Tensor có hình dạng (batch_size, channels, num_frames, height, width)) — Video pixel trong [-1, 1]. num_frames nên là 1 + k * temporal_compression_ratio.
  • sample_posterior (bool, tùy chọn, mặc định là False) — Có lấy mẫu từ posterior tiềm ẩn thay vì sử dụng mode của nó hay không.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ~models.autoencoder_kl.DecoderOutput thay vì một tuple thông thường hay không.
  • generator (torch.Generator, tùy chọn) — Một torch.Generator để làm cho việc lấy mẫu trở nên tất định.

Trả về

~models.autoencoder_kl.DecoderOutput hoặc tuple

Nếu return_dict là True, một ~models.autoencoder_kl.DecoderOutput sẽ được trả về, ngược lại một tuple thông thường sẽ được trả về. sample của nó là video đã được tái tạo.

MMAudioVAE

VAE mel-spectrogram được sử dụng bởi Kandinsky6TI2VAPipeline khi sample_audio=True. Đầu ra của decode là một mel spectrogram; hãy truyền nó qua MMAudioVocoder để nhận được waveform.

Bản tham chiếu có thể được tìm thấy tại hkchengrex/MMAudio (giấy phép MIT).

import torch
from diffusers import MMAudioVAE

audio_vae = MMAudioVAE.from_pretrained(
    "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", subfolder="audio_vae", torch_dtype=torch.bfloat16
)

lớp diffusers.MMAudioVAE

< >

( mel_bins: int = 128latent_channels: int = 40hidden_channels: int = 512channel_multipliers: tuple[int, ...] = (1, 2, 4)layers_per_block: int = 2sample_rate: int = 44100n_fft: int = 2048hop_length: int = 512scaling_factor: float = 0.417 )

Tham số

  • mel_bins (int, mặc định là 128) — Số lượng mel bins.
  • latent_channels (int, mặc định là 40) — Số lượng kênh tiềm ẩn.
  • hidden_channels (int, mặc định là 512) — Chiều rộng cơ bản của autoencoder.
  • channel_multipliers (tuple[int, ...], mặc định là (1, 2, 4)) — Hệ số nhân chiều rộng của các cấp autoencoder.
  • layers_per_block (int, mặc định là 2) — Số khối residual ở mỗi cấp encoder; decoder sử dụng thêm một khối ở mỗi cấp.
  • sample_rate (int, mặc định là 44100) — Tần số lấy mẫu của dạng sóng.
  • n_fft (int, mặc định là 2048) — Kích thước FFT của phần đầu mel.
  • hop_length (int, mặc định là 512) — Chiều dài bước nhảy của bộ tiền xử lý mel. Phải khớp với hệ số tăng mẫu tổng của MMAudioVocoder mà VAE này được ghép cặp.
  • scaling_factor (float, mặc định là 0.417) — Hệ số tỷ lệ được áp dụng cho các latents trước khi chúng đi vào diffusion transformer.

Audio VAE của Kandinsky6TI2VAPipeline: một autoencoder bảo toàn độ lớn trên phổ log-mel (MMAudio, https://arxiv.org/abs/2412.15322).

encode chuyển đổi waveform thành phân phối latent; decode chuyển đổi latent trở lại thành mel spectrogram, sau đó MMAudioVocoder chuyển đổi thành waveform. Một khung latent bao phủ hop_length * 2 mẫu.

encode

< >

( audio: torch.Tensorreturn_dict: bool = True )

Tham số

  • audio (torch.Tensor có hình dạng (batch_size, num_samples)) — Đường sóng đơn trong [-1, 1] ở sample_rate.
  • return_dict (bool, mặc định là True) — Có nên trả về một AutoencoderKLOutput thay vì một tuple thông thường hay không.

Mã hóa một dạng sóng thành phân phối ẩn của nó.

decode

< >

( z: torch.Tensorreturn_dict: bool = True )

Tham số

  • z (torch.Tensor có hình dạng (batch_size, latent_channels, num_latent_frames)) — Các latent, đã được chia cho scaling_factor.
  • return_dict (bool, mặc định là True) — Có nên trả về một ~models.autoencoder_kl.DecoderOutput thay vì một tuple thông thường hay không.

Giải mã các biến ẩn thành phổ mel.

forward

< >

( sample: torch.Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: torch.Generator | None = None ) → ~models.autoencoder_kl.DecoderOutput or tuple

Tham số

  • sample (torch.Tensor có hình dạng (batch_size, num_samples)) — Đường sóng mono trong [-1, 1] ở sample_rate để mã hóa và tái tạo thành phổ mel.
  • sample_posterior (bool, tùy chọn, mặc định là False) — Có lấy mẫu từ posterior tiềm ẩn thay vì sử dụng mode của nó hay không.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ~models.autoencoder_kl.DecoderOutput thay vì một tuple thông thường hay không.
  • generator (torch.Generator, tùy chọn) — Một torch.Generator để làm cho việc lấy mẫu trở nên tất định.

Trả về

~models.autoencoder_kl.DecoderOutput hoặc tuple

Nếu return_dict là True, một ~models.autoencoder_kl.DecoderOutput sẽ được trả về, ngược lại một tuple thông thường sẽ được trả về. sample của nó là phổ mel được tái tạo với hình dạng (batch_size, mel_bins, num_mel_frames).

MMAudioVocoder

Được điều chỉnh từ các gói vocoder MMAudio của BigVGAN-v2, vốn được lấy từ NVIDIA/BigVGAN (giấy phép MIT), cùng với các hàm kích hoạt Snake chống aliasing của alias-free-torch (Giấy phép Apache 2.0).

lớp diffusers.MMAudioVocoder

< >

( num_mels: int = 128upsample_initial_channel: int = 1536upsample_rates: tuple[int, ...] = (8, 4, 2, 2, 2, 2)upsample_kernel_sizes: tuple[int, ...] = (16, 8, 4, 4, 4, 4)resblock_kernel_sizes: tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: tuple[tuple[int, ...], ...] = ((1, 3, 5), (1, 3, 5), (1, 3, 5)) )

Tham số

  • num_mels (int, mặc định là 128) — Số lượng mel bins của spectrogram đầu vào. Phải khớp với mel_bins của MMAudioVAE tương ứng.
  • upsample_initial_channel (int, mặc định là 1536) — Chiều rộng của lớp đầu tiên.
  • upsample_rates (tuple[int, ...], mặc định là (8, 4, 2, 2, 2, 2)) — Hệ số lấy mẫu lại (upsampling) của các giai đoạn trong vocoder. Tích của chúng là hệ số lấy mẫu lại tổng thể và phải khớp với hop_length của MMAudioVAE tương ứng.
  • upsample_kernel_sizes (tuple[int, ...], mặc định là (16, 8, 4, 4, 4, 4)) — Kích thước kernel của các lớp transposed-convolution trong các giai đoạn của vocoder.
  • resblock_kernel_sizes (tuple[int, ...], mặc định là (3, 7, 11)) — Kích thước kernel của các khối dư (residual blocks).
  • resblock_dilation_sizes (tuple[tuple[int, ...], ...], mặc định là ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Các hệ số giãn nở (dilation) của các khối dư (residual blocks).

Vocoder BigVGAN-v2 (https://github.com/NVIDIA/BigVGAN, giấy phép MIT) với các hàm kích hoạt Snake khử răng cưa từ https://github.com/junjun3518/alias-free-torch (Apache 2.0), chuyển đổi các phổ mel mà MMAudioVAE giải mã thành dạng sóng cho Kandinsky6TI2VAPipeline.

forward

< >

( mel: torch.Tensorreturn_dict: bool = True )

Tham số

  • mel (torch.Tensor có hình dạng (batch_size, num_mels, num_mel_frames)) — Biến phổ Mel, được giải mã bởi MMAudioVAE.
  • return_dict (bool, mặc định là True) — Có nên trả về một ~models.autoencoder_kl.DecoderOutput thay vì một tuple thông thường hay không.
Update on GitHub