Buckets:

mishig's picture
|
download
raw
6.41 kB
# DDIM
Jiaming Song, Chenlin Meng ve Stefano Ermon tarafından [Denoising Diffusion Implicit Models](https://huggingface.co/papers/2010.02502) (DDIM).
Makalenin özeti şudur:
*Gürültü azaltma difüzyon olasılıksal modelleri (DDPM), adversarial eğitim gerektirmeden yüksek kaliteli görüntü üretimi sağlamış olmakla birlikte, bir örnek oluşturmak için Markov zincirinin birçok adım boyunca simüle edilmesini gerektirir. Örnekleme hızını artırmak için, DDPM'lerle aynı eğitim prosedürüne sahip, daha verimli bir iteratif implisit olasılıksal model sınıfı olan gürültü azaltma difüzyon implisit modellerini (DDIM) sunuyoruz. DDPM'lerde üretici süreç, Markovian difüzyon sürecinin tersi olarak tanımlanır. Aynı eğitim hedefine yol açan, ancak ters sürecinden örnek almak çok daha hızlı olabilecek bir Markov olmayan difüzyon süreci sınıfı oluşturuyoruz. DDIM'lerin, DDPM'lere kıyasla duvar saati süresi açısından 10× ile 50× daha hızlı yüksek kaliteli örnekler üretebildiğini, hesaplama ile örnek kalitesi arasında ödünleşim yapmamıza olanak tanıdığını ve gizli uzayda doğrudan anlamlı görüntü interpolasyonu gerçekleştirebildiğini deneysel olarak gösteriyoruz.*
Orijinal kod tabanı [ermongroup/ddim](https://github.com/ermongroup/ddim) adresinde bulunabilir.
## DDIMPipeline[[diffusers.DDIMPipeline]]
#### diffusers.DDIMPipeline[[diffusers.DDIMPipeline]]
```python
diffusers.DDIMPipeline(unet: UNet2DModel, scheduler: DDIMScheduler)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/ddim/pipeline_ddim.py#L37)
**Parametreler:**
unet ([UNet2DModel](/docs/diffusers/main/tr/api/models/unet2d#diffusers.UNet2DModel)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir `UNet2DModel`.
scheduler ([SchedulerMixin](/docs/diffusers/main/tr/api/schedulers/overview#diffusers.SchedulerMixin)) : Kodlanmış görüntüyü gürültüden arındırmak için `unet` ile birlikte kullanılacak bir zamanlayıcı. [DDPMScheduler](/docs/diffusers/main/tr/api/schedulers/ddpm#diffusers.DDPMScheduler) veya [DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler) olabilir.
Görsel üretimi için pipeline.
Bu model [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) sınıfından devralınmıştır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.
#### __call__[[diffusers.DDIMPipeline.__call__]]
```python
__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)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/ddim/pipeline_ddim.py#L62)
**Parametreler:**
batch_size (`int`, *isteğe bağlı*, varsayılan 1) : Üretilecek görsel sayısı.
generator (`torch.Generator`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html).
eta (`float`, *opsiyonel*, varsayılan 0.0) : [DDIM](https://huggingface.co/papers/2010.02502) makalesindeki eta (η) parametresine karşılık gelir. Yalnızca [DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler) için geçerlidir ve diğer zamanlayıcılarda yok sayılır. `0` değeri DDIM'e, `1` değeri ise DDPM'ye karşılık gelir.
num_inference_steps (`int`, *isteğe bağlı*, varsayılan 50) : Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar.
use_clipped_model_output (`bool`, *isteğe bağlı*, varsayılan `None`) : `True` veya `False` ise, [DDIMScheduler.step()](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler.step) belgelendirmesine bakın. `None` ise, zamanlayıcıya aşağı akışta hiçbir şey geçirilmez (bu argümanı desteklemeyen zamanlayıcılar için `None` kullanın).
output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen görüntünün çıktı biçimi. `"pil"` (`PIL.Image`), `"np"` (`np.array`) veya `"pt"` (`torch.Tensor`) arasında seçim yapın.
return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) döndürülüp döndürülmemesi.
**Dönüş:** [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) veya `tuple`
`return_dict` `True` ise [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) döndürülür, aksi halde ilk öğesi üretilen görüntülerin listesini içeren bir `tuple` döndürülür
Üretim için pipeline'ın çağrı fonksiyonu.
Örnek:
```py
>>> 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]]
```python
diffusers.ImagePipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L135)
**Parametreler:**
images (`List[PIL.Image.Image]` veya `np.ndarray`) : Uzunluğu `batch_size` olan gürültüsü azaltılmış PIL görüntülerinin listesi veya `(batch_size, height, width, num_channels)` biçiminde NumPy dizisi.
Görüntü hatları için çıktı sınıfı.

Xet Storage Details

Size:
6.41 kB
·
Xet hash:
71713237c354d4bf965fa7cb95033427d17b4ebc1b9b1c1769b563a3e05c0437

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