# AutoencoderKLMiniMaxH3Image

نموذج الترميز التلقائي التبايني (VAE) للصور مع خسارة KL المستخدم في [MiniMax-H3-Image](https://huggingface.co/MiniMaxAI/MiniMax-H3-Image) من MiniMax. يجمع بين مُرمِّز CNN ثلاثي الأبعاد السببي الخاص بـ [AutoencoderKLMiniMaxH3](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl_minimax_h3#diffusers.AutoencoderKLMiniMaxH3)، المُنفَّذ على إطار واحد، ومُفكِّك ViT ثنائي الأبعاد، ويضغط بمقدار 16x مكانيًا. تستقبل `encode` و`decode` وتُرجع متجهات صور رباعية الأبعاد.

تشارك ثلاثة اتفاقيات مع [AutoencoderKLMiniMaxH3](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl_minimax_h3#diffusers.AutoencoderKLMiniMaxH3):

- **تُطبَّع القيم الكامنة (Latents) لكل قناة على حدة.** لا يوجد `scaling_factor`: يقوم خط الأنابيب (pipeline) بالتشفير باستخدام `(latent - latents_mean) / latents_std` وفك التشفير باستخدام `latent * latents_std + latents_mean`.
- **اتفاقية البكسل هي RGB مُعايَرة وفق معايير ImageNet فوق نطاق أساسي `[0, 1]`**، وليس النطاق المعتاد `[-1, 1]`. يتوقع `encode` قيمة `(pixel - imagenet_mean) / imagenet_std` ويعيد `decode` قيمًا في ذلك الفضاء نفسه، لذا يطبّق خط الأنابيب `sample * imagenet_std + imagenet_mean` ويقصّ القيم إلى `[0, 1]` قبل المعالجة اللاحقة.
- **تفعيل التقطيع المكاني هو الإعداد الافتراضي.** تم إصدار MiniMax-H3-Image مع تفعيل التقطيع لكلٍّ من الترميز وفك الترميز، والصور المُصدَّرة هي صور البلاطات المُدمجة، لذا فإن تعطيله يُغيّر المخرجات. استخدم `enable_tiling` لتغيير هندسة البلاطات و`disable_tiling` لتعطيله.

```python
import torch
from diffusers import AutoencoderKLMiniMaxH3Image

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

## AutoencoderKLMiniMaxH3Image[[diffusers.AutoencoderKLMiniMaxH3Image]]

#### diffusers.AutoencoderKLMiniMaxH3Image[[diffusers.AutoencoderKLMiniMaxH3Image]]

```python
diffusers.AutoencoderKLMiniMaxH3Image(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 = 24, decoder_num_attention_heads: int = 16, 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.5, 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))
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L499)

نموذج VAE بمُشفِّر CNN ثلاثي الأبعاد سببي ومُفكِّك ViT ثنائي الأبعاد غير سببي، يُستخدم في [MiniMax-H3-Image](https://huggingface.co/MiniMaxAI). المُشفِّر هو مُشفِّر الفيديو MiniMax-H3 المُنفَّذ على إطار واحد؛ أما المُفكِّك فهو ViT مخصص للصور فقط.

يرث هذا النموذج من [ModelMixin](/docs/diffusers/v0.43.0/ar/api/models/overview#diffusers.ModelMixin). راجع توثيق الفئة الأصلية لمعرفة طرقه العامة المُنفَّذة لجميع النماذج (مثل التنزيل أو الحفظ).

تُطبَّع الكمونيات (Latents) باستخدام `latents_mean` / `latents_std` لكل قناة بدلاً من `scaling_factor`؛ حيث يقوم خط الأنابيب (pipeline) بالتشفير باستخدام `(latent - latents_mean) / latents_std` وفك التشفير باستخدام `latent * latents_std + latents_mean`.

اتفاقية البكسل هي RGB مُطبَّعة وفق ImageNet على نطاق أساسي `[0, 1]`، وليس `[-1, 1]` المعتاد: يتوقع `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]` قبل المعالجة اللاحقة.

على عكس معظم مُشفّرات-المفكّكات التلقائية في المكتبة، يكون التقطيع المكاني **مفعّلًا افتراضيًا**: فقد تم إصدار MiniMax-H3-Image مع تفعيل التقطيع لكلٍّ من الترميز وفك الترميز، والصور المُصدَرة هي صور البلاطات المُدمجة، لذا فإن تعطيل التقطيع يُغيّر المخرجات. استخدم `enable_tiling` لتغيير هندسة البلاطات، و`disable_tiling` لتعطيله.

#### ترميز[[diffusers.AutoencoderKLMiniMaxH3Image.encode]]

```python
encode(x: Tensor, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L758)

**المعاملات:**

x (`torch.Tensor`) : دفعة مدخلات من الصور، شكلها `(batch_size, in_channels, height, width)`.

return_dict (`bool`، *اختياري*، الافتراضي `True`) : ما إذا كان يجب إرجاع [AutoencoderKLOutput](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl_qwenimage#diffusers.models.modeling_outputs.AutoencoderKLOutput) بدلاً من tuple عادي.

**يعيد:**

التوزيع الكامن للصور المُرمّزة، فوق الكمونيات ذات الشكل `(batch_size, latent_channels, height // spatial_compression_ratio, width // spatial_compression_ratio)`. لاحظ أن MiniMax-H3-Image يُطبّع الكمونيات المُستخرجة باستخدام `latents_mean` / `latents_std` بعد ذلك.

ترميز دفعة من الصور إلى كامنات.

#### فك الترميز[[diffusers.AutoencoderKLMiniMaxH3Image.decode]]

```python
decode(z: Tensor, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L786)

**المعاملات:**

z (`torch.Tensor`) : دفعة المدخلات من الكمونيات، الشكل `(batch_size, latent_channels, height, width)`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [DecoderOutput](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) بدلاً من tuple عادي.

**يعيد:** [DecoderOutput](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) أو `tuple`

الصور المُفكَّكة، الشكل `(batch_size, out_channels, height * spatial_compression_ratio, width * spatial_compression_ratio)`.

فكّ تشفير دفعة من الكمونيات.

#### enable_tiling[[diffusers.AutoencoderKLMiniMaxH3Image.enable_tiling]]

```python
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)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L608)

**المعاملات:**

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[[diffusers.AutoencoderKLMiniMaxH3Image.forward]]

```python
forward(sample: Tensor, sample_posterior: bool = False, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L812)

**المعاملات:**

sample (`torch.Tensor`) : دفعة مدخلات من الصور، شكلها `(batch_size, in_channels, height, width)`.

sample_posterior (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كان سيتم أخذ عينة من التوزيع اللاحق بدلاً من أخذ وضعه.

generator (`torch.Generator`، *اختياري*) : المولّد المستخدم عند `sample_posterior=True`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [DecoderOutput](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) بدلاً من tuple عادي.

**يعيد:** [DecoderOutput](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) أو `tuple`

الصور المُعاد إرسالها، الشكل `(batch_size, out_channels, height, width)`.

encode ثم decode دفعة من الصور.

