Diffusers documentation

AutoencoderKLPH3Image

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

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 = (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-05latents_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) )

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