Diffusers documentation

AutoencoderRAE

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

AutoencoderRAE

نموذج مُشفِّر التمثيل التلقائي (RAE) الذي تم تقديمه في حوّلات الانتشار مع مُشفِّرات التمثيل التلقائية بواسطة Boyang Zheng وNanye Ma وShengbang Tong وSaining Xie من NYU VISIONx.

يجمع RAE بين مُشفِّر رؤية مُجمَّد مُدرَّب مسبقًا (DINOv2 أو SigLIP2 أو MAE) ومُفكِّك قابل للتدريب على طراز ViT-MAE. في وصفة تدريب RAE ذات المرحلتين، يُدرَّب مُشفِّر-المُفكِّك التلقائي في المرحلة 1 (إعادة البناء)، ثم يُدرَّب نموذج انتشار على فضاء الكمون الناتج في المرحلة 2 (التوليد).

تم إصدار نماذج RAE التالية ودعمها في Diffusers:

النموذجالمُشفِّرشكل الكم (مدخل 224 بكسل)
nyu-visionx/RAE-dinov2-wReg-base-ViTXL-n08DINOv2-base768 x 16 x 16
nyu-visionx/RAE-dinov2-wReg-base-ViTXL-n08-i512DINOv2-base (512 بكسل)768 x 32 x 32
nyu-visionx/RAE-dinov2-wReg-small-ViTXL-n08DINOv2-small384 x 16 x 16
nyu-visionx/RAE-dinov2-wReg-large-ViTXL-n08DINOv2-large1024 x 16 x 16
nyu-visionx/RAE-siglip2-base-p16-i256-ViTXL-n08SigLIP2-base768 x 16 x 16
nyu-visionx/RAE-mae-base-p16-ViTXL-n08MAE-base768 x 16 x 16

تحميل نموذج مُدرَّب مسبقًا

from diffusers import AutoencoderRAE

model = AutoencoderRAE.from_pretrained(
    "nyu-visionx/RAE-dinov2-wReg-base-ViTXL-n08"
).to("cuda").eval()  # or "mps", "xpu", "cpu"

ترميز وفك ترميز صورة حقيقية

import torch
from diffusers import AutoencoderRAE
from diffusers.utils import load_image
from torchvision.transforms.functional import to_tensor, to_pil_image

model = AutoencoderRAE.from_pretrained(
    "nyu-visionx/RAE-dinov2-wReg-base-ViTXL-n08"
).to("cuda").eval()  # or "mps", "xpu", "cpu"

image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")
image = image.convert("RGB").resize((224, 224))
x = to_tensor(image).unsqueeze(0).to("cuda")  # (1, 3, 224, 224), values in [0, 1]

with torch.no_grad():
    latents = model.encode(x).latent        # (1, 768, 16, 16)
    recon = model.decode(latents).sample     # (1, 3, 256, 256)

recon_image = to_pil_image(recon[0].clamp(0, 1).cpu())
recon_image.save("recon.png")

التطبيع الكامن

تتضمن بعض نقاط التفتيش المُسبقة التدريب إحصاءات latents_mean وlatents_std لكل قناة لتطبيع الفضاء الكامن. عند وجودها، تُطبّق encode وdecode التطبيع وإزالة التطبيع تلقائيًا، على التوالي.

model = AutoencoderRAE.from_pretrained(
    "nyu-visionx/RAE-dinov2-wReg-base-ViTXL-n08"
).to("cuda").eval()  # or "mps", "xpu", "cpu"

# Latent normalization is handled automatically inside encode/decode
# when the checkpoint config includes latents_mean/latents_std.
with torch.no_grad():
    latents = model.encode(x).latent   # normalized latents
    recon = model.decode(latents).sample

AutoencoderRAE

فئة diffusers.AutoencoderRAE

< >

( encoder_type: str = 'dinov2'encoder_hidden_size: int = 768encoder_patch_size: int = 14encoder_num_hidden_layers: int = 12decoder_hidden_size: int = 512decoder_num_hidden_layers: int = 8decoder_num_attention_heads: int = 16decoder_intermediate_size: int = 2048patch_size: int = 16encoder_input_size: int = 224image_size: int | None = Nonenum_channels: int = 3encoder_norm_mean: list | None = Noneencoder_norm_std: list | None = Nonelatents_mean: typing.Union[list, tuple, torch.Tensor, NoneType] = Nonelatents_std: typing.Union[list, tuple, torch.Tensor, NoneType] = Nonenoise_tau: float = 0.0reshape_to_2d: bool = Trueuse_encoder_loss: bool = Falsescaling_factor: float = 1.0 )

