Diffusers documentation

AutoencoderKLMiniMaxH3

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMiniMaxH3

نموذج الترميز التلقائي التبايني للفيديو (VAE) مع خسارة KL المستخدم في MiniMax-H3 من MiniMax. يجمع بين مشفر CNN ثلاثي الأبعاد سببي ومفكك ViT غير سببي، ويضغط البيانات 16 مرة مكانيًا و4 مرات زمنيًا.

ثلاثة أشياء تميّزه عن معظم مشفّرات الترميز التلقائي في المكتبة:

  • تُطبَّع القيم الكامنة (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 مع تفعيل التقطيع لكلٍّ من الترميز وفك الترميز، والإطارات المُصدَّرة هي إطارات البلاطات المُدمجة، لذا فإن تعطيله يُغيّر المخرجات. استخدم enable_tiling لتغيير هندسة البلاطات وdisable_tiling لتعطيله.

تُثبَّت الهندسة الزمنية بواسطة clip_length (17 إطارًا بكسلًا لكل شريحة مُشفِّر) وtoken_drop (3 إطارات كامنة لاحقة تُستبعد عن كل عملية تشفير)، لذا فإن 17 * n + 5 إطارًا بكسلًا تُقابلها 5 * n + 2 إطارًا كامنة.

import torch
from diffusers import AutoencoderKLMiniMaxH3

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

AutoencoderKLMiniMaxH3

فئة diffusers.AutoencoderKLMiniMaxH3

< >

( 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-05clip_length: int = 17token_drop: int = 3latents_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) )

نموذج VAE بمُشفِّر CNN ثلاثي الأبعاد سببي ومُفكِّك ViT غير سببي، يُستخدم في MiniMax-H3.

يرث هذا النموذج من 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] قبل المعالجة اللاحقة.

تُثبَّت الهندسة الزمنية بواسطة clip_length (17 إطارًا بكسلًا لكل شريحة مُشفِّر) وtoken_drop (3 إطارات كامنة لاحقة تُستبعد عن كل عملية تشفير): 17 * n + 5 إطارًا بكسلًا تُخضع إلى 5 * n + 2 إطارًا كامنًا.

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

encode

< >

( x: Tensorreturn_dict: bool = True )

المعاملات

  • x (torch.Tensor) — دفعة إدخال من مقاطع الفيديو، شكلها (batch_size, in_channels, num_frames, height, width).
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع AutoencoderKLOutput بدلاً من tuple عادي.

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

decode

< >

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

المعاملات

  • z (torch.Tensor) — دفعة الإدخال من مقاطع الفيديو الكامنة، الشكل (batch_size, latent_channels, num_latent_frames, height, width).
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع DecoderOutput بدلاً من tuple عادي.

يعيد

DecoderOutput أو tuple

الفيديوهات المُفكّكة، الشكل (batch_size, out_channels, num_frames, 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, اختياري) — أدنى تداخل، بالبكسل، بين بلاطتين عموديتين متتاليتين.
  • tile_sample_min_overlap_width (int, اختياري) — أدنى تداخل، بالبكسل، بين بلاطتين أفقيتين متتاليتين.

تفعيل ترميز/فك ترميز 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, num_frames, height, width).
  • sample_posterior (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم أخذ عينة من التوزيع اللاحق بدلاً من أخذ وضعه.
  • generator (torch.Generator، اختياري) — المولّد المستخدم عند sample_posterior=True.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع DecoderOutput بدلاً من tuple عادي.

يعيد

DecoderOutput أو tuple

الفيديوهات المُعاد إرسالها، الشكل (batch_size, out_channels, num_frames, height, width).

encode ثم decode دفعة من مقاطع الفيديو.

Update on GitHub