Buckets:
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-n08 |
DINOv2-base | 768 x 16 x 16 |
nyu-visionx/RAE-dinov2-wReg-base-ViTXL-n08-i512 |
DINOv2-base (512 بكسل) | 768 x 32 x 32 |
nyu-visionx/RAE-dinov2-wReg-small-ViTXL-n08 |
DINOv2-small | 384 x 16 x 16 |
nyu-visionx/RAE-dinov2-wReg-large-ViTXL-n08 |
DINOv2-large | 1024 x 16 x 16 |
nyu-visionx/RAE-siglip2-base-p16-i256-ViTXL-n08 |
SigLIP2-base | 768 x 16 x 16 |
nyu-visionx/RAE-mae-base-p16-ViTXL-n08 |
MAE-base | 768 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]]
diffusers.AutoencoderRAE[[diffusers.AutoencoderRAE]]
diffusers.AutoencoderRAE(encoder_type: str = 'dinov2', encoder_hidden_size: int = 768, encoder_patch_size: int = 14, encoder_num_hidden_layers: int = 12, decoder_hidden_size: int = 512, decoder_num_hidden_layers: int = 8, decoder_num_attention_heads: int = 16, decoder_intermediate_size: int = 2048, patch_size: int = 16, encoder_input_size: int = 224, image_size: int | None = None, num_channels: int = 3, encoder_norm_mean: list | None = None, encoder_norm_std: list | None = None, latents_mean: typing.Union[list, tuple, torch.Tensor, NoneType] = None, latents_std: typing.Union[list, tuple, torch.Tensor, NoneType] = None, noise_tau: float = 0.0, reshape_to_2d: bool = True, use_encoder_loss: bool = False, scaling_factor: float = 1.0)
المعاملات:
encoder_type (str، اختياري، القيمة الافتراضية "dinov2") : نوع المُشفِّر المُجمَّد الذي سيتم استخدامه. أحد "dinov2" أو "siglip2" أو "mae".
encoder_hidden_size (int، اختياري، القيمة الافتراضية 768) : حجم المخفي لنموذج المُشفِّر.
encoder_patch_size (int، اختياري، القيمة الافتراضية 14) : حجم الباتش (Patch size) لنموذج المُشفِّر.
encoder_num_hidden_layers (int، اختياري، القيمة الافتراضية 12) : عدد الطبقات المخفية في نموذج المُشفِّر.
patch_size (int، اختياري، القيمة الافتراضية 16) : حجم الباتش في فك الترميز (يُستخدم في إزالة الباتش ورأس فك الترميز).
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. راجع توثيق الفئة الأصلية لمعرفة طرقها العامة المُنفَّذة لجميع النماذج (مثل التنزيل أو الحفظ).
ترميز[[diffusers.AutoencoderRAE.encode]]
encode(x: Tensor, return_dict: bool = True, generator: typing.Optional[torch.Generator] = None)
فك الترميز[[diffusers.AutoencoderRAE.decode]]
decode(z: Tensor, return_dict: bool = True)
forward[[diffusers.AutoencoderRAE.forward]]
forward(sample: Tensor, return_dict: bool = True, generator: typing.Optional[torch.Generator] = None)
المعاملات:
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]]
diffusers.models.autoencoders.vae.DecoderOutput[[diffusers.models.autoencoders.vae.DecoderOutput]]
diffusers.models.autoencoders.vae.DecoderOutput(sample: Tensor, commit_loss: typing.Optional[torch.FloatTensor] = None)
المعاملات:
sample (torch.Tensor من الشكل (batch_size, num_channels, height, width)) : عينة الإخراج المُفكّكة من الطبقة الأخيرة للنموذج.
مخرجات طريقة فك الترميز.
Xet Storage Details
- Size:
- 10.8 kB
- Xet hash:
- 873f553544a49852927615192af80b6ccf6673efd06ed22d5eaf8923a2cf7817
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.