المعاملات

  • encoder_type (str، اختياري، القيمة الافتراضية "dinov2") — نوع المُشفِّر المجمّد الذي سيتم استخدامه. أحد القيم التالية: "dinov2" أو "siglip2" أو "mae".
  • encoder_hidden_size (int، اختياري، القيمة الافتراضية 768) — حجم المخفي لنموذج المُشفِّر.
  • encoder_patch_size (int، اختياري، القيمة الافتراضية 14) — حجم الباتش (Patch) لنموذج المُشفِّر.
  • encoder_num_hidden_layers (int، اختياري، القيمة الافتراضية 12) — عدد الطبقات المخفية في نموذج المُشفِّر.
  • patch_size (int، اختياري، القيمة الافتراضية 16) — حجم الباتش في فك الترميز (يُستخدم لـ unpatchify ورأس فك الترميز).
  • encoder_input_size (int، اختياري، القيمة الافتراضية 224) — حجم الإدخال المتوقع من قِبل المُشفِّر.
  • image_size (int, اختياري) — حجم صورة المخرج من فك الترميز. إذا كان None، يُشتق من عدد رموز الترميز وpatch_size كما في RAE-main: image_size = patch_size * sqrt(num_patches)، حيث num_patches = (encoder_input_size // encoder_patch_size) ** 2.
  • num_channels (int، اختياري، القيمة الافتراضية 3) — عدد قنوات الإدخال/الإخراج.
  • encoder_norm_mean (list، اختياري، القيمة الافتراضية [0.485, 0.456, 0.406]) — متوسط القناة لتطبيع مدخلات المُشفِّر (القيم الافتراضية الخاصة بـ ImageNet).
  • encoder_norm_std (list، اختياري، القيمة الافتراضية [0.229, 0.224, 0.225]) — الانحراف المعياري لكل قناة لتطبيع مدخلات المُشفِّر (القيم الافتراضية الخاصة بـ ImageNet).
  • latents_mean (list أو tuple، اختياري) — متوسط اختياري لتطبيع الكمون. تُقبل مدخلات الموترات وتُحوَّل إلى قوائم قابلة للتسلسل في الإعداد.
  • latents_std (list أو tuple، اختياري) — انحراف معياري اختياري لتطبيع الكمون. تُقبل مدخلات الموترات وتُحوَّل إلى قوائم قابلة للتسلسل في الإعدادات.
  • noise_tau (float، اختياري، القيمة الافتراضية 0.0) — مستوى الضوضاء للتدريب (يضيف ضوضاء إلى الكمونيات أثناء التدريب).
  • reshape_to_2d (bool، اختياري، الافتراضي True) — ما إذا كان سيتم إعادة تشكيل الكمونيات إلى صيغة ثنائية الأبعاد (B, C, H, W).
  • use_encoder_loss (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام حالات المُشفِّر المخفية في دالة الخسارة (للتدريب المتقدم).

نموذج Representation Autoencoder (RAE) لتشفير الصور إلى متغيرات كامنة وفك تشفير المتغيرات الكامنة إلى صور.

يستخدم هذا النموذج مُشفِّرًا مُسبَق التدريب مُجمَّدًا (DINOv2 أو SigLIP2 أو MAE) مع مُفكِّك ViT قابل للتدريب لإعادة بناء الصور من التمثيلات المُتعلَّمة.

يرث هذا النموذج من ModelMixin. راجع توثيق الفئة الأصلية لمعرفة طرقها العامة المُنفَّذة لجميع النماذج (مثل التنزيل أو الحفظ).

encode

< >

( x: Tensorreturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None )

decode

< >

( z: Tensorreturn_dict: bool = True )

forward

< >

( sample: Tensorreturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → DecoderOutput or tuple

المعاملات

  • sample (torch.Tensor) — عينة الإدخال.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع DecoderOutput بدلاً من tuple عادي.
  • generator (torch.Generator، اختياري) — torch.Generator لجعل عملية أخذ العينات حتمية.

يعيد

DecoderOutput أو tuple

إذا كان return_dict صحيحًا، يُعاد DecoderOutput، وإلا يُعاد tuple عادي.

DecoderOutput

فئة diffusers.models.autoencoders.vae.DecoderOutput

< >

( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )

المعاملات

  • sample (torch.Tensor من الشكل (batch_size, num_channels, height, width)) — عينة المخرجات المُفكَّكة من الطبقة الأخيرة للنموذج.

مخرجات طريقة فك الترميز.

Update on GitHub