Buckets:
| # Latent Diffusion | |
| Latent Diffusion, Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser ve Björn Ommer tarafından [High-Resolution Image Synthesis with Latent Diffusion Models](https://huggingface.co/papers/2112.10752) makalesinde önerilmiştir. | |
| Makalenin özeti şudur: | |
| *Görüntü oluşturma sürecini gürültü azaltma oto-kodlayıcılarının ardışık uygulanması olarak ayrıştırarak, difüzyon modelleri (DM) görüntü verisinde ve ötesinde son derece başarılı sentez sonuçlarına ulaşır. Ayrıca, bu modellerin formülasyonu, yeniden eğitim gerektirmeden görüntü üretim sürecini kontrol etmek için bir yönlendirme mekanizmasına olanak tanır. Bununla birlikte, bu modeller genellikle doğrudan piksel uzayında çalıştığından, güçlü DM'lerin optimizasyonu genellikle yüzlerce GPU günü tüketir ve ardışık değerlendirmeler nedeniyle çıkarım maliyetlidir. Kalitelerini ve esnekliklerini koruyarak sınırlı hesaplama kaynaklarında DM eğitimi yapılabilmesi için, bunları güçlü önceden eğitilmiş oto-kodlayıcıların gizli uzayında (latent space) uygularız. Önceki çalışmalardan farklı olarak, difüzyon modellerini bu tür bir temsil üzerinde eğitmek, karmaşıklığın azaltılması ile detayın korunması arasında neredeyse optimal bir noktaya ilk kez ulaşmayı mümkün kılar ve görsel sadakati büyük ölçüde artırır. Model mimarisine çapraz dikkat (cross-attention) katmanları ekleyerek, difüzyon modellerini metin veya sınırlayıcı kutular gibi genel koşullandırma girdileri için güçlü ve esnek üreteçlere dönüştürür ve yüksek çözünürlüklü sentez, konvolüsyonel bir şekilde mümkün hale gelir. Gizli difüzyon modellerimiz (LDM), piksel tabanlı DM'lere kıyasla hesaplama gereksinimlerini önemli ölçüde azaltırken, görüntü doldurma (inpainting) için yeni bir son derece başarılı sonuç (state of the art) elde eder ve koşulsuz görüntü üretimi, semantik sahne sentezi ve süper çözünürlük dahil olmak üzere çeşitli görevlerde son derece rekabetçi performans gösterir.* | |
| Orijinal kod tabanı [CompVis/latent-diffusion](https://github.com/CompVis/latent-diffusion) 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. | |
| ## LDMTextToImagePipeline[[diffusers.LDMTextToImagePipeline]] | |
| #### diffusers.LDMTextToImagePipeline[[diffusers.LDMTextToImagePipeline]] | |
| ```python | |
| diffusers.LDMTextToImagePipeline(vqvae: diffusers.models.autoencoders.vq_model.VQModel | diffusers.models.autoencoders.autoencoder_kl.AutoencoderKL, bert: PreTrainedModel, tokenizer: PythonBackend, unet: diffusers.models.unets.unet_2d.UNet2DModel | diffusers.models.unets.unet_2d_condition.UNet2DConditionModel, scheduler: diffusers.schedulers.scheduling_ddim.DDIMScheduler | diffusers.schedulers.scheduling_pndm.PNDMScheduler | diffusers.utils.dummy_torch_and_scipy_objects.LMSDiscreteScheduler) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py#L39) | |
| **Parametreler:** | |
| vqvae ([VQModel](/docs/diffusers/main/tr/api/models/vq#diffusers.VQModel)) : Görüntüleri gizil (latent) temsillere kodlamak ve bu temsillerden görüntülere çözmek için kullanılan vektör-kantize (VQ) model. | |
| bert (`LDMBertModel`) : `BERT` tabanlı metin kodlayıcı modeli. | |
| tokenizer ([BertTokenizer](https://huggingface.co/docs/transformers/main/en/model_doc/lxmert#transformers.BertTokenizer)) : Metni tokenize etmek için bir `BertTokenizer`. | |
| unet ([UNet2DConditionModel](/docs/diffusers/main/tr/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir `UNet2DConditionModel`. | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/tr/api/schedulers/overview#diffusers.SchedulerMixin)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için `unet` ile birlikte kullanılacak bir zamanlayıcı. [DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler), [LMSDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) veya [PNDMScheduler](/docs/diffusers/main/tr/api/schedulers/pndm#diffusers.PNDMScheduler) olabilir. | |
| Latent difüzyon kullanarak metinden görüntüye üretim 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.LDMTextToImagePipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str], height: int | None = None, width: int | None = None, num_inference_steps: int | None = 50, guidance_scale: float | None = 1.0, eta: float | None = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, **kwargs) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py#L74) | |
| **Parametreler:** | |
| prompt (`str` veya `list[str]`) : Görsel üretimi yönlendirmek için istem veya istemler. | |
| height (`int`, *isteğe bağlı*, varsayılan `self.unet.config.sample_size * self.vae_scale_factor`) : Üretilen görüntünün piksel cinsinden yüksekliği. | |
| width (`int`, *isteğe bağlı*, varsayılan `self.unet.config.sample_size * self.vae_scale_factor`) : Üretilen görüntünün piksel cinsinden genişliği. | |
| 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. | |
| guidance_scale (`float`, *opsiyonel*, varsayılan 1.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. | |
| eta (`float`, *isteğe bağlı*, 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. | |
| 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). | |
| latents (`torch.Tensor`, *isteğe bağlı*) : Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden oluşturulmuş gürültülü latensler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele `generator` kullanılarak örneklem yoluyla bir latens tensörü oluşturulur. | |
| 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 DiffusionPipeline | |
| >>> # load model and scheduler | |
| >>> ldm = DiffusionPipeline.from_pretrained("CompVis/ldm-text2im-large-256") | |
| >>> # run pipeline in inference (sample random noise and denoise) | |
| >>> prompt = "A painting of a squirrel eating a burger" | |
| >>> images = ldm([prompt], num_inference_steps=50, eta=0.3, guidance_scale=6).images | |
| >>> # save images | |
| >>> for idx, image in enumerate(images): | |
| ... image.save(f"squirrel-{idx}.png") | |
| ``` | |
| ## LDMSuperResolutionPipeline[[diffusers.LDMSuperResolutionPipeline]] | |
| #### diffusers.LDMSuperResolutionPipeline[[diffusers.LDMSuperResolutionPipeline]] | |
| ```python | |
| diffusers.LDMSuperResolutionPipeline(vqvae: VQModel, unet: UNet2DModel, scheduler: diffusers.schedulers.scheduling_ddim.DDIMScheduler | diffusers.schedulers.scheduling_pndm.PNDMScheduler | diffusers.utils.dummy_torch_and_scipy_objects.LMSDiscreteScheduler | diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteScheduler | diffusers.schedulers.scheduling_euler_ancestral_discrete.EulerAncestralDiscreteScheduler | diffusers.schedulers.scheduling_dpmsolver_multistep.DPMSolverMultistepScheduler) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py#L39) | |
| **Parametreler:** | |
| vqvae ([VQModel](/docs/diffusers/main/tr/api/models/vq#diffusers.VQModel)) : Görüntüleri gizil (latent) temsillere kodlamak ve bu temsillerden görüntülere çözmek için kullanılan vektör-kantize (VQ) model. | |
| unet ([UNet2DModel](/docs/diffusers/main/tr/api/models/unet2d#diffusers.UNet2DModel)) : Kodlanmış görüntüyü 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ü latenslerini gürültüden arındırmak için `unet` ile birlikte kullanılacak bir zamanlayıcı. [DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler), [LMSDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler), [EulerDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/euler#diffusers.EulerDiscreteScheduler), [EulerAncestralDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/euler_ancestral#diffusers.EulerAncestralDiscreteScheduler), [DPMSolverMultistepScheduler](/docs/diffusers/main/tr/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) veya [PNDMScheduler](/docs/diffusers/main/tr/api/schedulers/pndm#diffusers.PNDMScheduler) olabilir. | |
| Latent difüzyon kullanarak görüntü süper çözünürlüğü için bir 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.LDMSuperResolutionPipeline.__call__]] | |
| ```python | |
| __call__(image: typing.Union[torch.Tensor, PIL.Image.Image] = None, batch_size: int | None = 1, num_inference_steps: int | None = 100, eta: float | None = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, output_type: str | None = 'pil', return_dict: bool = True) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py#L71) | |
| **Parametreler:** | |
| image (`torch.Tensor` veya `PIL.Image.Image`) : `Image` veya sürecin başlangıç noktası olarak kullanılacak bir görüntü partisyonunu temsil eden tensör. | |
| batch_size (`int`, *isteğe bağlı*, varsayılan 1) : Üretilecek görsel sayısı. | |
| num_inference_steps (`int`, *isteğe bağlı*, varsayılan 100) : 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. | |
| eta (`float`, *isteğe bağlı*, 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. | |
| generator (`torch.Generator` veya `list[torch.Generator]`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html). | |
| 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 | |
| >>> import requests | |
| >>> from PIL import Image | |
| >>> from io import BytesIO | |
| >>> from diffusers import LDMSuperResolutionPipeline | |
| >>> import torch | |
| >>> # load model and scheduler | |
| >>> pipeline = LDMSuperResolutionPipeline.from_pretrained("CompVis/ldm-super-resolution-4x-openimages") | |
| >>> pipeline = pipeline.to("cuda") | |
| >>> # let's download an image | |
| >>> url = ( | |
| ... "https://user-images.githubusercontent.com/38061659/199705896-b48e17b8-b231-47cd-a270-4ffa5a93fa3e.png" | |
| ... ) | |
| >>> response = requests.get(url) | |
| >>> low_res_img = Image.open(BytesIO(response.content)).convert("RGB") | |
| >>> low_res_img = low_res_img.resize((128, 128)) | |
| >>> # run pipeline in inference (sample random noise and denoise) | |
| >>> upscaled_image = pipeline(low_res_img, num_inference_steps=100, eta=1).images[0] | |
| >>> # save image | |
| >>> upscaled_image.save("ldm_generated_image.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:
- 15.3 kB
- Xet hash:
- 8e4fca00a782aa7fae551d4180bbed60ac39ad683f5407735d572662b9693307
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.