Diffusers documentation
Tiny AutoEncoder
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]
imageAutoencoderTiny
فئة diffusers.AutoencoderTiny
< source >( 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
< source >( sample: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
القيم الكامنة الخام -> [0, 1]
[0, 1] -> الكامنات الخام
AutoencoderTinyOutput
فئة diffusers.models.autoencoders.autoencoder_tiny.AutoencoderTinyOutput
< source >( latents: Tensor )
مخرجات طريقة الترميز encoding في AutoencoderTiny.