Buckets:

mishig's picture
|
download
raw
7.39 kB

DDIM

نماذج الانتشار الضمنية غير الضجيج (DDIM) من تأليف جيامينغ سونغ وتشينلين منغ وستيفانو إيرمون.

ملخص الورقة البحثية هو:

حققت نماذج الانتشار الاحتمالية لإزالة الضوضاء (DDPMs) توليد صور عالية الجودة دون تدريب عدائي، لكنها تتطلب محاكاة سلسلة ماركوف لعدد كبير من الخطوات لإنتاج عينة. لتسريع عملية أخذ العينات، نقدم نماذج الانتشار الضمنية لإزالة الضوضاء (DDIMs)، وهي فئة أكثر كفاءة من النماذج الاحتمالية الضمنية التكرارية التي تتبع نفس إجراء التدريب المستخدم في DDPMs. في نماذج DDPMs، يُعرَّف العملية التوليدية على أنها عكس عملية انتشار ماركوفية. نبني فئة من عمليات الانتشار غير الماركوفية التي تؤدي إلى هدف تدريب متطابق، لكن عملية العكس فيها يمكن أن تكون أسرع بكثير في أخذ العينات. نُظهر تجريبيًا أن نماذج DDIMs يمكنها إنتاج عينات عالية الجودة أسرع بمقدار 10 إلى 50 مرة من حيث الوقت الفعلي مقارنةً بنماذج DDPMs، وتتيح لنا الموازنة بين الحساب وجودة العينة، كما يمكنها تنفيذ استيفاء دلالي ذي معنى للصور مباشرةً في الفضاء الكامن.

يمكن العثور على قاعدة الكود الأصلية في ermongroup/ddim.

DDIMPipeline[[diffusers.DDIMPipeline]]

diffusers.DDIMPipeline[[diffusers.DDIMPipeline]]

diffusers.DDIMPipeline(unet: UNet2DModel, scheduler: DDIMScheduler)

المصدر

المعاملات:

unet (UNet2DModel) : نموذج UNet2DModel لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

scheduler (SchedulerMixin) : مُجدول يُستخدم بالاقتران مع unet لإزالة الضوضاء من الصورة المُرمّزة. يمكن أن يكون أحد DDPMScheduler، أو DDIMScheduler.

خط أنابيب لتوليد الصور.

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

call[[diffusers.DDIMPipeline.call]]

__call__(batch_size: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, eta: float = 0.0, num_inference_steps: int = 50, use_clipped_model_output: bool | None = None, output_type: str | None = 'pil', return_dict: bool = True)

المصدر

المعاملات:

batch_size (int، اختياري، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها.

generator (torch.Generator، اختياري) : torch.Generator لجعل التوليد حتميًا.

eta (float، اختياري، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) من ورقة DDIM. ينطبق فقط على DDIMScheduler، ويُتجاهل في المجدولين الآخرين. القيمة 0 تتوافق مع DDIM والقيمة 1 تتوافق مع DDPM.

num_inference_steps (int، اختياري، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

use_clipped_model_output (bool، اختياري، القيمة الافتراضية None) : إذا كانت True أو False، راجع التوثيق الخاص بـ DDIMScheduler.step(). إذا كانت None، لن يتم تمرير أي شيء إلى المجدول في المراحل اللاحقة (استخدم None للمجدولات التي لا تدعم هذا الحجة).

output_type (str، اختياري، الافتراضي "pil") : صيغة الصورة المولّدة. اختر بين "pil" (PIL.Image) أو "np" (np.array) أو "pt" (torch.Tensor).

return_dict (bool، اختياري، القيمة الافتراضية True) : ما إذا كان يجب إرجاع ImagePipelineOutput بدلاً من tuple عادي.

يعيد: ImagePipelineOutput أو tuple

إذا كان return_dict هو True، يُعاد ImagePipelineOutput، وإلا يُعاد tuple يكون عنصره الأول قائمة بالصور المولّدة

دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد.

مثال:

>>> from diffusers import DDIMPipeline
>>> import PIL.Image
>>> import numpy as np

>>> # load model and scheduler
>>> pipe = DDIMPipeline.from_pretrained("fusing/ddim-lsun-bedroom")

>>> # run pipeline in inference (sample random noise and denoise)
>>> image = pipe(eta=0.0, num_inference_steps=50)

>>> # process image to PIL
>>> image_processed = image.cpu().permute(0, 2, 3, 1)
>>> image_processed = (image_processed + 1.0) * 127.5
>>> image_processed = image_processed.numpy().astype(np.uint8)
>>> image_pil = PIL.Image.fromarray(image_processed[0])

>>> # save image
>>> image_pil.save("test.png")

ImagePipelineOutput[[diffusers.ImagePipelineOutput]]

diffusers.ImagePipelineOutput[[diffusers.ImagePipelineOutput]]

diffusers.ImagePipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray)

المصدر

المعاملات:

images (List[PIL.Image.Image] أو np.ndarray) : قائمة من صور PIL منزوعة الضوضاء بطول batch_size أو مصفوفة NumPy بأبعاد (batch_size, height, width, num_channels).

فئة الإخراج لخطوط أنابيب الصور.

Xet Storage Details

Size:
7.39 kB
·
Xet hash:
dd233c32dec9fa7d326cf9f90f541a60daf148ff3cd3a5f960be7b8b8c54ddad

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.