Diffusers documentation
AutoencoderRAE
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).sampleAutoencoderRAE
فئة diffusers.AutoencoderRAE
< source >( 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
< source >( x: Tensorreturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None )
forward
< source >( 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
< source >( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )
مخرجات طريقة فك الترميز.