Buckets:
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[[diffusers.AutoencoderKLPH3Image]]
diffusers.AutoencoderKLPH3Image[[diffusers.AutoencoderKLPH3Image]]
diffusers.AutoencoderKLPH3Image(in_channels: int = 3, out_channels: int = 3, latent_channels: int = 24, block_out_channels: tuple[int, ...] = (128, 256, 256, 512, 512, 1024), layers_per_block: int = 2, spatial_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 = 32, norm_eps: float = 1e-06, spatial_padding_mode: str = 'reflect', decoder_num_layers: int = 36, decoder_num_attention_heads: int = 32, decoder_attention_head_dim: int = 64, decoder_num_register_tokens: int = 4, decoder_ffn_mult: int = 4, decoder_rope_theta: float = 100.0, decoder_rope_dim_ratio: float = 0.75, decoder_norm_eps: float = 1e-05, latents_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[[diffusers.AutoencoderKLPH3Image.encode]]
encode(x: Tensor, return_dict: bool = True)
パラメータ:
x (torch.Tensor) : シングルフレーム動画として扱われる入力画像のバッチ。形状は (batch_size, in_channels, 1, height, width) です。
return_dict (bool、任意、デフォルトはTrue) : プレーンなタプルではなくAutoencoderKLOutputを返すかどうか。
戻り値:
エンコードされた画像の潜在分布。なお、潜在変数はその後 latents_mean / latents_std で正規化されます。
バッチの画像を潜在変数にエンコードします。
decode[[diffusers.AutoencoderKLPH3Image.decode]]
decode(z: Tensor, return_dict: bool = True)
パラメータ:
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[[diffusers.AutoencoderKLPH3Image.enable_tiling]]
enable_tiling(tile_sample_min_height: int | None = None, tile_sample_min_width: int | None = None, tile_sample_min_overlap_height: int | None = None, tile_sample_min_overlap_width: int | None = None)
パラメータ:
tile_sample_min_height (int, 任意) : ピクセル空間におけるタイルの高さ。この値より高いフレームは、高さの次元に沿って分割されます。
tile_sample_min_width (int, optional) : ピクセル空間におけるタイルの幅。この幅を超えるフレームは、幅方向に分割されます。
tile_sample_min_overlap_height (int, optional) : 2つの連続する縦方向のタイル間の最小重複量(ピクセル単位)。
tile_sample_min_overlap_width (int, optional) : 2つの連続する水平タイル間の最小オーバーラップ量(ピクセル単位)。
タイル化されたVAEエンコード/デコードを有効にします。このオプションを有効にすると、VAEはフレームをタイルに分割し、各タイルを個別にエンコードまたはデコードした上で、重複部分を線形にブレンドして再結合します。これによりメモリ要件が低減され、より大きなフレームの処理が可能になります。
forward[[diffusers.AutoencoderKLPH3Image.forward]]
forward(sample: Tensor, sample_posterior: bool = False, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
パラメータ:
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)です。
バッチの画像をエンコードしてからデコードします。
Xet Storage Details
- Size:
- 8.24 kB
- Xet hash:
- e1e7597f7441e8e8d2706397ab998dd0ddb0575f7398de9d8432eea1d73ea6e9
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.