Diffusers documentation

AutoencoderKLMiniMaxH3

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

AutoencoderKLMiniMaxH3

MiniMax의 MiniMax-H3에 사용된 KL 손실을 갖춘 비디오 변분 오토인코더(VAE) 모델입니다. 인과적 3D CNN 인코더와 비인과적 ViT 디코더를 조합하여 공간적으로 16배, 시간적으로 4배 압축합니다.

라이브러리의 대부분의 오토인코더와 구별되는 세 가지 특징이 있습니다:

  • Latents는 채널별로 정규화됩니다. scaling_factor는 없습니다: 파이프라인은 (latent - latents_mean) / latents_std로 인코딩하고 latent * latents_std + latents_mean로 디코딩합니다.
  • 픽셀 규약은 [0, 1] 기본 범위에 대한 ImageNet 정규화 RGB이며, 일반적인 [-1, 1]이 아닙니다. encode는 (pixel - imagenet_mean) / imagenet_std를 입력으로 기대하고 decode는 동일한 공간의 값을 반환하므로, 파이프라인은 후처리 전에 sample * imagenet_std + imagenet_mean를 적용하고 [0, 1]로 클램프합니다.
  • 스페이셜 타일링은 기본적으로 활성화되어 있습니다. MiniMax-H3는 인코딩과 디코딩 모두에 타일링이 활성화된 상태로 출시되었으며, 공개된 프레임은 블렌디드 타일 버전이므로 타일링을 비활성화하면 출력이 변경됩니다. 타일 기하학을 변경하려면 enable_tiling을, 비활성화하려면 disable_tiling을 사용하세요.

시간 기하 구조는 clip_length(인코더 청크당 17픽셀 프레임)와 token_drop(인코딩마다 3개의 후행 잠재 프레임 제거)에 의해 고정되며, 따라서 17 * n + 5개의 픽셀 프레임은 5 * n + 2개의 잠재 프레임으로 매핑됩니다.

import torch
from diffusers import AutoencoderKLMiniMaxH3

vae = AutoencoderKLMiniMaxH3.from_pretrained(
    "MiniMaxAI/MiniMax-H3", subfolder="vae", dtype=torch.float32
).to("cuda")  # or "mps", "xpu", "cpu"

AutoencoderKLMiniMaxH3

클래스 diffusers.AutoencoderKLMiniMaxH3

< >

( in_channels: int = 3out_channels: int = 3latent_channels: int = 24block_out_channels: tuple = (128, 256, 256, 512, 512, 1024)layers_per_block: int = 2spatial_downsample_factors: tuple = (2, 2, 2, 2, 1, 1)temporal_downsample_factors: tuple = (1, 2, 2, 1, 1, 1)norm_num_groups: int = 32norm_eps: float = 1e-06spatial_padding_mode: str = 'reflect'decoder_num_layers: int = 36decoder_num_attention_heads: int = 32decoder_attention_head_dim: int = 64decoder_num_register_tokens: int = 4decoder_ffn_mult: int = 4decoder_rope_theta: float = 100.0decoder_rope_dim_ratio: float = 0.75decoder_norm_eps: float = 1e-05clip_length: int = 17token_drop: int = 3latents_mean: tuple = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)latents_std: tuple = (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0) )

MiniMax-H3에서 사용되는 인과적 3D CNN 인코더와 비인과적 ViT 디코더를 갖춘 VAE 모델입니다.

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

Latents는 scaling_factor가 아니라 채널별 latents_mean / latents_std로 정규화됩니다. 파이프라인은 (latent - latents_mean) / latents_std로 인코딩하고 latent * latents_std + latents_mean로 디코딩합니다.

