Buckets:

mishig's picture
|
download
raw
104 kB

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 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 üretmesiyle bilinir. Bu sorunu çözmek için ODE/SDE çözücülerine yönelik öneriler içeren bu PR'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 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.

Resmi temel ve rafine model kontrol noktaları için Stability AI Hub kuruluşuna göz atın!

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

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

Üretilen görselleri tanımlamaya yardımcı olmak için 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:

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() metodunu kullanmalısınız:

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() yöntemini de kullanabilirsiniz:

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.

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:

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.

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 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 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:

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 parametresiyle; refiner modeli için ise denoising_start parametresiyle kontrol edilir.

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.

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 içinde inpainting için de kullanılabilir:

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:

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")

SDXL refiner'ı farklı bir taban modelle kullanabilirsiniz. Örneğin, daha iyi istem uyumuyla görsel üretmek için Hunyuan-DiT veya 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:

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:

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 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.

Sınıflandırıcı-ücretsiz yönlendirme sayesinde hem mikro-konumlama hem de negatif mikro-konumlama parametrelerini kullanabilirsiniz. Bunlar StableDiffusionXLPipeline, StableDiffusionXLImg2ImgPipeline, StableDiffusionXLInpaintPipeline ve StableDiffusionXLControlNetPipeline içinde kullanılabilir.

Boyut koşullandırma

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

  • 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 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:

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!

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:

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. 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):

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 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() ile CPU'ya taşıyın:
- base.to("cuda")  # or "mps", "xpu", "cpu"
- refiner.to("cuda")
+ base.enable_model_cpu_offload()
+ refiner.enable_model_cpu_offload()
  1. ~%20 hızlanma için torch.compile kullanın (torch>=2.0 gereklidir):
+ base.unet = torch.compile(base.unet, mode="reduce-overhead", fullgraph=True)
+ refiner.unet = torch.compile(refiner.unet, mode="reduce-overhead", fullgraph=True)
  1. torch<2.0 ise SDXL'i çalıştırmak için xFormers'ı etkinleştirin:
+ base.enable_xformers_memory_efficient_attention()
+ refiner.enable_xformers_memory_efficient_attention()

Kaynaklar

SDXL'de kullanılan UNet2DConditionModel'in minimal bir versiyonuyla deneyler yapmak ilginizi çekiyorsa, PyTorch ile yazılmış ve 🤗 Diffusers ile doğrudan uyumlu olan minSDXL uygulamasına göz atın.

StableDiffusionXLPipeline[[diffusers.StableDiffusionXLPipeline]]

diffusers.StableDiffusionXLPipeline[[diffusers.StableDiffusionXLPipeline]]

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

Parametreler:

vae (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'in metin bölümünü, özellikle de clip-vit-large-patch14 varyantını kullanır.

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

tokenizer (CLIPTokenizer) : CLIPTokenizer sınıfının tokenizer'ı.

tokenizer_2 (CLIPTokenizer) : CLIPTokenizer sınıfının ikinci Tokenizer'ı.

unet (UNet2DConditionModel) : Kodlanmış görüntü latentlerini gürültüden arındırmak için koşullu U-Net mimarisi.

scheduler (SchedulerMixin) : Kodlanmış görüntü latentlerini gürültüden arındırmak için unet ile birlikte kullanılacak bir zamanlayıcı. DDIMScheduler, LMSDiscreteScheduler veya 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 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 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:

call[[diffusers.StableDiffusionXLPipeline.call]]

__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

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 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 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 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'de tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'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 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) 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: 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 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 makalesinde önerilen guidance rescale faktörü. guidance_scale, Common Diffusion Noise Schedules and Sample Steps are Flawed 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 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 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 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 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 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 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:

>>> 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]]

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

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]]

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

Kaynak

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]]

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

Parametreler:

vae (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'in metin bölümünü, özellikle de clip-vit-large-patch14 varyantını kullanır.

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

tokenizer (CLIPTokenizer) : CLIPTokenizer sınıfının tokenizer'ı.

tokenizer_2 (CLIPTokenizer) : CLIPTokenizer sınıfının ikinci Tokenizer'ı.

unet (UNet2DConditionModel) : Kodlanmış görüntü latentlerini gürültüden arındırmak için koşullu U-Net mimarisi.

scheduler (SchedulerMixin) : Kodlanmış görüntü latentlerini gürültüden arındırmak için unet ile birlikte kullanılacak bir zamanlayıcı. DDIMScheduler, LMSDiscreteScheduler veya 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 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 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:

call[[diffusers.StableDiffusionXLImg2ImgPipeline.call]]

__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

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 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 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'de tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'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 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) 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: 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 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 makalesinde önerilen guidance rescale faktörü. guidance_scale, Common Diffusion Noise Schedules and Sample Steps are Flawed 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 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 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 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 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 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 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 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 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:

>>> 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]]

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

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]]

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

Kaynak

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]]

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

Parametreler:

vae (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'in metin bölümünü, özellikle de clip-vit-large-patch14 varyantını kullanır.

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

tokenizer (CLIPTokenizer) : CLIPTokenizer sınıfının tokenizer'ı.

tokenizer_2 (CLIPTokenizer) : CLIPTokenizer sınıfının ikinci Tokenizer'ı.

unet (UNet2DConditionModel) : Kodlanmış görüntü latentlerini gürültüden arındırmak için koşullu U-Net mimarisi.

scheduler (SchedulerMixin) : Kodlanmış görüntü latentlerini gürültüden arındırmak için unet ile birlikte kullanılacak bir zamanlayıcı. DDIMScheduler, LMSDiscreteScheduler veya 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 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 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:

call[[diffusers.StableDiffusionXLInpaintPipeline.call]]

__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

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 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 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 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 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'de tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'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 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 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: 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 döndürülüp döndürülmemesi.

cross_attention_kwargs (dict, isteğe bağlı) : Belirtilirse, diffusers.models.attention_processor 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 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 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 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 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 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 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 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 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 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:

>>> 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]]

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

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]]

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

Kaynak

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

Xet Storage Details

Size:
104 kB
·
Xet hash:
5ece42a396a80c5dd0a354f4bde28524c3a032699083222569c06fc24395d76b

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