# Stable Diffusion XL

  
  

Stable Diffusion XL (SDXL), Dustin Podell, Zion English, Kyle Lacey, Andreas Blattmann, Tim Dockhorn, Jonas Müller, Joe Penna ve Robin Rombach tarafından [SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis](https://huggingface.co/papers/2307.01952) makalesinde önerilmiştir.

Makalenin özeti şudur:

*Metinden görüntüye sentez için bir latent difüzyon modeli olan SDXL'yi sunuyoruz. Stable Diffusion'ın önceki sürümlerine kıyasla SDXL, üç kat daha büyük bir UNet omurgasından yararlanmaktadır: Model parametrelerindeki artış, SDXL ikinci bir metin kodlayıcı kullandığı için, esas olarak daha fazla dikkat bloğu ve daha büyük bir çapraz-dikkat bağlamından kaynaklanmaktadır. Birden fazla yeni koşullandırma şeması tasarladık ve SDXL'i birden çok en-boy oranında eğittik. Ayrıca, SDXL tarafından üretilen örneklerin görsel sadakatini, sonradan görüntüden görüntüye bir teknik kullanarak iyileştirmek için kullanılan bir rafine etme modeli tanıttık. SDXL'in, Stable Diffusion'ın önceki sürümlerine kıyasla performansının dramatik şekilde iyileştiğini ve siyah kutu, en son teknoloji görüntü üreticilerinin sonuçlarıyla rekabet edebilir sonuçlar elde ettiğini gösteriyoruz.*

## İpuçları

- DPM++ zamanlayıcı ile SDXL'in 50 adımdan az kullanılması, çözücünün sayısal olarak kararsız hale gelmesi nedeniyle [görsel artefaktlar](https://github.com/huggingface/diffusers/issues/5433) üretmesiyle bilinir. Bu sorunu çözmek için ODE/SDE çözücülerine yönelik öneriler içeren bu [PR](https://github.com/huggingface/diffusers/pull/5541)'a göz atın:
	- Görsel kalitesini iyileştirmek için `use_karras_sigmas=True` veya `lu_lambdas=True` olarak ayarlayın
	- DPM++2M veya DPM++2M SDE gibi eşit adım boyutlarına sahip bir çözücü kullanıyorsanız `euler_at_final=True` olarak ayarlayın
- Çoğu SDXL checkpoint, 1024x1024 görüntü boyutuyla en iyi sonucu verir. 768x768 ve 512x512 görüntü boyutları da desteklenir ancak sonuçlar o kadar iyi değildir. 512x512'nin altındaki boyutlar önerilmez ve [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) gibi varsayılan checkpoint'ler için muhtemelen önerilmeyecektir.
- SDXL, eğitiminde kullanılan her metin kodlayıcı için farklı bir istem (prompt) iletebilir. Hatta aynı istemin farklı bölümlerini metin kodlayıcılara iletebiliriz.
- SDXL çıktı görüntüleri, görüntüden görüntüye ayarında bir rafine etme modeli kullanılarak iyileştirilebilir.
- SDXL, modelin görüntü çözünürlüğü ve kırpma parametrelerine negatif olarak koşulmasını sağlamak için `negative_original_size`, `negative_crops_coords_top_left` ve `negative_target_size` parametrelerini sunar.

> [!TIP]
> Resmi temel ve rafine model kontrol noktaları için [Stability AI](https://huggingface.co/stabilityai) Hub kuruluşuna göz atın!

Aşağıdaki kütüphanelerin yüklü olduğundan emin olun.

```py
# uncomment to install the necessary libraries in Colab
#!pip install -q diffusers transformers accelerate invisible-watermark>=0.2.0
```

> [!WARNING]
> Üretilen görselleri tanımlamaya yardımcı olmak için [invisible-watermark](https://pypi.org/project/invisible-watermark/) kütüphanesinin yüklenmesini öneririz. invisible-watermark kütüphanesi yüklüyse, varsayılan olarak kullanılır. Filigranı devre dışı bırakmak için:
>
> ```py
> pipeline = StableDiffusionXLPipeline.from_pretrained(..., add_watermarker=False)
> ```

## Model kontrol noktalarını yükle

Model ağırlıkları Hub'da veya yerel olarak ayrı alt klasörlerde saklanabilir; bu durumda [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) metodunu kullanmalısınız:

```py
from diffusers import StableDiffusionXLPipeline, StableDiffusionXLImg2ImgPipeline
import torch

pipeline = StableDiffusionXLPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-refiner-1.0", dtype=torch.float16, use_safetensors=True, variant="fp16"
).to("cuda")
```

Ayrıca, Hub'dan veya yerel olarak tek dosya biçiminde (`.ckpt` veya `.safetensors`) saklanan bir model kontrol noktasını yüklemek için [from_single_file()](/docs/diffusers/main/tr/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) yöntemini de kullanabilirsiniz:

```py
from diffusers import StableDiffusionXLPipeline, StableDiffusionXLImg2ImgPipeline
import torch

pipeline = StableDiffusionXLPipeline.from_single_file(
    "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/sd_xl_base_1.0.safetensors",
    dtype=torch.float16
).to("cuda")  # or "mps", "xpu", "cpu"

refiner = StableDiffusionXLImg2ImgPipeline.from_single_file(
    "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/blob/main/sd_xl_refiner_1.0.safetensors", dtype=torch.float16
).to("cuda")
```

## Metinden görüntüye

Metinden görüntüye için bir metin istemi geçirin. Varsayılan olarak SDXL, en iyi sonuçlar için 1024x1024 boyutunda bir görüntü üretir. `height` ve `width` parametrelerini 768x768 veya 512x512 olarak ayarlamayı deneyebilirsiniz ancak 512x512'nin altındaki boyutların çalışması olası değildir.

```py
from diffusers import AutoPipelineForText2Image
import torch

pipeline_text2image = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipeline_text2image(prompt=prompt).images[0]
image
```

    

## Görselden görseli

Görselden görseli için SDXL, 768x768 ile 1024x1024 arasındaki görsel boyutlarında özellikle iyi çalışır. Başlangıç görselini ve görseli koşullandırmak için bir metin komutunu şu şekilde iletin:

```py
from diffusers import AutoPipelineForImage2Image
from diffusers.utils import load_image, make_image_grid

# use from_pipe to avoid consuming additional memory when loading a checkpoint
pipeline = AutoPipelineForImage2Image.from_pipe(pipeline_text2image).to("cuda")  # or "mps", "xpu", "cpu"

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/sdxl-text2img.png"
init_image = load_image(url)
prompt = "a dog catching a frisbee in the jungle"
image = pipeline(prompt, image=init_image, strength=0.8, guidance_scale=10.5).images[0]
make_image_grid([init_image, image], rows=1, cols=2)
```

    

## Inpainting

İşleme (inpainting) için, orijinal görüntüyü ve orijinal görüntüde değiştirmek istediğiniz bölgenin maskesini kullanmanız gerekir. Maskelenmiş alanın neyle değiştirileceğini açıklayan bir istem (prompt) oluşturun.

```py
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image, make_image_grid

# use from_pipe to avoid consuming additional memory when loading a checkpoint
pipeline = AutoPipelineForInpainting.from_pipe(pipeline_text2image).to("cuda")  # or "mps", "xpu", "cpu"

img_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/sdxl-text2img.png"
mask_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/sdxl-inpaint-mask.png"

init_image = load_image(img_url)
mask_image = load_image(mask_url)

prompt = "A deep sea diver floating"
image = pipeline(prompt=prompt, image=init_image, mask_image=mask_image, strength=0.85, guidance_scale=12.5).images[0]
make_image_grid([init_image, mask_image, image], rows=1, cols=3)
```

    

## Görsel kalitesini iyileştirin

SDXL, taban modelden daha yüksek kaliteli görüntüler üretmek için düşük gürültü aşamasındaki görüntülerdeki gürültüyü azaltmaya (denoising) özel bir [refiner model](https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0) içerir. Refiner'ı kullanmanın iki yolu vardır:

1. ince bir görüntü üretmek için temel ve rafine etme modellerini birlikte kullanın
2. baz model kullanarak bir görüntü üretin ve ardından refiner modelini kullanarak görüntüye daha fazla ayrıntı ekleyin (SDXL'nin orijinal olarak eğitildiği yöntem budur)

### Temel + iyileştirici model

Taban ve rafine etme modellerini birlikte kullanarak bir görüntü oluşturduğunuzda buna [*uzman gürültü azaltıcılar topluluğu*](https://research.nvidia.com/labs/dir/eDiff-I/) denir. Uzman gürültü azaltıcılar topluluğu yaklaşımı, taban modelinin çıktısını rafine etme modeline aktarmaya kıyasla daha az genel gürültü azaltma adımı gerektirdiğinden, çalıştırılması önemli ölçüde daha hızlı olmalıdır. Ancak, taban modelinin çıktısını inceleyemezsiniz çünkü hâlâ büyük miktarda gürültü içerir.

Uzman gürültü azaltıcıların bir ansambli olarak, temel model yüksek gürültülü difüzyon aşamasında uzman olarak görev yaparken, rafine edici model düşük gürültülü difüzyon aşamasında uzman olarak görev yapar. Temel ve rafine edici modelleri yükleyin:

```py
from diffusers import DiffusionPipeline
import torch

base = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

refiner = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-refiner-1.0",
    text_encoder_2=base.text_encoder_2,
    vae=base.vae,
    dtype=torch.float16,
    use_safetensors=True,
    variant="fp16",
).to("cuda")
```

Bu yaklaşımı kullanmak için, her modelin kendi aşamalarından geçmesi gereken timestep sayısını tanımlamanız gerekir. Temel model için bu, [`denoising_end`](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLPipeline.__call__.denoising_end) parametresiyle; refiner modeli için ise [`denoising_start`](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLImg2ImgPipeline.__call__.denoising_start) parametresiyle kontrol edilir.

> [!TIP]
> `denoising_end` ve `denoising_start` parametreleri 0 ile 1 arasında bir float olmalıdır. Bu parametreler, zamanlayıcı tarafından tanımlanan ayrık zaman adımlarının bir oranı olarak temsil edilir. `strength` parametresini de kullanıyorsanız, gürültü giderme adımlarının sayısı, modelin eğitildiği ayrık zaman adımları ve bildirilen kesirli kesme noktası tarafından belirlendiği için bu parametre yok sayılır.

Baz modelin ilk %80'ini, yani **yüksek gürültülü** zaman adımlarındaki gürültü azaltmayı yapması için `denoising_end=0.8` değerini ayarlayalım ve ince ayar modelinin son %20'sini, yani **düşük gürültülü** zaman adımlarındaki gürültü azaltmayı yapması için `denoising_start=0.8` değerini ayarlayalım. Baz modelin çıktısı bir PIL görüntüsü yerine **latent** uzayında olmalıdır.

```py
prompt = "A majestic lion jumping from a big stone at night"

image = base(
    prompt=prompt,
    num_inference_steps=40,
    denoising_end=0.8,
    output_type="latent",
).images
image = refiner(
    prompt=prompt,
    num_inference_steps=40,
    denoising_start=0.8,
    image=image,
).images[0]
image
```

  
    
    varsayılan temel model
  
  
    
    uzman gürültü azaltıcılar kümesi
  

Refiner modeli, [StableDiffusionXLInpaintPipeline](/docs/diffusers/main/tr/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLInpaintPipeline) içinde inpainting için de kullanılabilir:

```py
from diffusers import StableDiffusionXLInpaintPipeline
from diffusers.utils import load_image, make_image_grid
import torch

base = StableDiffusionXLInpaintPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

refiner = StableDiffusionXLInpaintPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-refiner-1.0",
    text_encoder_2=base.text_encoder_2,
    vae=base.vae,
    dtype=torch.float16,
    use_safetensors=True,
    variant="fp16",
).to("cuda")

img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"

init_image = load_image(img_url)
mask_image = load_image(mask_url)

prompt = "A majestic tiger sitting on a bench"
num_inference_steps = 75
high_noise_frac = 0.7

image = base(
    prompt=prompt,
    image=init_image,
    mask_image=mask_image,
    num_inference_steps=num_inference_steps,
    denoising_end=high_noise_frac,
    output_type="latent",
).images
image = refiner(
    prompt=prompt,
    image=image,
    mask_image=mask_image,
    num_inference_steps=num_inference_steps,
    denoising_start=high_noise_frac,
).images[0]
make_image_grid([init_image, mask_image, image.resize((512, 512))], rows=1, cols=3)
```

Bu uzman gürültü azaltıcılar topluluğu yöntemi, mevcut tüm zamanlayıcılar için iyi çalışır!

### Temel modelden rafine edici modele

SDXL, taban modelden tamamen gürültüden arındırılmış görüntüye ek yüksek kaliteli detaylar eklemek için görüntüden görüntüye ayarında refiner modelini kullanarak görüntü kalitesinde bir artış elde eder.

Taban ve rafine etme modellerini yükleyin:

```py
from diffusers import DiffusionPipeline
import torch

base = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

refiner = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-refiner-1.0",
    text_encoder_2=base.text_encoder_2,
    vae=base.vae,
    dtype=torch.float16,
    use_safetensors=True,
    variant="fp16",
).to("cuda")
```

> [!WARNING]
> SDXL refiner'ı farklı bir taban modelle kullanabilirsiniz. Örneğin, daha iyi istem uyumuyla görsel üretmek için [Hunyuan-DiT](../hunyuandit) veya [PixArt-Sigma](../pixart_sigma) hatlarını kullanabilirsiniz. Bir görsel ürettikten sonra, nihai üretim kalitesini artırmak için bu görseli SDXL refiner modeline iletebilirsiniz.

Taban modelden bir görüntü oluşturun ve model çıktısını **latent** uzayına ayarlayın:

```py
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"

image = base(prompt=prompt, output_type="latent").images[0]
```

Oluşturulan görüntüyü refiner modeline iletin:

```py
image = refiner(prompt=prompt, image=image[None, :]).images[0]
```

  
    
    temel model
  
  
    
    temel model + iyileştirici model
  

Inpainting için, temel ve iyileştirici modelleri [StableDiffusionXLInpaintPipeline](/docs/diffusers/main/tr/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLInpaintPipeline) içinde yükleyin, `denoising_end` ve `denoising_start` parametrelerini kaldırın ve iyileştirici için daha küçük bir çıkarım adımı sayısı seçin.

## Mikro-konumlama

SDXL eğitimi, *mikro-konumlama* olarak adlandırılan çeşitli ek koşullandırma tekniklerini içerir. Bunlar arasında orijinal görüntü boyutu, hedef görüntü boyutu ve kırpma parametreleri yer alır. Mikro-konumlama, çıkarım sırasında yüksek kaliteli ve ortalanmış görüntüler oluşturmak için kullanılabilir.

> [!TIP]
> Sınıflandırıcı-ücretsiz yönlendirme sayesinde hem mikro-konumlama hem de negatif mikro-konumlama parametrelerini kullanabilirsiniz. Bunlar [StableDiffusionXLPipeline](/docs/diffusers/main/tr/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLPipeline), [StableDiffusionXLImg2ImgPipeline](/docs/diffusers/main/tr/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLImg2ImgPipeline), [StableDiffusionXLInpaintPipeline](/docs/diffusers/main/tr/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLInpaintPipeline) ve [StableDiffusionXLControlNetPipeline](/docs/diffusers/main/tr/api/pipelines/controlnet_sdxl#diffusers.StableDiffusionXLControlNetPipeline) içinde kullanılabilir.

### Boyut koşullandırma

İki tür boyut koşullandırması vardır:

- [`original_size`](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLPipeline.__call__.original_size) koşullandırması, eğitim grubundaki büyütülmüş (upscale) görüntülerden gelir (toplam eğitim verisinin neredeyse %40'ını oluşturan daha küçük görüntüleri atmak israf olurdu). Bu sayede SDXL, yüksek çözünürlüklü görüntülerde büyütme artefaktlarının bulunmaması gerektiğini öğrenir. Çıkarım sırasında, orijinal görüntü çözünürlüğünü belirtmek için `original_size` parametresini kullanabilirsiniz. `(1024, 1024)` varsayılan değerini kullanmak, veri setindeki 1024x1024 görüntülere benzeyen, daha yüksek kaliteli görüntüler üretir. Daha düşük bir çözünürlük, örneğin `(256, 256)` seçerseniz, model yine 1024x1024 görüntüler üretir ancak bunlar veri setindeki düşük çözünürlüklü görüntülere (daha basit desenler, bulanıklık) benzer.

- [`target_size`](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLPipeline.__call__.target_size) koşullandırması, SDXL'in farklı görüntü en-boy oranlarını destekleyecek şekilde ince ayarlanmasından kaynaklanır. Çıkarım sırasında `(1024, 1024)` varsayılan değerini kullanırsanız, veri setindeki kare görüntülerin kompozisyonuna benzeyen bir görüntü elde edersiniz. `target_size` ve `original_size` için aynı değeri kullanmanızı öneririz, ancak diğer seçeneklerle deney yapmaktan çekinmeyin!

🤗 Diffusers, belirli görüntü çözünürlüklerinden kaçınmak için görüntü boyutuyla ilgili negatif koşullar belirtmenize de olanak tanır:

```py
from diffusers import StableDiffusionXLPipeline
import torch

pipe = StableDiffusionXLPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(
    prompt=prompt,
    negative_original_size=(512, 512),
    negative_target_size=(1024, 1024),
).images[0]
```

  
  (128, 128), (256, 256) ve (512, 512) çözünürlüklerine negatif olarak koşullandırılmış görüntüler.

### Kırpma koşullandırma

Önceki Stable Diffusion modelleri tarafından üretilen görüntüler bazen kırpılmış gibi görünebilir. Bunun nedeni, bir batch'teki tüm görüntülerin aynı boyutta olması için eğitim sırasında görüntülerin gerçekten kırpılmasıdır. SDXL, kırpma koordinatlarına koşullanarak, kırpma yapılmadığını - koordinatlar `(0, 0)` - genellikle ortalanmış konularla ve tam yüzlerle korelasyon gösterdiğini *öğrenir* (bu, 🤗 Diffusers'ta varsayılan değerdir). Ortalaması olmayan kompozisyonlar üretmek isterseniz farklı koordinatlarla deney yapabilirsiniz!

```py
from diffusers import StableDiffusionXLPipeline
import torch

pipeline = StableDiffusionXLPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipeline(prompt=prompt, crops_coords_top_left=(256, 0)).images[0]
image
```

    

Belirli kırpma parametrelerinden üretimden uzaklaşmak için negatif kırpma koordinatları da belirleyebilirsiniz:

```py
from diffusers import StableDiffusionXLPipeline
import torch

pipe = StableDiffusionXLPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(
    prompt=prompt,
    negative_original_size=(512, 512),
    negative_crops_coords_top_left=(0, 0),
    negative_target_size=(1024, 1024),
).images[0]
image
```

## Her metin kodlayıcı için farklı bir istem kullanın

SDXL iki metin kodlayıcı kullandığından, her bir metin kodlayıcıya farklı bir istem (prompt) iletilebilir ve bu [kaliteyi artırabilir](https://github.com/huggingface/diffusers/issues/4004#issuecomment-1627764201). Orijinal isteminizi `prompt` parametresine, ikinci istemi ise `prompt_2` parametresine iletin (negatif istemler kullanıyorsanız `negative_prompt` ve `negative_prompt_2` parametrelerini kullanın):

```py
from diffusers import StableDiffusionXLPipeline
import torch

pipeline = StableDiffusionXLPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, variant="fp16", use_safetensors=True
).to("cuda")  # or "mps", "xpu", "cpu"

# prompt is passed to OAI CLIP-ViT/L-14
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
# prompt_2 is passed to OpenCLIP-ViT/bigG-14
prompt_2 = "Van Gogh painting"
image = pipeline(prompt=prompt, prompt_2=prompt_2).images[0]
image
```

    

Çift metin kodlayıcılar, [metinsel ters çevirme](../../../using-diffusers/legacy_adapters#textual-inversion) kılavuzunda açıklandığı gibi ayrı olarak yüklenmesi gereken metinsel ters çevirme gömme değerlerini de destekler.

## Optimizasyonlar

SDXL büyük bir modeldir ve donanımınızda çalıştırabilmek için belleği optimize etmeniz gerekebilir. Bellek tasarrufu yapmanın ve çıkarımı hızlandırmanın bazı ipuçları aşağıda verilmiştir.

1. Bellek dışı (out-of-memory) hataları için modeli [enable_model_cpu_offload()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.enable_model_cpu_offload) ile CPU'ya taşıyın:

```diff
- base.to("cuda")  # or "mps", "xpu", "cpu"
- refiner.to("cuda")
+ base.enable_model_cpu_offload()
+ refiner.enable_model_cpu_offload()
```

2. ~%20 hızlanma için `torch.compile` kullanın (`torch>=2.0` gereklidir):

```diff
+ base.unet = torch.compile(base.unet, mode="reduce-overhead", fullgraph=True)
+ refiner.unet = torch.compile(refiner.unet, mode="reduce-overhead", fullgraph=True)
```

3. `torch<2.0` ise SDXL'i çalıştırmak için [xFormers](../../../optimization/attention_backends)'ı etkinleştirin:

```diff
+ base.enable_xformers_memory_efficient_attention()
+ refiner.enable_xformers_memory_efficient_attention()
```

## Kaynaklar

SDXL'de kullanılan [UNet2DConditionModel](/docs/diffusers/main/tr/api/models/unet2d-cond#diffusers.UNet2DConditionModel)'in minimal bir versiyonuyla deneyler yapmak ilginizi çekiyorsa, PyTorch ile yazılmış ve 🤗 Diffusers ile doğrudan uyumlu olan [minSDXL](https://github.com/cloneofsimo/minSDXL) uygulamasına göz atın.

## StableDiffusionXLPipeline[[diffusers.StableDiffusionXLPipeline]]

#### diffusers.StableDiffusionXLPipeline[[diffusers.StableDiffusionXLPipeline]]

```python
diffusers.StableDiffusionXLPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, image_encoder: CLIPVisionModelWithProjection = None, feature_extractor: CLIPImageProcessorPil = None, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py#L170)

**Parametreler:**

vae ([AutoencoderKL](/docs/diffusers/main/tr/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Görüntüleri gizil (latent) temsillere kodlamak ve bu temsillerden görüntülere çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.

text_encoder (`CLIPTextModel`) : Donmuş metin kodlayıcı. Stable Diffusion XL, [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel)'in metin bölümünü, özellikle de [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14) varyantını kullanır.

text_encoder_2 (` CLIPTextModelWithProjection`) : İkinci dondurulmuş metin kodlayıcı. Stable Diffusion XL, [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)'in metin ve havuz (pool) bölümünü, özellikle de [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k) varyantını kullanır.

tokenizer (`CLIPTokenizer`) : [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer) sınıfının tokenizer'ı.

tokenizer_2 (`CLIPTokenizer`) : [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer) sınıfının ikinci Tokenizer'ı.

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 koşullu U-Net mimarisi.

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.

force_zeros_for_empty_prompt (`bool`, *isteğe bağlı*, varsayılan `"True"`) : Negatif prompt gömme değerlerinin her zaman 0 olarak ayarlanıp ayarlanmayacağı. Ayrıca `stabilityai/stable-diffusion-xl-base-1-0` yapılandırmasına da bakın.

add_watermarker (`bool`, *isteğe bağlı*) : Çıktı görsellerini filigranlamak için [invisible_watermark kütüphanesinin](https://github.com/ShieldMnt/invisible-watermark/) kullanılıp kullanılmayacağını belirtir. Tanımlanmamışsa, paket yüklüyse varsayılan olarak True olur, aksi halde filigranlayıcı kullanılmaz.

Stable Diffusion XL kullanılarak 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ır. Kütüphanenin tüm pipeline'lar için uyguladığı genel yöntemler (indirme veya kaydetme, belirli bir cihazda çalıştırma vb.) için üst sınıf belgelendirmesine bakın.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:
- Metinsel tersine çevirme gömme yüklemek için [load_textual_inversion()](/docs/diffusers/main/tr/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion)
- `.ckpt` dosyalarını yüklemek için [from_single_file()](/docs/diffusers/main/tr/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file)
- LoRA ağırlıklarını yüklemek için [load_lora_weights()](/docs/diffusers/main/tr/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights)
- LoRA ağırlıklarını kaydetmek için [save_lora_weights()](/docs/diffusers/main/tr/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights)
- IP Adapter'ları yüklemek için [load_ip_adapter()](/docs/diffusers/main/tr/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter)

#### __call__[[diffusers.StableDiffusionXLPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_end: float | None = None, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, original_size: tuple[int, int] | None = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple[int, int] | None = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py#L823)

**Parametreler:**

prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine `prompt_embeds` geçirilmelidir.

prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : `tokenizer_2` ve `text_encoder_2`'ye gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda `prompt` kullanılır

height (`int`, *isteğe bağlı*, varsayılan olarak self.unet.config.sample_size * self.vae_scale_factor) : Üretilen görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ve düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış kontrol noktaları için 512 pikselin altındaki değerler iyi çalışmaz.

width (`int`, *isteğe bağlı*, varsayılan olarak self.unet.config.sample_size * self.vae_scale_factor) : Üretilen görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ve düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış kontrol noktaları için 512 pikselin altındaki değerler iyi çalışmaz.

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.

timesteps (`list[int]`, *isteğe bağlı*) : `set_timesteps` metodunda `timesteps` argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. Tanımlanmamışsa, `num_inference_steps` geçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır.

sigmas (`list[float]`, *isteğe bağlı*) : `set_timesteps` metodunda `sigmas` argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel sigmalar. Tanımlanmamışsa, `num_inference_steps` geçirildiğinde varsayılan davranış kullanılacaktır.

denoising_end (`float`, *isteğe bağlı*) : Belirtilirse, gürültü azaltma sürecinin tamamının, kasıtlı olarak erken sonlandırılmadan önce tamamlanacak kesrini (0.0 ile 1.0 arasında) belirler. Sonuç olarak, zamanlayıcı tarafından seçilen ayrık zaman adımları tarafından belirlenen önemli miktarda gürültüyü koruyan bir örnek döndürülür. [**Görüntü Çıktısını İnce Ayarlama**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output) bölümünde ayrıntılı olarak açıklanan "Mixture of Denoisers" çoklu boru hattı kurulumunun bir parçası olarak bu boru hattı kullanıldığında, denoising_end parametresinin ideal olarak kullanılması önerilir.

guidance_scale (`float`, *isteğe bağlı*, varsayılan 5.0) : [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598)'de tanımlandığı gibi yönlendirme ölçeği. `guidance_scale`, [Imagen Paper](https://huggingface.co/papers/2205.11487)'deki 2. denklemindeki `w` olarak tanımlanır. Yönlendirme ölçeği, `guidance_scale > 1` olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, genellikle daha düşük görüntü kalitesi pahasına, `prompt` ile yakından ilişkili görüntülerin üretilmesini teşvik eder.

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmazsa, bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır.

negative_prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için `tokenizer_2` ve `text_encoder_2`'ye gönderilecek negatif istem veya istemler. Tanımlanmamışsa, `negative_prompt` her iki metin kodlayıcıda da kullanılır

num_images_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek görsel sayısı.

eta (`float`, *isteğe bağlı*, varsayılan 0.0) : DDIM makalesindeki eta (η) parametresine karşılık gelir: https://huggingface.co/papers/2010.02502. Yalnızca [schedulers.DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler) için geçerlidir, diğerlerinde yok sayılır.

generator (`torch.Generator` veya `list[torch.Generator]`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir veya [torch üreteci(leri)](https://pytorch.org/docs/stable/generated/torch.Generator.html) listesi.

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ü latentler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele `generator` kullanılarak örneklem yoluyla bir latent tensörü oluşturulur.

prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulur.

pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulacaktır.

ip_adapter_image : (`PipelineImageInput`, *isteğe bağlı*): IP Adapters ile çalışmak için isteğe bağlı görüntü girişi.

ip_adapter_image_embeds (`list[torch.Tensor]`, *isteğe bağlı*) : IP-Adapter için önceden oluşturulmuş gömme vektörleri. IP-adapter sayısı ile aynı uzunlukta bir liste olmalıdır. Her öğe, `(batch_size, num_images, emb_dim)` biçiminde bir tensör olmalıdır. `do_classifier_free_guidance` `True` olarak ayarlandıysa negatif gömme vektörünü içermelidir. Sağlanmazsa, gömme vektörleri `ip_adapter_image` girdi argümanından hesaplanır.

output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen görüntünün çıktı biçimi. [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` veya `np.array` arasında seçim yapın.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` döndürülecek mi?

cross_attention_kwargs (`dict`, *isteğe bağlı*) : Belirtilirse, [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içinde `self.processor` altında tanımlanan `AttentionProcessor`'a iletilen bir kwargs sözlüğü.

guidance_rescale (`float`, *opsiyonel*, varsayılan 0.0) : [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) makalesinde önerilen guidance rescale faktörü. `guidance_scale`, [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) makalesindeki 16. denklemde `φ` olarak tanımlanmıştır. Guidance rescale faktörü, sıfır terminal SNR kullanıldığında aşırı pozlamayı düzeltmelidir.

original_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : `original_size`, `target_size` ile aynı değilse görüntü, küçültülmüş veya büyütülmüş gibi görünecektir. Belirtilmediği takdirde `original_size` varsayılan olarak `(height, width)` değerini alır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

crops_coords_top_left (`tuple[int]`, *isteğe bağlı*, varsayılan (0, 0)) : `crops_coords_top_left`, `crops_coords_top_left` konumundan aşağıya doğru "kırpılmış" gibi görünen bir görüntü oluşturmak için kullanılabilir. Genellikle iyi merkezlenmiş, uygun görüntüler `crops_coords_top_left` değerini (0, 0) olarak ayarlayarak elde edilir. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki 2.2 bölümünde açıklanan SDXL mikro-konumlama (micro-conditioning) bileşenidir.

target_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Çoğu durumda, `target_size` üretilen görüntünün istenen yükseklik ve genişliğine ayarlanmalıdır. Belirtilmezse varsayılan olarak `(height, width)` olur. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

negative_original_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Belirli bir görüntü çözünürlüğüne dayalı olarak üretim sürecini olumsuz koşullandırmak için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklanan SDXL mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun başlığına bakın: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`, *isteğe bağlı*, varsayılan (0, 0)) : Belirli bir kırpma koordinatına dayalı olarak üretim sürecini negatif olarak koşullandırmak için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun konusuna bakın: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Hedef bir görüntü çözünürlüğüne dayalı olarak üretim sürecini olumsuz koşullandırmak için kullanılır. Çoğu durumda `target_size` ile aynı olmalıdır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun başlığına bakın: https://github.com/huggingface/diffusers/issues/4208.

clip_skip (`int`, *isteğe bağlı*) : Prompt gömme hesaplamaları sırasında CLIP'ten atlanacak katman sayısı. 1 değeri, prompt gömme hesaplamaları için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

callback_on_step_end (`Callable`, `PipelineCallback`, `MultiPipelineCallbacks`, *opsiyonel*) : Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, `PipelineCallback` veya `MultiPipelineCallbacks` alt sınıfı olan bir fonksiyon. Aşağıdaki argümanlarla çağrılır: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs`, `callback_on_step_end_tensor_inputs` tarafından belirtildiği üzere tüm tensörlerin listesini içerecektir.

callback_on_step_end_tensor_inputs (`list`, *isteğe bağlı*) : `callback_on_step_end` işlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler, `callback_kwargs` argümanı olarak geçirilir. Yalnızca pipeline sınıfınızın `._callback_tensor_inputs` özniteliğinde listelenen değişkenleri dahil edebilirsiniz.

**Dönüş:** `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` veya `tuple`

`return_dict` True ise `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput`, aksi halde `tuple`. Tuple döndürüldüğünde, ilk öğe üretilen görsellerin listesidir.

Üretim için pipeline çağrıldığında tetiklenen işlev.

Örnekler:
```py
>>> import torch
>>> from diffusers import StableDiffusionXLPipeline

>>> pipe = StableDiffusionXLPipeline.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
... )
>>> pipe = pipe.to("cuda")

>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionXLPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py#L283)

**Parametreler:**

prompt (`str` veya `list[str]`, *isteğe bağlı*) : kodlanacak istem

prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : `tokenizer_2` ve `text_encoder_2`'ye gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda `prompt` kullanılır

device : (`torch.device`): torch cihazı

num_images_per_prompt (`int`) : her istem için oluşturulacak görsel sayısı

do_classifier_free_guidance (`bool`) : sınıflandırıcı serbest yönlendirmenin (classifier free guidance) kullanılıp kullanılmayacağı

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmazsa, bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır.

negative_prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için `tokenizer_2` ve `text_encoder_2`'ye gönderilecek negatif istem veya istemler. Tanımlanmamışsa, `negative_prompt` her iki metin kodlayıcıda da kullanılır

prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulur.

pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulacaktır.

lora_scale (`float`, *isteğe bağlı*) : LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak bir lora ölçeği.

clip_skip (`int`, *isteğe bağlı*) : Prompt gömme hesaplamaları sırasında CLIP'ten atlanacak katman sayısı. 1 değeri, prompt gömme hesaplamaları için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

İsteği metin kodlayıcı gizli durumlarına kodlar.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionXLPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py#L758)

**Parametreler:**

w (`torch.Tensor`) : Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretir; bu vektörler daha sonra zaman adımları gömmelerini zenginleştirmek için kullanılır.

embedding_dim (`int`, *isteğe bağlı*, varsayılan 512) : Üretilecek gömme boyutu.

dtype (`torch.dtype`, *isteğe bağlı*, varsayılan `torch.float32`) : Üretilen gömme (embedding) verilerinin veri türü.

**Dönüş:** `torch.Tensor`

`(len(w), embedding_dim)` biçiminde gömme vektörleri.

https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298 adresine bakın

## StableDiffusionXLImg2ImgPipeline[[diffusers.StableDiffusionXLImg2ImgPipeline]]

#### diffusers.StableDiffusionXLImg2ImgPipeline[[diffusers.StableDiffusionXLImg2ImgPipeline]]

```python
diffusers.StableDiffusionXLImg2ImgPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, image_encoder: CLIPVisionModelWithProjection = None, feature_extractor: CLIPImageProcessorPil = None, requires_aesthetics_score: bool = False, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py#L188)

**Parametreler:**

vae ([AutoencoderKL](/docs/diffusers/main/tr/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Görüntüleri gizil (latent) temsillere kodlamak ve bu temsillerden görüntülere çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.

text_encoder (`CLIPTextModel`) : Donmuş metin kodlayıcı. Stable Diffusion XL, [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel)'in metin bölümünü, özellikle de [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14) varyantını kullanır.

text_encoder_2 (` CLIPTextModelWithProjection`) : İkinci dondurulmuş metin kodlayıcı. Stable Diffusion XL, [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)'in metin ve havuz (pool) bölümünü, özellikle de [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k) varyantını kullanır.

tokenizer (`CLIPTokenizer`) : [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer) sınıfının tokenizer'ı.

tokenizer_2 (`CLIPTokenizer`) : [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer) sınıfının ikinci Tokenizer'ı.

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 koşullu U-Net mimarisi.

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.

requires_aesthetics_score (`bool`, *isteğe bağlı*, varsayılan `"False"`) : `unet`'in çıkarım sırasında `aesthetic_score` koşulunun geçirilmesini gerektirip gerektirmediğini belirtir. Ayrıca `stabilityai/stable-diffusion-xl-refiner-1-0` yapılandırmasına da bakın.

force_zeros_for_empty_prompt (`bool`, *isteğe bağlı*, varsayılan `"True"`) : Negatif prompt gömme değerlerinin her zaman 0 olarak ayarlanıp ayarlanmayacağı. Ayrıca `stabilityai/stable-diffusion-xl-base-1-0` yapılandırmasına da bakın.

add_watermarker (`bool`, *isteğe bağlı*) : Çıktı görsellerini filigranlamak için [invisible_watermark kütüphanesinin](https://github.com/ShieldMnt/invisible-watermark/) kullanılıp kullanılmayacağını belirtir. Tanımlanmamışsa, paket yüklüyse varsayılan olarak True olur, aksi halde filigranlayıcı kullanılmaz.

Stable Diffusion XL kullanılarak 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ır. Kütüphanenin tüm pipeline'lar için uyguladığı genel yöntemler (indirme veya kaydetme, belirli bir cihazda çalıştırma vb.) için üst sınıf belgelendirmesine bakın.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:
- Metinsel tersine çevirme gömme yüklemek için [load_textual_inversion()](/docs/diffusers/main/tr/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion)
- `.ckpt` dosyalarını yüklemek için [from_single_file()](/docs/diffusers/main/tr/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file)
- LoRA ağırlıklarını yüklemek için [load_lora_weights()](/docs/diffusers/main/tr/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights)
- LoRA ağırlıklarını kaydetmek için [save_lora_weights()](/docs/diffusers/main/tr/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights)
- IP Adapter'ları yüklemek için [load_ip_adapter()](/docs/diffusers/main/tr/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter)

#### __call__[[diffusers.StableDiffusionXLImg2ImgPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, strength: float = 0.3, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_start: float | None = None, denoising_end: float | None = None, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, original_size: tuple = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, aesthetic_score: float = 6.0, negative_aesthetic_score: float = 2.5, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py#L975)

**Parametreler:**

prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine `prompt_embeds` geçirilmelidir.

prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : `tokenizer_2` ve `text_encoder_2`'ye gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda `prompt` kullanılır

image (`torch.Tensor` veya `PIL.Image.Image` veya `np.ndarray` veya `list[torch.Tensor]` veya `list[PIL.Image.Image]` veya `list[np.ndarray]`) : Pipeline ile değiştirilecek görüntü(ler).

strength (`float`, *opsiyonel*, varsayılan 0.3) : Kavramsal olarak, referans `image`'in ne kadar dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır. `image` bir başlangıç noktası olarak kullanılacak ve `strength` değeri arttıkça ona daha fazla gürültü eklenecektir. Gürültü azaltma adımlarının sayısı, başlangıçta eklenen gürültü miktarına bağlıdır. `strength` 1 olduğunda, eklenen gürültü maksimum olacak ve gürültü azaltma süreci, `num_inference_steps`'de belirtilen tam yineleme sayısı boyunca çalışacaktır. Dolayısıyla 1 değeri, `image`'i temelde yok sayar. `denoising_start`'in bir tamsayı olarak tanımlandığı durumlarda, `strength` değerinin yoksayılacağını unutmayın.

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.

timesteps (`list[int]`, *isteğe bağlı*) : `set_timesteps` metodunda `timesteps` argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. Tanımlanmamışsa, `num_inference_steps` geçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır.

sigmas (`list[float]`, *isteğe bağlı*) : `set_timesteps` metodunda `sigmas` argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel sigmalar. Tanımlanmamışsa, `num_inference_steps` geçirildiğinde varsayılan davranış kullanılacaktır.

denoising_start (`float`, *isteğe bağlı*) : Belirtilirse, gürültü azaltma sürecinin başlatılmadan önce atlanacak oranını (0.0 ile 1.0 arasında) gösterir. Sonuç olarak, gürültü azaltma sürecinin ilk kısmı atlanır ve geçirilen `image`'in kısmen gürültüsü azaltılmış bir görüntü olduğu varsayılır. Dikkat edin, bu parametre belirtildiğinde strength yok sayılır. `denoising_start` parametresi, [**Görüntü Kalitesini İyileştirme**](https://huggingface.co/docs/diffusers/using-diffusers/sdxl#refine-image-quality) bölümünde ayrıntılandırıldığı gibi, bu hattın "Mixture of Denoisers" çoklu hat kurulumuna entegre edildiğinde özellikle faydalıdır.

denoising_end (`float`, *isteğe bağlı*) : Belirtilirse, gürültü azaltma sürecinin tamamının, kasıtlı olarak erken sonlandırılmadan önce tamamlanacak kesrini (0.0 ile 1.0 arasında) belirler. Sonuç olarak, döndürülen örnek hâlâ önemli miktarda gürültü içerecektir (yaklaşık olarak zaman adımlarının son %20'si hâlâ gerekli) ve zamanlayıcının yalnızca son %20'sini gürültüden arındırması için `denoising_start` değeri 0.8 olarak ayarlanmış bir ardıl boru hattıyla gürültüden arındırılmalıdır. [**Görsel Kalitesini İyileştirme**](https://huggingface.co/docs/diffusers/using-diffusers/sdxl#refine-image-quality) bölümünde ayrıntılı olarak açıklanan "Mixture of Denoisers" çoklu boru hattı kurulumunun bir parçası oluşturduğunda, denoising_end parametresi ideal olarak bu durumda kullanılmalıdır.

guidance_scale (`float`, *isteğe bağlı*, varsayılan 7.5) : [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598)'de tanımlandığı gibi yönlendirme ölçeği. `guidance_scale`, [Imagen Paper](https://huggingface.co/papers/2205.11487)'deki 2. denklemindeki `w` olarak tanımlanır. Yönlendirme ölçeği, `guidance_scale > 1` olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, genellikle daha düşük görüntü kalitesi pahasına, `prompt` ile yakından ilişkili görüntülerin üretilmesini teşvik eder.

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmazsa, bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır.

negative_prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için `tokenizer_2` ve `text_encoder_2`'ye gönderilecek negatif istem veya istemler. Tanımlanmamışsa, `negative_prompt` her iki metin kodlayıcıda da kullanılır

num_images_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek görsel sayısı.

eta (`float`, *isteğe bağlı*, varsayılan 0.0) : DDIM makalesindeki eta (η) parametresine karşılık gelir: https://huggingface.co/papers/2010.02502. Yalnızca [schedulers.DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler) için geçerlidir, diğerlerinde yok sayılır.

generator (`torch.Generator` veya `list[torch.Generator]`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir veya [torch üreteci(leri)](https://pytorch.org/docs/stable/generated/torch.Generator.html) listesi.

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ü latentler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele `generator` kullanılarak örneklem yoluyla bir latent tensörü oluşturulur.

prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulur.

pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulacaktır.

ip_adapter_image : (`PipelineImageInput`, *isteğe bağlı*): IP Adapters ile çalışmak için isteğe bağlı görüntü girişi.

ip_adapter_image_embeds (`list[torch.Tensor]`, *isteğe bağlı*) : IP-Adapter için önceden oluşturulmuş gömme vektörleri. IP-adapter sayısı ile aynı uzunlukta bir liste olmalıdır. Her öğe, `(batch_size, num_images, emb_dim)` biçiminde bir tensör olmalıdır. `do_classifier_free_guidance` `True` olarak ayarlandıysa negatif gömme vektörünü içermelidir. Sağlanmazsa, gömme vektörleri `ip_adapter_image` girdi argümanından hesaplanır.

output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen görüntünün çıktı biçimi. [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` veya `np.array` arasında seçim yapın.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` döndürülecek mi?

cross_attention_kwargs (`dict`, *isteğe bağlı*) : Belirtilirse, [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içinde `self.processor` altında tanımlanan `AttentionProcessor`'a iletilen bir kwargs sözlüğü.

guidance_rescale (`float`, *opsiyonel*, varsayılan 0.0) : [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) makalesinde önerilen guidance rescale faktörü. `guidance_scale`, [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) makalesindeki 16. denklemde `φ` olarak tanımlanmıştır. Guidance rescale faktörü, sıfır terminal SNR kullanıldığında aşırı pozlamayı düzeltmelidir.

original_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : `original_size`, `target_size` ile aynı değilse görüntü, küçültülmüş veya büyütülmüş gibi görünecektir. Belirtilmediği takdirde `original_size` varsayılan olarak `(height, width)` değerini alır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

crops_coords_top_left (`tuple[int]`, *isteğe bağlı*, varsayılan (0, 0)) : `crops_coords_top_left`, `crops_coords_top_left` konumundan aşağıya doğru "kırpılmış" gibi görünen bir görüntü oluşturmak için kullanılabilir. Genellikle iyi merkezlenmiş, uygun görüntüler `crops_coords_top_left` değerini (0, 0) olarak ayarlayarak elde edilir. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki 2.2 bölümünde açıklanan SDXL mikro-konumlama (micro-conditioning) bileşenidir.

target_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Çoğu durumda, `target_size` üretilen görüntünün istenen yükseklik ve genişliğine ayarlanmalıdır. Belirtilmezse varsayılan olarak `(height, width)` olur. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

negative_original_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Belirli bir görüntü çözünürlüğüne dayalı olarak üretim sürecini olumsuz koşullandırmak için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklanan SDXL mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun başlığına bakın: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`, *isteğe bağlı*, varsayılan (0, 0)) : Belirli bir kırpma koordinatına dayalı olarak üretim sürecini negatif olarak koşullandırmak için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun konusuna bakın: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Hedef bir görüntü çözünürlüğüne dayalı olarak üretim sürecini olumsuz koşullandırmak için kullanılır. Çoğu durumda `target_size` ile aynı olmalıdır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun başlığına bakın: https://github.com/huggingface/diffusers/issues/4208.

aesthetic_score (`float`, *isteğe bağlı*, varsayılan 6.0) : Pozitif metin koşulunu etkileyerek üretilen görüntünün estetik puanını simüle etmek için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

negative_aesthetic_score (`float`, *isteğe bağlı*, varsayılan 2.5) : [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir. Negatif metin koşulunu etkileyerek üretilen görüntünün estetik puanını simüle etmek için kullanılabilir.

clip_skip (`int`, *isteğe bağlı*) : Prompt gömme hesaplamaları sırasında CLIP'ten atlanacak katman sayısı. 1 değeri, prompt gömme hesaplamaları için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

callback_on_step_end (`Callable`, `PipelineCallback`, `MultiPipelineCallbacks`, *opsiyonel*) : Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, `PipelineCallback` veya `MultiPipelineCallbacks` alt sınıfı olan bir fonksiyon. Aşağıdaki argümanlarla çağrılır: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs`, `callback_on_step_end_tensor_inputs` tarafından belirtildiği üzere tüm tensörlerin listesini içerecektir.

callback_on_step_end_tensor_inputs (`list`, *isteğe bağlı*) : `callback_on_step_end` işlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler, `callback_kwargs` argümanı olarak geçirilir. Yalnızca pipeline sınıfınızın `._callback_tensor_inputs` özniteliğinde listelenen değişkenleri dahil edebilirsiniz.

**Dönüş:** `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` veya `tuple`

`return_dict` True ise `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput`, aksi halde bir `tuple döner. Tuple döndürüldüğünde, ilk öğe üretilen görsellerin listesidir.

Üretim için pipeline çağrıldığında tetiklenen işlev.

Örnekler:
```py
>>> import torch
>>> from diffusers import StableDiffusionXLImg2ImgPipeline
>>> from diffusers.utils import load_image

>>> pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(
...     "stabilityai/stable-diffusion-xl-refiner-1.0", torch_dtype=torch.float16
... )
>>> pipe = pipe.to("cuda")
>>> url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"

>>> init_image = load_image(url).convert("RGB")
>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt, image=init_image).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionXLImg2ImgPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py#L301)

**Parametreler:**

prompt (`str` veya `list[str]`, *isteğe bağlı*) : kodlanacak istem

prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : `tokenizer_2` ve `text_encoder_2`'ye gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda `prompt` kullanılır

device : (`torch.device`): torch cihazı

num_images_per_prompt (`int`) : her istem için oluşturulacak görsel sayısı

do_classifier_free_guidance (`bool`) : sınıflandırıcı serbest yönlendirmenin (classifier free guidance) kullanılıp kullanılmayacağı

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmazsa, bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır.

negative_prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için `tokenizer_2` ve `text_encoder_2`'ye gönderilecek negatif istem veya istemler. Tanımlanmamışsa, `negative_prompt` her iki metin kodlayıcıda da kullanılır

prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulur.

pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulacaktır.

lora_scale (`float`, *isteğe bağlı*) : LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak bir lora ölçeği.

clip_skip (`int`, *isteğe bağlı*) : Prompt gömme hesaplamaları sırasında CLIP'ten atlanacak katman sayısı. 1 değeri, prompt gömme hesaplamaları için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

İsteği metin kodlayıcı gizli durumlarına kodlar.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionXLImg2ImgPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py#L906)

**Parametreler:**

w (`torch.Tensor`) : Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretir; bu vektörler daha sonra zaman adımları gömmelerini zenginleştirmek için kullanılır.

embedding_dim (`int`, *isteğe bağlı*, varsayılan 512) : Üretilecek gömme boyutu.

dtype (`torch.dtype`, *isteğe bağlı*, varsayılan `torch.float32`) : Üretilen gömme (embedding) verilerinin veri türü.

**Dönüş:** `torch.Tensor`

`(len(w), embedding_dim)` biçiminde gömme vektörleri.

https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298 adresine bakın

## StableDiffusionXLInpaintPipeline[[diffusers.StableDiffusionXLInpaintPipeline]]

#### diffusers.StableDiffusionXLInpaintPipeline[[diffusers.StableDiffusionXLInpaintPipeline]]

```python
diffusers.StableDiffusionXLInpaintPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, image_encoder: CLIPVisionModelWithProjection = None, feature_extractor: CLIPImageProcessorPil = None, requires_aesthetics_score: bool = False, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py#L215)

**Parametreler:**

vae ([AutoencoderKL](/docs/diffusers/main/tr/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Görüntüleri gizil (latent) temsillere kodlamak ve bu temsillerden görüntülere çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.

text_encoder (`CLIPTextModel`) : Donmuş metin kodlayıcı. Stable Diffusion XL, [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel)'in metin bölümünü, özellikle de [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14) varyantını kullanır.

text_encoder_2 (` CLIPTextModelWithProjection`) : İkinci dondurulmuş metin kodlayıcı. Stable Diffusion XL, [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)'in metin ve havuz (pool) bölümünü, özellikle de [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k) varyantını kullanır.

tokenizer (`CLIPTokenizer`) : [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer) sınıfının tokenizer'ı.

tokenizer_2 (`CLIPTokenizer`) : [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer) sınıfının ikinci Tokenizer'ı.

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 koşullu U-Net mimarisi.

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.

requires_aesthetics_score (`bool`, *isteğe bağlı*, varsayılan `"False"`) : `unet`'in çıkarım sırasında aesthetic_score koşulunun geçirilmesini gerektirip gerektirmediğini belirtir. Ayrıca `stabilityai/stable-diffusion-xl-refiner-1-0` yapılandırmasına da bakın.

force_zeros_for_empty_prompt (`bool`, *isteğe bağlı*, varsayılan `"True"`) : Negatif prompt gömme değerlerinin her zaman 0 olarak ayarlanıp ayarlanmayacağı. Ayrıca `stabilityai/stable-diffusion-xl-base-1-0` yapılandırmasına da bakın.

add_watermarker (`bool`, *isteğe bağlı*) : Çıktı görsellerini filigranlamak için [invisible_watermark kütüphanesinin](https://github.com/ShieldMnt/invisible-watermark/) kullanılıp kullanılmayacağını belirtir. Tanımlanmamışsa, paket yüklüyse varsayılan olarak True olur, aksi halde filigranlayıcı kullanılmaz.

Stable Diffusion XL kullanılarak 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ır. Kütüphanenin tüm pipeline'lar için uyguladığı genel yöntemler (indirme veya kaydetme, belirli bir cihazda çalıştırma vb.) için üst sınıf belgelendirmesine bakın.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:
- Metinsel tersine çevirme gömme yüklemek için [load_textual_inversion()](/docs/diffusers/main/tr/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion)
- `.ckpt` dosyalarını yüklemek için [from_single_file()](/docs/diffusers/main/tr/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file)
- LoRA ağırlıklarını yüklemek için [load_lora_weights()](/docs/diffusers/main/tr/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights)
- LoRA ağırlıklarını kaydetmek için [save_lora_weights()](/docs/diffusers/main/tr/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights)
- IP Adapter'ları yüklemek için [load_ip_adapter()](/docs/diffusers/main/tr/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter)

#### __call__[[diffusers.StableDiffusionXLInpaintPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, mask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, masked_image_latents: Tensor = None, height: int | None = None, width: int | None = None, padding_mask_crop: int | None = None, strength: float = 0.9999, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_start: float | None = None, denoising_end: float | None = None, guidance_scale: float = 7.5, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, original_size: tuple = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, aesthetic_score: float = 6.0, negative_aesthetic_score: float = 2.5, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py#L1080)

**Parametreler:**

prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine `prompt_embeds` geçirilmelidir.

prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : `tokenizer_2` ve `text_encoder_2`'ye gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda `prompt` kullanılır

image (`PIL.Image.Image`) : `Image`, veya inpainting yapılacak bir görüntü partisini temsil eden tensör, *yani* görüntünün bazı kısımları `mask_image` ile maskeleme altına alınır ve `prompt`’a göre yeniden boyanır.

mask_image (`PIL.Image.Image`) : `Image` veya bir görüntü grubunu temsil eden tensör, `image` için maske olarak kullanılacak. Maske içindeki beyaz pikseller yeniden boyanacak, siyah pikseller ise korunacaktır. `mask_image` bir PIL görüntüsü ise, kullanılmadan önce tek kanala (parlaklık) dönüştürülür. Tensör ise 3 yerine tek renk kanalı (L) içermelidir; bu durumda beklenen şekil `(B, H, W, 1)` olur.

masked_image_latents (`torch.Tensor`, *isteğe bağlı*) : Maskelemiş görüntünün önceden kodlanmış gizli değişkeni (inpainting için).

height (`int`, *isteğe bağlı*, varsayılan olarak self.unet.config.sample_size * self.vae_scale_factor) : Üretilen görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ve düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış kontrol noktaları için 512 pikselin altındaki değerler iyi çalışmaz.

width (`int`, *isteğe bağlı*, varsayılan olarak self.unet.config.sample_size * self.vae_scale_factor) : Üretilen görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ve düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış kontrol noktaları için 512 pikselin altındaki değerler iyi çalışmaz.

padding_mask_crop (`int`, *isteğe bağlı*, varsayılan `None`) : Görüntü ve maskelemeye uygulanacak kırpmanın kenar boşluğu boyutu. `None` ise, görüntü ve mask_image'a kırpma uygulanmaz. `padding_mask_crop` `None` değilse, önce görüntü ile aynı en-boy oranına sahip ve tüm maskelenmiş alanı içeren dikdörtgen bir bölge bulunur, ardından bu alan `padding_mask_crop` değerine göre genişletilir. Ardından görüntü ve mask_image, inpainting için orijinal görüntü boyutuna yeniden boyutlandırılmadan önce genişletilen alana göre kırpılır. Bu, maskelenmiş alanın küçükken görüntünün büyük olması ve inpainting için alakasız bilgiler (örneğin arka plan) içermesi durumunda faydalıdır.

strength (`float`, *opsiyonel*, varsayılan 0.9999) : Kavramsal olarak, referans `image`'in maskelenmiş kısmının ne kadar dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır. `image` bir başlangıç noktası olarak kullanılacak ve `strength` değeri arttıkça ona daha fazla gürültü eklenecektir. Gürültü azaltma adımlarının sayısı, başlangıçta eklenen gürültü miktarına bağlıdır. `strength` 1 olduğunda, eklenen gürültü maksimum olacak ve gürültü azaltma süreci, `num_inference_steps`'de belirtilen tam yineleme sayısı kadar çalışacaktır. Dolayısıyla 1 değeri, referans `image`'in maskelenmiş kısmını fiilen yok sayar. `denoising_start`'in bir tamsayı olarak tanımlandığı durumlarda, `strength` değerinin yoksayılacağını unutmayın.

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.

timesteps (`list[int]`, *isteğe bağlı*) : `set_timesteps` metodunda `timesteps` argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. Tanımlanmamışsa, `num_inference_steps` geçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır.

sigmas (`list[float]`, *isteğe bağlı*) : `set_timesteps` metodunda `sigmas` argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel sigmalar. Tanımlanmamışsa, `num_inference_steps` geçirildiğinde varsayılan davranış kullanılacaktır.

denoising_start (`float`, *isteğe bağlı*) : Belirtilirse, gürültü azaltma sürecinin başlatılmadan önce atlanacak oranını (0.0 ile 1.0 arasında) gösterir. Sonuç olarak, gürültü azaltma sürecinin ilk kısmı atlanır ve geçirilen `image`'in kısmen gürültüsü azaltılmış bir görüntü olduğu varsayılır. Dikkat edin, bu parametre belirtildiğinde strength yok sayılır. `denoising_start` parametresi, [**Görüntü Çıktısını İnce Ayarlama**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output) bölümünde ayrıntılandırıldığı gibi, bu hattın "Mixture of Denoisers" çoklu hat kurulumuna entegre edildiğinde özellikle faydalıdır.

denoising_end (`float`, *isteğe bağlı*) : Belirtilirse, gürültü azaltma sürecinin tamamının, kasıtlı olarak erken sonlandırılmadan önce tamamlanacak kesrini (0.0 ile 1.0 arasında) belirler. Sonuç olarak, döndürülen örnek hâlâ önemli miktarda gürültü içerecektir (yaklaşık olarak zaman adımlarının son %20'si hâlâ gerekli) ve zamanlayıcının yalnızca son %20'sini gürültüden arındırması için `denoising_start` değeri 0.8 olarak ayarlanmış bir ardıl boru hattıyla gürültüden arındırılmalıdır. [**Görüntü Çıktısını İnce Ayarlama**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output) bölümünde ayrıntılı olarak açıklanan "Mixture of Denoisers" çoklu boru hattı kurulumunun bir parçası oluşturduğunda, denoising_end parametresi ideal olarak bu durumda kullanılmalıdır.

guidance_scale (`float`, *isteğe bağlı*, varsayılan 7.5) : [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598)'de tanımlandığı gibi yönlendirme ölçeği. `guidance_scale`, [Imagen Paper](https://huggingface.co/papers/2205.11487)'deki 2. denklemindeki `w` olarak tanımlanır. Yönlendirme ölçeği, `guidance_scale > 1` olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, genellikle daha düşük görüntü kalitesi pahasına, `prompt` ile yakından ilişkili görüntülerin üretilmesini teşvik eder.

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmazsa, bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır.

negative_prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için `tokenizer_2` ve `text_encoder_2`'ye gönderilecek negatif istem veya istemler. Tanımlanmamışsa, `negative_prompt` her iki metin kodlayıcıda da kullanılır

prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulur.

pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulacaktır.

ip_adapter_image : (`PipelineImageInput`, *isteğe bağlı*): IP Adapters ile çalışmak için isteğe bağlı görüntü girişi.

ip_adapter_image_embeds (`list[torch.Tensor]`, *isteğe bağlı*) : IP-Adapter için önceden oluşturulmuş gömme vektörleri. IP-adapter sayısı ile aynı uzunlukta bir liste olmalıdır. Her öğe, `(batch_size, num_images, emb_dim)` biçiminde bir tensör olmalıdır. `do_classifier_free_guidance` `True` olarak ayarlandıysa negatif gömme vektörünü içermelidir. Sağlanmazsa, gömme vektörleri `ip_adapter_image` girdi argümanından hesaplanır.

num_images_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek görsel sayısı.

eta (`float`, *isteğe bağlı*, varsayılan 0.0) : DDIM makalesindeki eta (η) parametresine karşılık gelir: https://huggingface.co/papers/2010.02502. Yalnızca [schedulers.DDIMScheduler](/docs/diffusers/main/tr/api/schedulers/ddim#diffusers.DDIMScheduler) için geçerlidir, diğerlerinde yok sayılır.

generator (`torch.Generator`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir veya bir [torch üreteci](https://pytorch.org/docs/stable/generated/torch.Generator.html) listesi.

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ü latentler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele `generator` kullanılarak örneklem yoluyla bir latent tensörü oluşturulur.

output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen görüntünün çıktı biçimi. [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` veya `np.array` arasında seçim yapın.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [StableDiffusionPipelineOutput](/docs/diffusers/main/tr/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) döndürülüp döndürülmemesi.

cross_attention_kwargs (`dict`, *isteğe bağlı*) : Belirtilirse, [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içinde `self.processor` altında tanımlanan `AttentionProcessor`'a iletilen bir kwargs sözlüğü.

original_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : `original_size`, `target_size` ile aynı değilse görüntü, küçültülmüş veya büyütülmüş gibi görünecektir. Belirtilmediği takdirde `original_size` varsayılan olarak `(height, width)` değerini alır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

crops_coords_top_left (`tuple[int]`, *isteğe bağlı*, varsayılan (0, 0)) : `crops_coords_top_left`, `crops_coords_top_left` konumundan aşağıya doğru "kırpılmış" gibi görünen bir görüntü oluşturmak için kullanılabilir. Genellikle iyi merkezlenmiş, uygun görüntüler `crops_coords_top_left` değerini (0, 0) olarak ayarlayarak elde edilir. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki 2.2 bölümünde açıklanan SDXL mikro-konumlama (micro-conditioning) bileşenidir.

target_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Çoğu durumda, `target_size` üretilen görüntünün istenen yükseklik ve genişliğine ayarlanmalıdır. Belirtilmezse varsayılan olarak `(height, width)` olur. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

negative_original_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Belirli bir görüntü çözünürlüğüne dayalı olarak üretim sürecini olumsuz koşullandırmak için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklanan SDXL mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun başlığına bakın: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`, *isteğe bağlı*, varsayılan (0, 0)) : Belirli bir kırpma koordinatına dayalı olarak üretim sürecini negatif olarak koşullandırmak için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun konusuna bakın: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`, *isteğe bağlı*, varsayılan (1024, 1024)) : Hedef bir görüntü çözünürlüğüne dayalı olarak üretim sürecini olumsuz koşullandırmak için kullanılır. Çoğu durumda `target_size` ile aynı olmalıdır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konşullandırmasının bir parçasıdır. Daha fazla bilgi için bu sorun başlığına bakın: https://github.com/huggingface/diffusers/issues/4208.

aesthetic_score (`float`, *isteğe bağlı*, varsayılan 6.0) : Pozitif metin koşulunu etkileyerek üretilen görüntünün estetik puanını simüle etmek için kullanılır. [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.

negative_aesthetic_score (`float`, *isteğe bağlı*, varsayılan 2.5) : [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) adresindeki 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir. Negatif metin koşulunu etkileyerek üretilen görüntünün estetik puanını simüle etmek için kullanılabilir.

guidance_rescale (`float`, *isteğe bağlı*, varsayılan 0.0) : [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://arxiv.org/pdf/2305.08891.pdf) makalesindeki guidance rescale faktörü.

clip_skip (`int`, *isteğe bağlı*) : Prompt gömme hesaplamaları sırasında CLIP'ten atlanacak katman sayısı. 1 değeri, prompt gömme hesaplamaları için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

callback_on_step_end (`Callable`, `PipelineCallback`, `MultiPipelineCallbacks`, *opsiyonel*) : Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, `PipelineCallback` veya `MultiPipelineCallbacks` alt sınıfı olan bir fonksiyon. Aşağıdaki argümanlarla çağrılır: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs`, `callback_on_step_end_tensor_inputs` tarafından belirtildiği üzere tüm tensörlerin listesini içerecektir.

callback_on_step_end_tensor_inputs (`list`, *isteğe bağlı*) : `callback_on_step_end` işlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler, `callback_kwargs` argümanı olarak geçirilir. Yalnızca pipeline sınıfınızın `._callback_tensor_inputs` özniteliğinde listelenen değişkenleri dahil edebilirsiniz.

**Dönüş:** `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` veya `tuple`

`return_dict` True ise `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput`, aksi halde `tuple. `tuple. Tuple döndürüldüğünde, ilk öğe üretilen görsellerin listesidir.

Üretim için pipeline çağrıldığında tetiklenen işlev.

Örnekler:
```py
>>> import torch
>>> from diffusers import StableDiffusionXLInpaintPipeline
>>> from diffusers.utils import load_image

>>> pipe = StableDiffusionXLInpaintPipeline.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     torch_dtype=torch.float16,
...     variant="fp16",
...     use_safetensors=True,
... )
>>> pipe.to("cuda")

>>> img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
>>> mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"

>>> init_image = load_image(img_url).convert("RGB")
>>> mask_image = load_image(mask_url).convert("RGB")

>>> prompt = "A majestic tiger sitting on a bench"
>>> image = pipe(
...     prompt=prompt, image=init_image, mask_image=mask_image, num_inference_steps=50, strength=0.80
... ).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionXLInpaintPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py#L405)

**Parametreler:**

prompt (`str` veya `list[str]`, *isteğe bağlı*) : kodlanacak istem

prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : `tokenizer_2` ve `text_encoder_2`'ye gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda `prompt` kullanılır

device : (`torch.device`): torch cihazı

num_images_per_prompt (`int`) : her istem için oluşturulacak görsel sayısı

do_classifier_free_guidance (`bool`) : sınıflandırıcı serbest yönlendirmenin (classifier free guidance) kullanılıp kullanılmayacağı

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmazsa, bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır.

negative_prompt_2 (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için `tokenizer_2` ve `text_encoder_2`'ye gönderilecek negatif istem veya istemler. Tanımlanmamışsa, `negative_prompt` her iki metin kodlayıcıda da kullanılır

prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulur.

pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri `prompt` girdi argümanından oluşturulur.

negative_pooled_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulacaktır.

lora_scale (`float`, *isteğe bağlı*) : LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak bir lora ölçeği.

clip_skip (`int`, *isteğe bağlı*) : Prompt gömme hesaplamaları sırasında CLIP'ten atlanacak katman sayısı. 1 değeri, prompt gömme hesaplamaları için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

İsteği metin kodlayıcı gizli durumlarına kodlar.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionXLInpaintPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py#L1011)

**Parametreler:**

w (`torch.Tensor`) : Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretir; bu vektörler daha sonra zaman adımları gömmelerini zenginleştirmek için kullanılır.

embedding_dim (`int`, *isteğe bağlı*, varsayılan 512) : Üretilecek gömme boyutu.

dtype (`torch.dtype`, *isteğe bağlı*, varsayılan `torch.float32`) : Üretilen gömme (embedding) verilerinin veri türü.

**Dönüş:** `torch.Tensor`

`(len(w), embedding_dim)` biçiminde gömme vektörleri.

https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298 adresine bakın

