Diffusers documentation
AutoencoderKLPH3Image
AutoencoderKLPH3Image
نموذج VAE للصور الخاص بـ P-H3-Image من Pruna AI. يستخدم هذا النموذج المُشفِّر (encoder) والمساحة الكامنة (latent space) الخاصة بـ VAE الفيديو في MiniMax-H3، مع مُفكِّك (decoder) من نوع ViT يقوم بفك ترميز إطار كامن واحد إلى صورة.
يتبع اتفاقيات AutoencoderKLMiniMaxH3:
- تُمرَّر الصور كفيديوهات بإطار واحد،
(batch_size, channels, 1, height, width)، مع ضغط مكاني بمقدار 16x. - تُطبَّع القيم الكامنة (Latents) لكل قناة باستخدام
latents_mean/latents_stdبدلاً منscaling_factor. - تكون البكسلات قيم RGB مُطبَّعة وفق معايير ImageNet ضمن المجال
[0, 1]: يتوقعencodeإدخال(pixel - imagenet_mean) / imagenet_stdبينما يعيدdecodeالنتيجة في ذلك المجال. - تكون التiling المكاني مفعّلاً افتراضياً، مع بلاطات بحجم 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"The encoder and the decoder’s output projection stay in float32 whatever dtype the model is loaded in.
AutoencoderKLPH3Image
فئة diffusers.AutoencoderKLPH3Image
< source >( 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) )
VAE الصور الخاص بـ P-H3-Image: مُشفّر VAE ومساحة الكمون الخاصة بـ MiniMax-H3، مع PH3ImageViTDecoder يقوم بفك ترميز إطار كمون واحد.
تُمرَّر الصور كفيديوهات بإطار واحد، (batch_size, channels, 1, height, width). وكما في AutoencoderKLMiniMaxH3، تكون البكسلات بألوان RGB مُعايرة وفق ImageNet ضمن المدى [0, 1] (متوسط (0.485, 0.456, 0.406)، وانحراف معياري (0.229, 0.224, 0.225))، ويكون التقطيع المكاني مفعّلًا افتراضيًا.
encode
< source >( x: Tensorreturn_dict: bool = True )
المعاملات
- x (
torch.Tensor) — دفعة إدخال من الصور كفيديوهات بإطار واحد، الشكل(batch_size, in_channels, 1, height, width). - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع AutoencoderKLOutput بدلاً من tuple عادي.
ترميز دفعة من الصور إلى كامنات.
decode
< source >( z: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
المعاملات
- z (
torch.Tensor) — دفعة الإدخال من الكمونيات، الشكل(batch_size, latent_channels, 1, height, width). - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع DecoderOutput بدلاً من tuple عادي.
يعيد
DecoderOutput أو tuple
الصور المُفكَّكة، الشكل (batch_size, out_channels, 1, height, width).
فكّ تشفير دفعة من الصور الكامنة.
enable_tiling
< source >( 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
< source >( 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. - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع DecoderOutput بدلاً من tuple عادي.
يعيد
DecoderOutput أو tuple
الصور المُعاد إرسالها، الشكل (batch_size, out_channels, 1, height, width).
encode ثم decode دفعة من الصور.