Buckets:

mishig's picture
|
download
raw
7.29 kB
# DiT
[Scalable Diffusion Models with Transformers](https://huggingface.co/papers/2212.09748) (DiT), William Peebles ve Saining Xie tarafından kaleme alınmıştır.
Makalenin özeti şudur:
*Transformer mimarisine dayalı yeni bir difüzyon modeli sınıfını inceliyoruz. Görüntüler için latent difüzyon modelleri eğitiyor ve yaygın olarak kullanılan U-Net omurgasını, latent yamalar üzerinde çalışan bir transformer ile değiştiriyoruz. Diffusion Transformers (DiT) modellerimizin ölçeklenebilirliğini, Gflops cinsinden ölçülen ileri geçiş karmaşıklığı perspektifinden analiz ediyoruz. Daha yüksek Gflops'a sahip DiT'lerin — artan transformer derinliği/genişliği veya artan girdi token sayısı yoluyla — tutarlı olarak daha düşük FID değerlerine sahip olduğunu buluyoruz. İyi ölçeklenebilirlik özelliklerine sahip olmanın yanı sıra, en büyük DiT-XL/2 modellerimiz, sınıf koşullu ImageNet 512x512 ve 256x256 kıyaslamalarında tüm önceki difüzyon modellerini geride bırakarak, ikincisinde 2.27'lik bir son teknoloji FID değerine ulaşıyor.*
Orijinal kod tabanı [facebookresearch/dit](https://github.com/facebookresearch/dit) adresinde bulunabilir.
> [!TIP]
> Scheduler'lar [kılavuzunu](../../using-diffusers/schedulers) inceleyerek scheduler hızı ve kalitesi arasındaki ödünleşimi nasıl keşfedebileceğinizi öğrenin ve aynı bileşenleri birden fazla pipeline'a nasıl verimli bir şekilde yükleyebileceğinizi öğrenmek için [pipeline'lar arasında bileşenleri yeniden kullanma](../../using-diffusers/loading#reusing-models-in-multiple-pipelines) bölümüne göz atın.
## DiTPipeline[[diffusers.DiTPipeline]]
#### diffusers.DiTPipeline[[diffusers.DiTPipeline]]
```python
diffusers.DiTPipeline(transformer: DiTTransformer2DModel, vae: AutoencoderKL, scheduler: KarrasDiffusionSchedulers, id2label: dict[int, str] | None = None)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dit/pipeline_dit.py#L38)
**Parametreler:**
transformer ([DiTTransformer2DModel](/docs/diffusers/main/tr/api/models/dit_transformer2d#diffusers.DiTTransformer2DModel)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için koşullandırılmış bir `DiTTransformer2DModel` sınıfı. Yapılandırmada başlangıçta [`Transformer2DModel`](https://huggingface.co/facebook/DiT-XL-2-256/blob/main/transformer/config.json#L2) olarak yayınlandı, ancak bu uyumsuzluk göz ardı edilebilir.
vae ([AutoencoderKL](/docs/diffusers/main/tr/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Görüntüleri latent temsillere kodlamak ve bu temsillerden görüntülere çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) modeli.
scheduler ([DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için `transformer` ile birlikte kullanılacak bir zamanlayıcı.
UNet yerine Transformer omurgasına dayalı görüntü ü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.DiTPipeline.__call__]]
```python
__call__(class_labels: list, guidance_scale: float = 4.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, num_inference_steps: int = 50, output_type: str | None = 'pil', return_dict: bool = True)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dit/pipeline_dit.py#L101)
**Parametreler:**
class_labels (list[int]) : Üretilmesi istenen görüntüler için ImageNet sınıf etiketlerinin listesi.
guidance_scale (`float`, *opsiyonel*, varsayılan 4.0) : Daha yüksek bir guidance scale değeri, modelin metin `prompt`'u ile yakından ilişkili görseller üretmesini teşvik eder; bunun bedeli ise daha düşük görsel kalitedir. Guidance scale, `guidance_scale > 1` olduğunda etkinleşir.
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).
num_inference_steps (`int`, *isteğe bağlı*, varsayılan 250) : 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.
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.
Örnekler:
```py
>>> from diffusers import DiTPipeline, DPMSolverMultistepScheduler
>>> import torch
>>> pipe = DiTPipeline.from_pretrained("facebook/DiT-XL-2-256", torch_dtype=torch.float16)
>>> pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
>>> pipe = pipe.to("cuda")
>>> # pick words from Imagenet class labels
>>> pipe.labels # to print all available words
>>> # pick words that exist in ImageNet
>>> words = ["white shark", "umbrella"]
>>> class_ids = pipe.get_label_ids(words)
>>> generator = torch.manual_seed(33)
>>> output = pipe(class_labels=class_ids, num_inference_steps=25, generator=generator)
>>> image = output.images[0] # label 'white shark'
```
#### get_label_ids[[diffusers.DiTPipeline.get_label_ids]]
```python
get_label_ids(label: str | list[str])
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/dit/pipeline_dit.py#L76)
**Parametreler:**
label (`str` veya `str` içeren `dict`) : Sınıf kimliklerine eşlenecek etiket dizgileri.
**Dönüş:** `list` of `int`
Pipeline tarafından işlenecek sınıf kimlikleri.
ImageNet etiket dizelerini ilgili sınıf kimliklerine eşleyin.
## 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:
7.29 kB
·
Xet hash:
df138225e057d807d255948def44718a80f0f62da79c405d1289988c26233e91

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