픽셀 규약은 일반적인 [-1, 1]이 아닌 [0, 1] 기본 범위에 대한 ImageNet 정규화 RGB입니다. encode는 (pixel - imagenet_mean) / imagenet_std를 입력으로 기대하며, decode는 동일한 공간의 값을 반환하므로 파이프라인은 후처리 전에 sample * imagenet_std + imagenet_mean (평균 (0.485, 0.456, 0.406), 표준편차 (0.229, 0.224, 0.225))를 적용하고 [0, 1]로 클램프해야 합니다.

시간 기하 구조는 clip_length(인코더 청크당 17픽셀 프레임)와 token_drop(인코딩 시마다 3개의 후행 잠재 프레임 제거)에 의해 고정됩니다: 17 * n + 5개의 픽셀 프레임은 5 * n + 2개의 잠재 프레임으로 매핑됩니다.

라이브러리의 대부분의 오토인코더와 달리, 공간 타일링은 기본적으로 켜져 있습니다. MiniMax-H3는 인코딩과 디코딩 모두에 타일링이 활성화된 상태로 출시되었으며, 공개된 프레임은 블렌딩된 타일 프레임이므로 타일링을 비활성화하면 출력이 변경됩니다. 타일 기하학을 변경하려면 enable_tiling을, 끄려면 disable_tiling을 사용하세요.

encode

< >

( x: Tensorreturn_dict: bool = True )

매개변수

  • x (torch.Tensor) — 입력 비디오 배치, shape (batch_size, in_channels, num_frames, height, width).
  • return_dict (bool, 선택 사항, 기본값 True) — 단순 tuple 대신 AutoencoderKLOutput을 반환할지 여부.

…

decode

< >

( z: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple

매개변수

  • z (torch.Tensor) — 입력 배치의 잠재 영상, shape (batch_size, latent_channels, num_latent_frames, height, width).
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 DecoderOutput를 반환할지 여부.

반환값

DecoderOutput 또는 tuple

복호화된 비디오, shape (batch_size, out_channels, num_frames, height, width).

latent 비디오 배치(decoding)를 디코딩합니다.

enable_tiling

< >

( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_sample_min_overlap_height: int | None = Nonetile_sample_min_overlap_width: int | None = None )

매개변수

  • tile_sample_min_height (int, 선택 사항) — 픽셀 공간에서의 타일 높이입니다. 이 값보다 높은 프레임은 높이 차원을 따라 분할됩니다.
  • tile_sample_min_width (int, 선택 사항) — 픽셀 공간에서의 타일 너비입니다. 이 값보다 넓은 프레임은 너비 차원을 따라 분할됩니다.
  • tile_sample_min_overlap_height (int, 선택 사항) — 연속된 세로 타일 두 개 사이의 최소 겹침 값(픽셀 단위).
  • tile_sample_min_overlap_width (int, 선택 사항) — 연속된 두 수평 타일 사이의 최소 겹침 폭(픽셀 단위).

타일 VAE 인코딩/디코딩 활성화. 이 옵션을 활성화하면 VAE가 프레임을 타일로 분할하고 각 타일을 개별적으로 인코딩 또는 디코딩한 뒤, 겹치는 부분을 선형 블렌딩으로 다시 결합합니다. 이를 통해 메모리 요구량이 줄어들고 더 큰 프레임을 처리할 수 있습니다.

forward

< >

( sample: Tensorsample_posterior: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → DecoderOutput or tuple

매개변수

  • sample (torch.Tensor) — 입력 비디오 배치, shape (batch_size, in_channels, num_frames, height, width).
  • sample_posterior (bool, 선택 사항, 기본값 False) — 모드를 취하는 대신 사후 분포에서 샘플링할지 여부.
  • generator (torch.Generator, 선택 사항) — sample_posterior=True일 때 사용되는 Generator입니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 DecoderOutput를 반환할지 여부.

반환값

DecoderOutput 또는 tuple

라운드 트립된 비디오, shape (batch_size, out_channels, num_frames, height, width).

인코딩한 후 비디오 배치의 디코딩을 수행합니다.

Update on GitHub