Diffusers documentation

AutoencoderKLCogVideoX

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

and get access to the augmented documentation experience

to get started

AutoencoderKLCogVideoX

The 3D variational autoencoder (VAE) model with KL loss used in CogVideoX was introduced in CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer by Tsinghua University & ZhipuAI.

다음 코드 스니펫으로 모델을 로드할 수 있습니다.

from diffusers import AutoencoderKLCogVideoX

vae = AutoencoderKLCogVideoX.from_pretrained("THUDM/CogVideoX-2b", subfolder="vae", dtype=torch.float16).to("cuda")  # or "mps", "xpu", "cpu"

AutoencoderKLCogVideoX

클래스 diffusers.AutoencoderKLCogVideoX

< >

( in_channels: int = 3out_channels: int = 3down_block_types: tuple = ('CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D')up_block_types: tuple = ('CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D')block_out_channels: tuple = (128, 256, 256, 512)latent_channels: int = 16layers_per_block: int = 3act_fn: str = 'silu'norm_eps: float = 1e-06norm_num_groups: int = 32temporal_compression_ratio: float = 4sample_height: int = 480sample_width: int = 720scaling_factor: float = 1.15258426shift_factor: float | None = Nonelatents_mean: tuple[float] | None = Nonelatents_std: tuple[float] | None = Noneforce_upcast: float = Trueuse_quant_conv: bool = Falseuse_post_quant_conv: bool = Falseinvert_scale_latents: bool = False )

매개변수

  • in_channels (int, 선택 사항, 기본값 3) — 입력 이미지의 채널 수.
  • out_channels (int, 선택 사항, 기본값 3) — 출력의 채널 수.
  • down_block_types (tuple[str], 선택 사항, 기본값 ("DownEncoderBlock2D",)) — 다운샘플 블록 유형의 튜플.
  • up_block_types (tuple[str], 선택 사항, 기본값 ("UpDecoderBlock2D",)) — 업샘플 블록 유형 튜플.
  • block_out_channels (tuple[int], 선택 사항, 기본값 (64,)) — 블록 출력 채널의 튜플입니다.
  • act_fn (str, 선택 사항, 기본값 "silu") — 사용할 활성화 함수입니다.
  • sample_size (int, 선택 사항, 기본값 32) — 샘플 입력 크기.
  • scaling_factor (float, 선택 사항, 기본값 1.15258426) — 학습 세트의 첫 번째 배치(first batch)를 사용하여 계산된 학습된 잠재 공간(latent space)의 구성 요소별(component-wise) 표준 편차입니다. 이는 diffusion model을 학습할 때 잠재 공간의 분산을 1로 만들기 위해 사용됩니다. 잠재 변수(latents)는 z = z * scaling_factor 공식으로 스케일링된 후 diffusion model에 전달됩니다. 디코딩 시에는 z = 1 / scaling_factor * z 공식을 사용하여 원래의 스케일로 되돌립니다. 자세한 내용은 High-Resolution Image Synthesis with Latent Diffusion Models 논문의 4.3.2절과 D.1절을 참조하세요.
  • force_upcast (bool, 선택 사항, 기본값 True) — 활성화하면 SD-XL과 같은 고해상도 이미지 파이프라인에서 VAE가 float32로 실행되도록 강제합니다. VAE는 정밀도가 크게 손실되지 않는 범위 내에서 더 낮은 범위로 미세 조정/학습할 수 있으며, 이 경우 force_upcast를 False로 설정할 수 있습니다 - 참고: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix

KL 손실을 사용하여 이미지를 잠재 변수로 인코딩하고 잠재 표현을 이미지로 디코딩하는 VAE 모델입니다. CogVideoX에 사용됩니다.

이 모델은 ModelMixin에서 상속됩니다. 모든 모델에 대해 구현된 일반적 메서드(다운로드 또는 저장 등)에 대해서는 상위 클래스 문서를 확인하세요.

decode

< >

( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple

매개변수

  • z (torch.Tensor) — 잠재 벡터의 입력 배치.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ~models.vae.DecoderOutput를 반환할지 여부.

반환값

~models.vae.DecoderOutput 또는 tuple

return_dict가 True이면 ~models.vae.DecoderOutput가 반환되고, 그렇지 않으면 일반 tuple이 반환됩니다.

이미지 배치(decode)를 디코딩합니다.

encode

< >

( x: Tensorreturn_dict: bool = True )

매개변수

  • x (torch.Tensor) — 이미지 입력 배치.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ~models.autoencoder_kl.AutoencoderKLOutput을 반환할지 여부.

이미지 배치(latents)를 인코딩합니다.

enable_tiling

< >

( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_overlap_factor_height: float | None = Nonetile_overlap_factor_width: float | None = None )

매개변수

  • tile_sample_min_height (int, 선택 사항) — 높이 차원에서 샘플이 타일로 분리되려면 필요한 최소 높이입니다.
  • tile_sample_min_width (int, 선택 사항) — 샘플이 너비 차원으로 타일 분리되려면 필요한 최소 너비입니다.
  • tile_overlap_factor_height (int, 선택 사항) — 연속된 세로 타일 두 개 사이의 최소 겹침 양입니다. 이는 높이 차원에서 타일링 아티팩트가 발생하지 않도록 보장하기 위한 것입니다. 0과 1 사이여야 합니다. 더 높은 값을 설정하면 처리되는 타일 수가 증가하여 디코딩 프로세스가 느려질 수 있습니다.
  • tile_overlap_factor_width (int, 선택 사항) — 연속된 두 수평 타일 사이의 최소 겹침 양입니다. 이는 너비 차원에서 타일링 아티팩트가 생성되지 않도록 보장하기 위한 것입니다. 0과 1 사이여야 합니다. 더 높은 값을 설정하면 처리되는 타일 수가 증가하여 디코딩 프로세스가 느려질 수 있습니다.

타일 VAE 디코딩을 활성화합니다. 이 옵션이 활성화되면 VAE는 입력 텐서를 타일로 분할하여 디코딩 및 인코딩을 여러 단계로 계산합니다. 이는 대량의 메모리를 절약하고 더 큰 이미지를 처리할 수 있도록 하는 데 유용합니다.

forward

< >

( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → ~models.vae.DecoderOutput or tuple

매개변수

  • sample (torch.Tensor) — 입력 샘플.
  • sample_posterior (bool, 선택 사항, 기본값 False) — 후분포에서 샘플링할지 여부.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 DecoderOutput를 반환할지 여부.
  • generator (torch.Generator, 선택 사항) — 샘플링을 결정적으로 만들기 위한 torch.Generator.

반환값

~models.vae.DecoderOutput 또는 tuple

return_dict가 True이면 ~models.vae.DecoderOutput가 반환되고, 그렇지 않으면 일반 tuple이 반환됩니다.

tiled_decode

< >

( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple

매개변수

  • z (torch.Tensor) — 잠재 벡터의 입력 배치.
  • return_dict (bool, 선택 사항, 기본값 True) — ~models.vae.DecoderOutput를 반환할지, 아니면 일반 튜플을 반환할지를 결정합니다.

반환값

~models.vae.DecoderOutput 또는 tuple

return_dict가 True이면 ~models.vae.DecoderOutput가 반환되고, 그렇지 않으면 일반 tuple이 반환됩니다.

tiled decoder를 사용하여 이미지 배치(decoding)를 디코딩합니다.

tiled_encode

< >

( x: Tensor ) → torch.Tensor

매개변수

  • x (torch.Tensor) — 비디오 입력 배치.

반환값

torch.Tensor

인코딩된 비디오의 잠재 표현(latent representation).

타일 인코더를 사용하여 이미지 배치 인코딩

이 옵션이 활성화되면 VAE는 입력 텐서를 타일로 분할하여 여러 단계에 걸쳐 인코딩을 계산합니다. 이는 이미지 크기와 관계없이 메모리 사용량을 일정하게 유지하는 데 유용합니다. 타일 인코딩의 최종 결과는 타일마다 다른 인코더를 사용하기 때문에 타일링되지 않은 인코딩과 다릅니다. 타일링 아티팩트를 방지하기 위해 타일들은 겹쳐지고 블렌딩되어 매끄러운 출력을 형성합니다. 출력에서 여전히 타일 크기의 변화가 보일 수 있지만, 훨씬 덜 눈에 띄어야 합니다.

AutoencoderKLOutput

클래스 diffusers.models.modeling_outputs.AutoencoderKLOutput

< >

( latent_dist: DiagonalGaussianDistribution )

매개변수

  • latent_dist (DiagonalGaussianDistribution) — Encoder의 인코딩된 출력으로, DiagonalGaussianDistribution의 평균과 logvar로 표현됩니다. DiagonalGaussianDistribution을 사용하면 해당 분포에서 latent를 샘플링할 수 있습니다.

AutoencoderKL 인코딩 메서드의 출력.

DecoderOutput

class diffusers.models.autoencoders.vae.DecoderOutput

< >

( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )

매개변수

  • sample (torch.Tensor, shape (batch_size, num_channels, height, width)) — 모델의 마지막 레이어에서 디코딩된 출력 샘플입니다.

디코딩 메서드의 출력.

Update on GitHub