Diffusers documentation

AutoencoderKLPH3Image

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLPH3Image

Pruna AI による P-H3-Image の画像 VAE です。MiniMax-H3 の 動画 VAE のエンコーダーと潜在空間を使用し、ViT デコーダーによって単一の潜在フレームを画像にデコードします。

AutoencoderKLMiniMaxH3の規約に従います:

  • 画像は1フレームの動画として渡され、(batch_size, channels, 1, height, width)の形状を持ち、空間方向に16倍の圧縮が適用されます。
  • Latents は scaling_factor ではなく、latents_mean / latents_std を用いてチャネルごとに正規化されます。
  • ピクセルは[0, 1]の範囲でImageNet正規化されたRGBです。encodeは(pixel - imagenet_mean) / imagenet_stdを期待し、decodeは同じ空間を返します。
  • 空間タイル分割はデフォルトで有効になっており、タイルサイズは256ピクセル、オーバーラップは少なくとも64ピクセルです。
import torch
from diffusers import AutoencoderKLPH3Image

vae = AutoencoderKLPH3Image.from_pretrained("PrunaAI/P-H3-Image", subfolder="vae", dtype=torch.bfloat16).to(
    "cuda"
)  # or "mps", "xpu", "cpu"

モデルがどのdtypeで読み込まれていても、エンコーダーとデコーダーの出力投影はfloat32のままです。

AutoencoderKLPH3Image

class diffusers.AutoencoderKLPH3Image

< >

( in_channels: int = 3out_channels: int = 3latent_channels: int = 24block_out_channels: tuple[int, ...] = (128, 256, 256, 512, 512, 1024)layers_per_block: int = 2spatial_downsample_factors: tuple[int, ...] = (2, 2, 2, 2, 1, 1)temporal_downsample_factors: tuple[int, ...] = (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-05latents_mean: tuple[float, ...] = (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[float, ...] = (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) )

P-H3-Imageの画像VAE: MiniMax-H3のVAEエンコーダーと潜在空間。単一の潜在フレームをデコードするPH3ImageViTDecoderを備えています。

画像は単一フレームの動画として渡され、(batch_size, channels, 1, height, width) の形になります。AutoencoderKLMiniMaxH3 と同様に、ピクセルは [0, 1] 上の ImageNet 正規化済み RGB(平均 (0.485, 0.456, 0.406)、標準偏差 (0.229, 0.224, 0.225))であり、空間タイル分割はデフォルトで有効になっています。

encode

< >

( x: Tensorreturn_dict: bool = True )

パラメータ

  • x (torch.Tensor) — 単一フレームの動画として扱われる入力画像のバッチ。形状は (batch_size, in_channels, 1, height, width) です。
  • return_dict (bool、省略可、デフォルトは True) — プレーンなタプルではなく AutoencoderKLOutput を返すかどうか。

バッチの画像を潜在変数にエンコードします。

decode

< >

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

パラメータ

  • z (torch.Tensor) — 入力バッチの潜在変数。形状は (batch_size, latent_channels, 1, height, width) です。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく DecoderOutput を返すかどうか。

戻り値

DecoderOutput または tuple

デコードされた画像の形状は(batch_size, out_channels, 1, height, width)です。

バッチの潜在画像をデコードします。

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, 省略可) — 縦方向の2つの連続するタイル間の最小重複量(ピクセル単位)。
  • tile_sample_min_overlap_width (int, 省略可) — 2つの連続する水平タイル間の最小重複幅(ピクセル単位)。

タイル化されたVAEエンコード/デコードを有効にします。このオプションを有効にすると、VAEはフレームをタイルに分割し、各タイルを個別にエンコードまたはデコードした上で、重複部分を線形にブレンドして再結合します。これによりメモリ要件が低減され、より大きなフレームの処理が可能になります。

forward

< >

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

パラメータ

  • sample (torch.Tensor) — 単一フレームの動画として扱われる入力画像バッチ。形状は(batch_size, in_channels, 1, height, width)です。
  • sample_posterior (bool、省略可能、デフォルトは False) — モードを取るのではなく、事後分布からサンプリングするかどうかを指定します。
  • generator (torch.Generator、任意) — sample_posterior=True の場合に使用される Generator。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく DecoderOutput を返すかどうか。

戻り値

DecoderOutput または tuple

ラウンドトリップされた画像、形状は(batch_size, out_channels, 1, height, width)です。

バッチの画像をエンコードしてからデコードします。

Update on GitHub