Diffusers documentation

Tiny AutoEncoder

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

Tiny AutoEncoder

طُرِح مُرمِّز-المُفكِّك التلقائي الصغير لاستقرار التوليد (TAESD) في madebyollin/taesd بواسطة أولين بوهر بوهان. وهو نسخة مصغّرة مُقطَّرة من VAE الخاص بـ Stable Diffusion، قادرة على فكّ ترميز الكمونيات في StableDiffusionPipeline أو StableDiffusionXLPipeline بسرعة فائقة.

للاستخدام مع Stable Diffusion v-2.1:

import torch
from diffusers import DiffusionPipeline, AutoencoderTiny

pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-1-base", dtype=torch.float16
)
pipe.vae = AutoencoderTiny.from_pretrained("madebyollin/taesd", dtype=torch.float16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "slice of delicious New York-style berry cheesecake"
image = pipe(prompt, num_inference_steps=25).images[0]
image

للاستخدام مع Stable Diffusion XL 1.0

import torch
from diffusers import DiffusionPipeline, AutoencoderTiny

pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16
)
pipe.vae = AutoencoderTiny.from_pretrained("madebyollin/taesdxl", dtype=torch.float16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "slice of delicious New York-style berry cheesecake"
image = pipe(prompt, num_inference_steps=25).images[0]
image

AutoencoderTiny

فئة diffusers.AutoencoderTiny

< >

( in_channels: int = 3out_channels: int = 3encoder_block_out_channels: tuple = (64, 64, 64, 64)decoder_block_out_channels: tuple = (64, 64, 64, 64)act_fn: str = 'relu'upsample_fn: str = 'nearest'latent_channels: int = 4upsampling_scaling_factor: int = 2num_encoder_blocks: tuple = (1, 3, 3, 3)num_decoder_blocks: tuple = (3, 3, 3, 1)latent_magnitude: int = 3latent_shift: float = 0.5force_upcast: bool = Falsescaling_factor: float = 1.0shift_factor: float = 0.0 )

المعاملات

  • in_channels (int، اختياري، القيمة الافتراضية 3) — عدد القنوات في الصورة المدخلة.
  • out_channels (int، اختياري، القيمة الافتراضية 3) — عدد القنوات في المخرجات.
  • encoder_block_out_channels (tuple[int]، اختياري، القيمة الافتراضية (64, 64, 64, 64)) — مجموعة من الأعداد الصحيحة تمثل عدد قنوات الإخراج لكل كتلة مشفّرة. يجب أن يكون طول المجموعة مساوياً لعدد الكتل المشفّرة.
  • decoder_block_out_channels (tuple[int]، اختياري، القيمة الافتراضية (64, 64, 64, 64)) — مجموعة من الأعداد الصحيحة تمثل عدد قنوات الإخراج لكل كتلة فك ترميز. يجب أن يكون طول المجموعة مساوياً لعدد كتل فك الترميز.
  • act_fn (str، اختياري، القيمة الافتراضية "relu") — دالة التنشيط المستخدمة في جميع أنحاء النموذج.
  • latent_channels (int، اختياري، القيمة الافتراضية 4) — عدد القنوات في التمثيل الكامن. يعمل الفضاء الكامن كتمثيل مضغوط للصورة المدخلة.
  • upsampling_scaling_factor (int, اختياري، القيمة الافتراضية 2) — معامل التوسيع في المُفكِّك. يحدد حجم الصورة الناتجة أثناء عملية التوسيع.
  • num_encoder_blocks (tuple[int]، اختياري، القيمة الافتراضية (1, 3, 3, 3)) — مجموعة من الأعداد الصحيحة تمثل عدد كتل المُشفِّر في كل مرحلة من مراحل عملية التشفير. يجب أن يكون طول المجموعة مساوياً لعدد المراحل في المُشفِّر. لكل مرحلة عدد مختلف من كتل المُشفِّر.
  • num_decoder_blocks (tuple[int], اختياري، القيمة الافتراضية (3, 3, 3, 1)) — مجموعة من الأعداد الصحيحة تمثل عدد كتل فك الترميز في كل مرحلة من مراحل عملية فك الترميز. يجب أن يكون طول المجموعة مساوياً لعدد المراحل في مُفكّك الترميز. لكل مرحلة عدد مختلف من كتل فك الترميز.
  • latent_magnitude (float, اختياري، القيمة الافتراضية 3.0) — حجم التمثيل الكامن. يقوم هذا المعامل بمقياس قيم التمثيل الكامن للتحكم في مدى الحفاظ على المعلومات.
  • latent_shift (float، اختياري، القيمة الافتراضية 0.5) — الإزاحة المطبقة على التمثيل الكامن. يتحكم هذا المعامل في مركز الفضاء الكامن.
  • scaling_factor (float, اختياري، القيمة الافتراضية 1.0) — انحراف معياري لكل مكوّن في الفضاء الكامن المُدرَّب، محسوب باستخدام الدفعة الأولى من مجموعة التدريب. يُستخدم هذا الانحراف لتقريب الفضاء الكامن إلى تباين وحدة عند تدريب نموذج الانتشار. يتم تقريب الكمونات باستخدام الصيغة z = z * scaling_factor قبل تمريرها إلى نموذج الانتشار. عند فك الترميز، تُعاد الكمونات إلى مقياسها الأصلي باستخدام الصيغة: z = 1 / scaling_factor * z. لمزيد من التفاصيل، راجع الأقسام 4.3.2 و D.1 من ورقة High-Resolution Image Synthesis with Latent Diffusion Models. ومع ذلك، لم يُستخدم أي عامل تقريب لهذا الترميز الترميزي التلقائي، ومن هنا جاءت القيمة الافتراضية 1.0.
  • force_upcast (bool، اختياري، الافتراضي False) — إذا تم تفعيله، سيُجبر VAE على العمل بدقة float32 في خطوط الأنابيب ذات دقة الصور العالية، مثل SD-XL. يمكن ضبط VAE الدقيق / تدريبه على نطاق أدنى دون فقدان كبير في الدقة، وفي هذه الحالة يمكن تعيين force_upcast إلى False (انظر هذا AutoEncoder المتوافق مع fp16).

نموذج VAE مُصغَّر مُقطَّر لتشفير الصور إلى تمثيلات كامنة وفك تشفير التمثيلات الكامنة إلى صور.

AutoencoderTiny هو غلاف حول التنفيذ الأصلي لـ TAESD.

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

forward

< >

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

المعاملات

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

يعيد

DecoderOutput أو tuple

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

scale_latents

< >

( x: Tensor )

القيم الكامنة الخام -> [0, 1]

unscale_latents

< >

( x: Tensor )

[0, 1] -> الكامنات الخام

AutoencoderTinyOutput

فئة diffusers.models.autoencoders.autoencoder_tiny.AutoencoderTinyOutput

< >

( latents: Tensor )

المعاملات

  • latents (torch.Tensor) — المخرجات المُرمّزة من Encoder.

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

Update on GitHub