Diffusers documentation

Perturbed-Attention Rehberliği

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Perturbed-Attention Rehberliği

LoRA

Perturbed-Attention Guidance (PAG), hem koşulsuz hem de koşullu ortamlarda örnek kalitesini artıran yeni bir difüzyon örneklem rehberliğidir; bu, ek eğitim gerektirmeden veya harici modüllerin entegrasyonu yapılmadan gerçekleştirilir.

PAG, Donghoon Ahn, Hyoungwon Cho, Jaewon Min, Wooseok Jang, Jungwoo Kim, SeonHwa Kim, Hyun Hee Park, Kyong Hwan Jin ve Seungryong Kim tarafından Self-Rectifying Diffusion Sampling with Perturbed-Attention Guidance makalesinde tanıtılmıştır.

Makalenin özeti şudur:

Yakın tarihli çalışmalar, difüzyon modellerinin yüksek kaliteli örnekler üretebileceğini göstermiştir; ancak bu kalite, sınıflandırıcı yönlendirmesi (CG) ve sınıflandırıcısız yönlendirme (CFG) gibi örneklem yönlendirme tekniklerine büyük ölçüde bağlıdır. Bu teknikler genellikle koşulsuz üretimde veya görüntü restorasyonu gibi çeşitli aşağı akış görevlerinde uygulanamaz. Bu makalede, hem koşulsuz hem de koşullu ortamlarda difüzyon örnek kalitesini, ek eğitim veya harici modüllerin entegrasyonu gerektirmeden iyileştiren, Perturbed-Attention Guidance (PAG) adında yeni bir örneklem yönlendirmesi öneriyoruz. PAG, gürültü giderme süreci boyunca örneklerin yapısını kademeli olarak güçlendirmek üzere tasarlanmıştır. Bu, difüzyon U-Net'indeki seçili öz-dikkat haritalarını birim matrisle değiştirerek yapısal olarak bozulmuş ara örnekler üretmeyi, öz-dikkat mekanizmalarının yapısal bilgiyi yakalama yeteneğini dikkate almayı ve gürültü giderme sürecini bu bozulmuş örneklerden uzaklaştırmayı içerir. Hem ADM hem de Stable Diffusion'da PAG, koşullu ve hatta koşulsuz senaryolarda örnek kalitesini şaşırtıcı bir şekilde iyileştirir. Ayrıca PAG, CG veya CFG gibi mevcut yönlendirmelerin tam olarak kullanılamadığı, boş istemlerle ControlNet ve inpainting ile bulanıklık giderme gibi görüntü restorasyonu dahil olmak üzere çeşitli aşağı akış görevlerinde taban performansını önemli ölçüde iyileştirir.

PAG, bir PAG hattı örneklenirken pag_applied_layers parametresi olarak belirtildiğinde kullanılabilir. Tek bir dize veya dize listesi olabilir. Her dize, benzersiz bir katman tanımlayıcısı veya bir veya daha fazla katmanı belirlemek için kullanılan bir düzenli ifade olabilir.

  • Normal bir dize olarak tam tanımlayıcı: down_blocks.2.attentions.0.transformer_blocks.0.attn1.processor
  • RegEx olarak tam tanımlayıcı: down_blocks.2.(attentions|motion_modules).0.transformer_blocks.0.attn1.processor
  • RegEx olarak kısmi tanımlayıcı: down_blocks.2 veya attn1
  • Kimlik belirteçleri listesi (dizgilerin ve ReGex'in kombinasyonu olabilir): ["blocks.1", "blocks.(14|20)", r"down_blocks\.(2,3)"]

RegEx, katman tanımlayıcılarını eşleştirmek için bir yöntem olarak desteklendiğinden, doğru kullanımı hayati önem taşır; aksi takdirde beklenmeyen davranışlar görülebilir. PAG'in önerilen kullanım yöntemi, katmanları blocks.{layer_index} ve blocks.({layer_index_1|layer_index_2|...}) biçiminde belirtmektir. Başka herhangi bir şekilde kullanmak mümkün olsa da, bu durum temel doğrulama kontrollerimizi atlayabilir ve beklenmeyen sonuçlara yol açabilir.

Genel görevler

PAG, metinden görüntüye, görüntüden görüntüye ve inpainting gibi görevler için StableDiffusionXLPipeline üzerinde uygulanabilir. Belirli bir görev için PAG'i etkinleştirmek için, AutoPipeline API'sini enable_pag=True bayrağı ve pag_applied_layers argümanı ile kullanarak pipeline'ı yükleyin.

🤗 Diffusers şu anda PAG'i yalnızca seçili SDXL pipeline'ları ve PixArtSigmaPAGPipeline ile kullanmayı desteklemektedir. Ancak yeni bir pipeline'a PAG desteği eklemek isterseniz bir özellik isteği açmaktan çekinmeyin!

Metinden görüntüye
Görselden görseli
Inpainting
from diffusers import AutoPipelineForText2Image
from diffusers.utils import load_image
import torch

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    enable_pag=True,
    pag_applied_layers=["mid"],
    dtype=torch.float16
)
pipeline.enable_model_cpu_offload()

pag_applied_layers argümanı, PAG'in hangi katmanlara uygulanacağını belirtmenizi sağlar. Ayrıca, set_pag_applied_layers yöntemini kullanarak bu katmanları, pipeline oluşturulduktan sonra güncelleyebilirsiniz. PAG'in diğer katmanlara uygulanması hakkında daha fazla bilgi edinmek için pag_applied_layers bölümüne göz atın.

Zaten oluşturulmuş ve yüklenmiş bir pipeline'ınız varsa, enable_pag bayrağıyla from_pipe API'sini kullanarak PAG'i etkinleştirebilirsiniz. İçeride, belirttiğiniz pipeline ve görev temelinde bir PAG pipeline'ı oluşturulur. Aşağıdaki örnekte, AutoPipelineForText2Image kullanıldığı ve StableDiffusionXLPipeline geçirildiği için, buna uygun olarak bir StableDiffusionXLPAGPipeline oluşturulur. Bunun ek bellek gerektirmediğini ve hem StableDiffusionXLPipeline'ın hem de StableDiffusionXLPAGPipeline'ın yüklenmiş ve kullanıma hazır olacağını unutmayın. from_pipe API'si ve pipeline'ların nasıl yeniden kullanılacağı hakkında diffuser'da buradan daha fazla bilgi edinebilirsiniz.

pipeline_sdxl = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16)
pipeline = AutoPipelineForText2Image.from_pipe(pipeline_sdxl, enable_pag=True)

Görsel üretmek için ayrıca bir pag_scale değeri geçmeniz gerekir. pag_scale arttıkça görseller daha anlamsal olarak tutarlı yapılar kazanır ve daha az artefakt sergiler. Ancak aşırı yüksek yönlendirme ölçeği, CFG'de olduğu gibi görsellerde daha pürüzsüz dokulara ve hafif doygunluğa yol açabilir. Resmi demoda pag_scale=3.0 kullanılır ve çoğu kullanım senaryosunda iyi çalışır, ancak ihtiyaçlarınıza göre uygun değeri seçmek için deneyler yapmaktan çekinmeyin! pag_scale=0 olduğunda PAG devre dışı bırakılır.

prompt = "an insect robot preparing a delicious meal, anime style"

for pag_scale in [0.0, 3.0]:
    generator = torch.Generator(device="cpu").manual_seed(0)
    images = pipeline(
        prompt=prompt,
        num_inference_steps=25,
        guidance_scale=7.0,
        generator=generator,
        pag_scale=pag_scale,
    ).images
PAG olmadan oluşturulan görüntü
PAG ile oluşturulan görüntü

ControlNet ile PAG

PAG'yi ControlNet ile kullanmak için önce bir controlnet oluşturun. Ardından, controlnet ve diğer PAG argümanlarını, belirtilen görev için AutoPipeline'in from_pretrained yöntemine iletin.

from diffusers import AutoPipelineForText2Image, ControlNetModel
import torch

controlnet = ControlNetModel.from_pretrained(
    "diffusers/controlnet-canny-sdxl-1.0", dtype=torch.float16
)

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    controlnet=controlnet,
    enable_pag=True,
    pag_applied_layers="mid",
    dtype=torch.float16
)
pipeline.enable_model_cpu_offload()

Zaten bir controlnet hattınız varsa ve PAG'i etkinleştirmek istiyorsanız, from_pipe API'sini kullanabilirsiniz: AutoPipelineForText2Image.from_pipe(pipeline_controlnet, enable_pag=True)

ControlNet pipeline'lerini normalde kullandığınız gibi bu pipeline'ı da kullanabilirsiniz; ek olarak pag_scale parametresini belirtme seçeneği de mevcuttur. PAG'in koşulsuz üretim için iyi çalıştığını unutmayın. Bu örnekte, bir istem olmadan bir görsel üreteceğiz.

from diffusers.utils import load_image
canny_image = load_image(
    "https://huggingface.co/datasets/YiYiXu/testing-images/resolve/main/pag_control_input.png"
)

for pag_scale in [0.0, 3.0]:
    generator = torch.Generator(device="cpu").manual_seed(1)
    images = pipeline(
        prompt="",
        controlnet_conditioning_scale=controlnet_conditioning_scale,
        image=canny_image,
        num_inference_steps=50,
        guidance_scale=0,
        generator=generator,
        pag_scale=pag_scale,
    ).images
    images[0]
PAG olmadan oluşturulan görüntü
PAG ile oluşturulan görüntü

IP-Adapter ile PAG

IP-Adapter, alttaki modele herhangi bir değişiklik yapmadan görüntü komutu (image prompting) imkânı tanıyan, difüzyon modellerine entegre edilebilen popüler bir modeldir. IP-Adapter yüklü bir pipeline üzerinde PAG'yi etkinleştirebilirsiniz.

from diffusers import AutoPipelineForText2Image
from diffusers.utils import load_image
from transformers import CLIPVisionModelWithProjection
import torch

image_encoder = CLIPVisionModelWithProjection.from_pretrained(
    "h94/IP-Adapter",
    subfolder="models/image_encoder",
    dtype=torch.float16
)

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    image_encoder=image_encoder,
    enable_pag=True,
    dtype=torch.float16
).to("cuda")  # or "mps", "xpu", "cpu"

pipeline.load_ip_adapter("h94/IP-Adapter", subfolder="sdxl_models", weight_name="ip-adapter-plus_sdxl_vit-h.bin")

pag_scales = 5.0
ip_adapter_scales = 0.8

image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/ip_adapter_diner.png")

pipeline.set_ip_adapter_scale(ip_adapter_scale)
generator = torch.Generator(device="cpu").manual_seed(0)
images = pipeline(
    prompt="a polar bear sitting in a chair drinking a milkshake",
    ip_adapter_image=image,
    negative_prompt="deformed, ugly, wrong proportion, low res, bad anatomy, worst quality, low quality",
    num_inference_steps=25,
    guidance_scale=3.0,
    generator=generator,
    pag_scale=pag_scale,
).images
images[0]

PAG, artefaktları azaltır ve genel kompozisyonu iyileştirir.

PAG olmadan oluşturulan görüntü
PAG ile oluşturulan görüntü

Parametreleri yapılandır

pag_applied_layers

pag_applied_layers argümanı, PAG'in hangi katmanlara uygulanacağını belirtmenizi sağlar. Varsayılan olarak yalnızca orta bloklara uygulanır. Bu ayarı değiştirmek çıktıyı önemli ölçüde etkiler. Pipeline oluşturulduktan sonra PAG katmanlarını ayarlamak için set_pag_applied_layers yöntemini kullanabilir, böylece modeliniz için en uygun katmanları bulabilirsiniz.

Örnek olarak, pag_layers = ["down.block_2"] ve pag_layers = ["down.block_2", "up.block_1.attentions_0"] ile üretilen görüntüler aşağıdadır.

prompt = "an insect robot preparing a delicious meal, anime style"
pipeline.set_pag_applied_layers(pag_layers)
generator = torch.Generator(device="cpu").manual_seed(0)
images = pipeline(
    prompt=prompt,
    num_inference_steps=25,
    guidance_scale=guidance_scale,
    generator=generator,
    pag_scale=pag_scale,
).images
images[0]
down.block_2 + up.block1.attentions_0
down.block_2

AnimateDiffPAGPipeline

sınıf diffusers.AnimateDiffPAGPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltokenizer: CLIPTokenizerunet: diffusers.models.unets.unet_2d_condition.UNet2DConditionModel | diffusers.models.unets.unet_motion_model.UNetMotionModelmotion_adapter: MotionAdapterscheduler: KarrasDiffusionSchedulersfeature_extractor: CLIPImageProcessorPil = Noneimage_encoder: CLIPVisionModelWithProjection = Nonepag_applied_layers: str | list[str] = 'mid_block.*attn1' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • unet (UNet2DConditionModel) — Kodlanmış video latentlerini gürültüden arındırmak için bir UNetMotionModel oluşturmak üzere kullanılan bir UNet2DConditionModel.
  • motion_adapter (MotionAdapter) — Kodlanmış video latentlerini gürültüden arındırmak için unet ile birlikte kullanılacak bir MotionAdapter.
  • 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.

AnimateDiff ve Perturbed Attention Guidance kullanılarak metinden videoya üretim için Pipeline.

Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:

__call__

< >

( prompt: str | list[str] | None = Nonenum_frames: int | None = 16height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50guidance_scale: float = 7.5negative_prompt: str | list[str] | None = Nonenum_videos_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneclip_skip: int | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']decode_chunk_size: int = 16pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → AnimateDiffPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresini iletmeniz gerekir.
  • height (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan videonun piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan videonun piksel cinsinden genişliği.
  • num_frames (int, isteğe bağlı, varsayılan 16) — Oluşturulan video karelerinin sayısı. Varsayılan olarak 16 karedir; saniyede 8 kare hızında bu, 2 saniyelik bir videoya karşılık gelir.
  • num_inference_steps (int, isteğe bağlı, varsayılan 50) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli videolar sağlar.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Daha yüksek bir guidance scale değeri, modelin metinle prompt ile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale, guidance_scale > 1 olduğunda etkinleştirilir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Tanımlanmadıysa, bunun yerine negative_prompt_embeds parametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır.
  • num_videos_per_prompt (int, isteğe bağlı, varsayılan 1) — Her prompt için üretilecek video sayısı.
  • eta (float, isteğe bağlı, varsayılan 0.0) — DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir torch.Generator.
  • latents (torch.Tensor, isteğe bağlı) — Video üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden oluşturulmuş gürültülü latensler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latens tensörü oluşturulur. Latenslerin şekli (batch_size, num_channel, num_frames, height, width) olmalıdır.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapters ile çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan videonun çıktı biçimi. torch.Tensor, PIL.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.text_to_video_synthesis.TextToVideoSDPipelineOutput döndürülecek mi?
  • cross_attention_kwargs (dict, isteğe bağlı) — Belirtilirse, self.processor içinde tanımlanan AttentionProcessor'ye iletilen bir kwargs sözlüğü.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan bir işlev. İşlev 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 belirtilen tüm tensörlerin listesini içerir.
  • 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.
  • decode_chunk_size (int, isteğe bağlı, varsayılan 16) — decode_latents metodu çağrılırken bir seferde çözümlenecek kare sayısı.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

AnimateDiffPipelineOutput veya tuple

return_dict True ise AnimateDiffPipelineOutput döndürülür, aksi halde ilk öğesi üretilen karelerin listesini içeren bir tuple döndürülür.

Üretim için pipeline'ın çağrı fonksiyonu.

Örnekler:

>>> import torch
>>> from diffusers import AnimateDiffPAGPipeline, MotionAdapter, DDIMScheduler
>>> from diffusers.utils import export_to_gif

>>> model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
>>> motion_adapter_id = "guoyww/animatediff-motion-adapter-v1-5-2"
>>> motion_adapter = MotionAdapter.from_pretrained(motion_adapter_id)
>>> scheduler = DDIMScheduler.from_pretrained(
...     model_id, subfolder="scheduler", beta_schedule="linear", steps_offset=1, clip_sample=False
... )
>>> pipe = AnimateDiffPAGPipeline.from_pretrained(
...     model_id,
...     motion_adapter=motion_adapter,
...     scheduler=scheduler,
...     pag_applied_layers=["mid"],
...     torch_dtype=torch.float16,
... ).to("cuda")

>>> video = pipe(
...     prompt="car, futuristic cityscape with neon lights, street, no human",
...     negative_prompt="low quality, bad quality",
...     num_inference_steps=25,
...     guidance_scale=6.0,
...     pag_scale=3.0,
...     generator=torch.Generator().manual_seed(42),
... ).frames[0]

>>> export_to_gif(video, "animatediff_pag.gif")

encode_prompt

< >

( promptdevicenum_images_per_promptdo_classifier_free_guidancenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • lora_scale (float, isteğe bağlı) — LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak LoRA ölçeği.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

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

HunyuanDiTPAGPipeline

sınıf diffusers.HunyuanDiTPAGPipeline

< >

( vae: AutoencoderKLtext_encoder: BertModeltokenizer: BertTokenizertransformer: HunyuanDiT2DModelscheduler: DDPMSchedulersafety_checker: diffusers.pipelines.stable_diffusion.safety_checker.StableDiffusionSafetyChecker | None = Nonefeature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = Nonerequires_safety_checker: bool = Truetext_encoder_2: transformers.models.t5.modeling_t5.T5EncoderModel | None = Nonetokenizer_2: transformers.models.t5.tokenization_t5.T5Tokenizer | None = Nonepag_applied_layers: str | list[str] = 'blocks.1' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli. sdxl-vae-fp16-fix kullanıyoruz.
  • text_encoder (~transformers.BertModel, ~transformers.CLIPTextModel | None) — Donmuş metin kodlayıcı (clip-vit-large-patch14). HunyuanDiT, ince ayarlanmış [bilingual CLIP] kullanır.
  • tokenizer (~transformers.BertTokenizer, ~transformers.CLIPTokenizer | None) — Metni tokenleştirmek için bir BertTokenizer veya CLIPTokenizer.
  • transformer (HunyuanDiT2DModel) — Tencent Hunyuan tarafından tasarlanan HunyuanDiT modeli.
  • text_encoder_2 (T5EncoderModel) — mT5 gömme modeli. Özellikle ‘t5-v1_1-xxl’ modelidir.
  • tokenizer_2 (T5Tokenizer) — mT5 gömmeleyicisi için belirteçleştirici.
  • scheduler (DDPMScheduler) — HunyuanDiT ile birlikte kullanılarak kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılacak bir zamanlayıcı.

HunyuanDiT ve Perturbed Attention Guidance kullanarak İngilizce/Çince'den görüntü üretimi 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.

HunyuanDiT iki metin kodlayıcı kullanır: mT5 ve [çift dilli CLIP](kendi kendimize ince ayar yaptık)

__call__

< >

( prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50guidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_2: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_2: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Noneprompt_attention_mask_2: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask_2: typing.Optional[torch.Tensor] = Noneoutput_type: str = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Union[typing.Callable[[int, int, dict], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']guidance_rescale: float = 0.0original_size: tuple = (1024, 1024)target_size: tuple = Nonecrops_coords_top_left: tuple = (0, 0)use_resolution_binning: bool = Truepag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → StableDiffusionPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresini iletmeniz gerekir.
  • height (int) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • num_inference_steps (int, isteğe bağlı, varsayılan 50) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar. Bu parametre strength tarafından modüle edilir.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Daha yüksek bir guidance scale değeri, modelin metinle prompt ile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale, guidance_scale > 1 olduğunda etkinleştirilir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Tanımlanmadıysa, bunun yerine negative_prompt_embeds parametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • eta (float, isteğe bağlı, varsayılan 0.0) — DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir torch.Generator.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenen, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • prompt_embeds_2 (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • negative_prompt_embeds_2 (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • prompt_attention_mask (torch.Tensor, isteğe bağlı) — Prompt için dikkat maskesi. prompt_embeds doğrudan geçirildiğinde gereklidir.
  • prompt_attention_mask_2 (torch.Tensor, isteğe bağlı) — Prompt için dikkat maskesi. prompt_embeds_2 doğrudan geçirildiğinde zorunludur.
  • negative_prompt_attention_mask (torch.Tensor, isteğe bağlı) — Negatif prompt için dikkat maskesi. negative_prompt_embeds doğrudan geçirildiğinde gereklidir.
  • negative_prompt_attention_mask_2 (torch.Tensor, isteğe bağlı) — Negatif prompt için dikkat maskesi. negative_prompt_embeds_2 doğrudan geçirildiğinde gereklidir.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan görüntünün çıktı biçimi. PIL.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.
  • callback_on_step_end (Callable[[int, int], None], PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Her gürültü azaltma adımının sonunda çağrılacak bir geri çağrı işlevi veya geri çağrı işlevleri listesi.
  • callback_on_step_end_tensor_inputs (list[str], isteğe bağlı) — Callback fonksiyonuna iletilmesi gereken girdi tensörlerinin listesi. Tanımlanmazsa, tüm girdi tensörleri iletilir.
  • guidance_rescale (float, isteğe bağlı, varsayılan 0.0) — Gürültüyü guidance_rescale değerine göre yeniden ölçeklendirir. Common Diffusion Noise Schedules and Sample Steps are Flawed makalesindeki bulgulara dayanır. Bölüm 3.4'e bakın
  • original_size (tuple[int, int], isteğe bağlı, varsayılan (1024, 1024)) — Görselin orijinal boyutu. Zaman kimliklerini hesaplamak için kullanılır.
  • target_size (tuple[int, int], isteğe bağlı) — Görselin hedef boyutu. Zaman kimliklerini hesaplamak için kullanılır.
  • crops_coords_top_left (tuple[int, int], isteğe bağlı, varsayılan (0, 0)) — Kırpmanın sol üst koordinatları. Zaman kimliklerini hesaplamak için kullanılır.
  • use_resolution_binning (bool, isteğe bağlı, varsayılan True) — Çözünürlük gruplandırmasının (resolution binning) kullanılıp kullanılmayacağını belirtir. True ise, girdi çözünürlüğü en yakın standart çözünürlüğe eşlenir. Desteklenen çözünürlükler 1024x1024, 1280x1280, 1024x768, 1152x864, 1280x960, 768x1024, 864x1152, 960x1280, 1280x768 ve 768x1280'dir. Bu değerin True olarak ayarlanması önerilir.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

StableDiffusionPipelineOutput veya tuple

return_dict True ise StableDiffusionPipelineOutput döndürülür, aksi halde bir tuple döndürülür; bu tuple'ın ilk öğesi üretilen görsellerin listesini, ikinci öğesi ise üretile görselin “not-safe-for-work” (nsfw) içerip içermediğini gösteren bool değerlerinin listesini içerir.

HunyuanDiT ile üretim için pipeline çağrı fonksiyonu.

Örnekler:

>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers",
...     torch_dtype=torch.float16,
...     enable_pag=True,
...     pag_applied_layers=[14],
... ).to("cuda")

>>> # prompt = "an astronaut riding a horse"
>>> prompt = "一个宇航员在骑马"
>>> image = pipe(prompt, guidance_scale=4, pag_scale=3).images[0]

encode_prompt

< >

( prompt: strdevice: device = Nonedtype: dtype = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int | None = Nonetext_encoder_index: int = 0 )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • dtype (torch.dtype) — torch veri türü
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • prompt_attention_mask (torch.Tensor, isteğe bağlı) — Prompt için dikkat maskesi. prompt_embeds doğrudan geçirildiğinde gereklidir.
  • negative_prompt_attention_mask (torch.Tensor, isteğe bağlı) — Negatif prompt için dikkat maskesi. negative_prompt_embeds doğrudan geçirildiğinde gereklidir.
  • max_sequence_length (int, isteğe bağlı) — istem için kullanılacak maksimum dizi uzunluğu.
  • text_encoder_index (int, isteğe bağlı) — Kullanılacak metin kodlayıcısının indeksi. clip için 0 ve T5 için 1.

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

KolorsPAGPipeline

sınıf diffusers.KolorsPAGPipeline

< >

( vae: AutoencoderKLtext_encoder: ChatGLMModeltokenizer: ChatGLMTokenizerunet: UNet2DConditionModelscheduler: KarrasDiffusionSchedulersimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = Noneforce_zeros_for_empty_prompt: bool = Falsepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.
  • text_encoder (ChatGLMModel) — Donmuş metin kodlayıcı. Kolors ChatGLM3-6B kullanır.
  • tokenizer (ChatGLMTokenizer) — Tokenizer of class ChatGLMTokenizer.
  • 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 "False") — Negatif istek gömme değerlerinin her zaman 0 olarak ayarlanıp ayarlanmayacağına dair. Ayrıca Kwai-Kolors/Kolors-diffusers yapılandırmasına da bakın.
  • pag_applied_layers (str or list[str]``, *optional*, defaults to “mid”`) — Perturbe edilmiş dikkat yönlendirmesinin uygulanacağı transformer dikkat katmanlarını ayarlayın. Bir dize veya “down”, “mid”, “up”, tüm bir transformer bloğu veya belirli transformer bloğu dikkat katmanlarını içeren dize listesi olabilir, örn.: [“mid”] [“down”, “mid”] [“down”, “mid”, “up.block_1”] [“down”, “mid”, “up.block_1.attentions_0”, “up.block_1.attentions_1”]

Kolors 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__

< >

( prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50timesteps: list = Nonesigmas: list = Nonedenoising_end: float | None = Noneguidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneoriginal_size: tuple[int, int] | None = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple[int, int] | None = Nonenegative_original_size: tuple[int, int] | None = Nonenegative_crops_coords_top_left: tuple = (0, 0)negative_target_size: tuple[int, int] | None = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0max_sequence_length: int = 256 ) → ~pipelines.kolors.KolorsPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerine prompt_embeds geçirilmelidir.
  • height (int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış Kwai-Kolors/Kolors-diffusers ve kontrol noktaları için iyi çalışmaz.
  • width (int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış Kwai-Kolors/Kolors-diffusers ve kontrol noktaları için 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ı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılı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 oranını (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 hattı kurulumunun bir parçası olarak bu hat 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 makalesinde tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'daki 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, prompt ile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak 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 listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri 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_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • negative_pooled_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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şturulur.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~pipelines.kolors.KolorsPipelineOutput döndürülüp döndürülmemesi.
  • cross_attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki 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ünür. Belirtilmediyse original_size varsayılan olarak (height, width) değerini alır. SDXL’in mikro-konumlama (micro-conditioning) bileşenidir; bunun açıklaması https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde yer alır.
  • 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 parametresini (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çıklanan SDXL 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 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 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. SDXL’in mikro-koşullandırmasının bir parçasıdır; https://huggingface.co/papers/2307.01952 makalesinin 2.2 bölümünde açıklanmıştır. Daha fazla bilgi için bu sorun başlığına 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 negatif olarak 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çı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.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.
  • max_sequence_length (int, varsayılan 256) — prompt ile kullanılacak maksimum dizi uzunluğu.

Dönüş değeri

~pipelines.kolors.KolorsPipelineOutput veya tuple

return_dict True ise ~pipelines.kolors.KolorsPipelineOutput, 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 AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "Kwai-Kolors/Kolors-diffusers",
...     variant="fp16",
...     torch_dtype=torch.float16,
...     enable_pag=True,
...     pag_applied_layers=["down.block_2.attentions_1", "up.block_0.attentions_1"],
... )
>>> pipe = pipe.to("cuda")

>>> prompt = (
...     "A photo of a ladybug, macro, zoom, high quality, film, holding a wooden sign with the text 'KOLORS'"
... )
>>> image = pipe(prompt, guidance_scale=5.5, pag_scale=1.5).images[0]

encode_prompt

< >

( promptdevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 256 )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri 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_prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden 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.
  • negative_pooled_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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şturulur.
  • max_sequence_length (int, varsayılan 256) — prompt ile kullanılacak maksimum dizi uzunluğu.

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

get_guidance_scale_embedding

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionPAGInpaintPipeline

sınıf diffusers.StableDiffusionPAGInpaintPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltokenizer: CLIPTokenizerunet: UNet2DConditionModelscheduler: KarrasDiffusionSchedulerssafety_checker: StableDiffusionSafetyCheckerfeature_extractor: CLIPImageProcessorPilimage_encoder: CLIPVisionModelWithProjection = Nonerequires_safety_checker: bool = Truepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • unet (UNet2DConditionModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir UNet2DConditionModel.
  • 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.
  • safety_checker (StableDiffusionSafetyChecker) — Üretilen görsellerin saldırgan veya zararlı olarak değerlendirilip değerlendirilemeyeceğini tahmin eden sınıflandırma modülü. Bir modelin potansiyel zararlarına ilişkin daha fazla ayrıntı için model kartına bakın.
  • feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellik çıkarmak için kullanılan CLIPImageProcessor; safety_checker girdileri olarak kullanılır.

Stable Diffusion kullanılarak metinden görüntüye üretim için Pipeline.

Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:

__call__

< >

( prompt: str | list[str] = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemasked_image_latents: Tensor = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = Nonestrength: float = 0.9999num_inference_steps: int = 50timesteps: list = Nonesigmas: list = Noneguidance_scale: float = 7.5negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneguidance_rescale: float = 0.0clip_skip: int | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → StableDiffusionPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresini iletmeniz gerekir.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] veya list[np.ndarray]) — Image, inpainting işlemine tabi tutulacak bir görüntü partisyonunu temsil eden numpy dizisi veya tensör (görüntünün hangi kısımlarının mask_image ile maskeleme altına alınacağı ve prompt’a göre yeniden boyanacağı).
  • mask_image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] veya list[np.ndarray]) — image için maske uygulanacak bir görüntü partisini temsil eden Image, numpy dizisi veya tensör. Maske içindeki beyaz pikseller yeniden boyanırken siyah pikseller korunur. mask_image bir PIL görüntüsü ise, kullanılmadan önce tek kanala (parlaklık) dönüştürülür. Numpy dizisi veya pytorch tensörü ise 3 yerine tek bir renk kanalı (L) içermelidir; bu nedenle pytorch tensörü için beklenen şekil (B, 1, H, W), (B, H, W), (1, H, W) veya (H, W) olur. Numpy dizisi için ise beklenen şekiller (B, H, W, 1), (B, H, W), (H, W, 1) veya (H, W) şeklindedir.
  • masked_image_latents (torch.Tensor, isteğe bağlı) — Maskeleme uygulanmış görüntünün önceden kodlanmış latent değeri (inpainting için).
  • height (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • padding_mask_crop (int, isteğe bağlı, varsayılan None) — Görsel ve maskelemeye uygulanacak kırpma için kenar boşluğu boyutu. None ise görsel ve mask_image üzerinde kırpma uygulanmaz. padding_mask_crop None değilse, önce görselle 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örsel ve mask_image, inpainting için orijinal görsel boyutuna yeniden boyutlandırılmadan önce genişletilen alana göre kırpılır. Bu, maskelenmiş alanın küçükken görselin büyük olması ve inpainting için alakasız bilgiler (örneğin arka plan) içermesi durumunda faydalıdır.
  • strength (float, isteğe bağlı, varsayılan 0.9999) — Referans image'in ne ölçüde dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır. image bir başlangıç noktası olarak kullanılır ve strength değeri arttıkça daha fazla gürültü eklenir. Gürültü azaltma adım sayısı, başlangıçta eklenen gürültü miktarına bağlıdır. strength 1 olduğunda eklenen gürültü maksimumdur ve gürültü azaltma süreci, num_inference_steps içinde belirtilen tam yineleme sayısı kadar çalışır. 1 değeri, image'i temelde yok sayar.
  • 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ı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Daha yüksek bir guidance scale değeri, modelin metinle prompt ile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale, guidance_scale > 1 olduğunda etkinleştirilir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Tanımlanmadıysa, bunun yerine negative_prompt_embeds parametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • eta (float, isteğe bağlı, varsayılan 0.0) — DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir torch.Generator.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenen, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan görüntünün çıktı biçimi. PIL.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, self.processor içinde tanımlanan AttentionProcessor'ye iletilen bir kwargs sözlüğü.
  • 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ü. Guidance rescale faktörü, zero terminal SNR kullanıldığında aşırı pozlamayı düzeltmelidir.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

StableDiffusionPipelineOutput veya tuple

return_dict True ise StableDiffusionPipelineOutput döndürülür, aksi halde bir tuple döndürülür; bu tuple'ın ilk öğesi üretilen görsellerin listesini, ikinci öğesi ise üretile görselin “not-safe-for-work” (nsfw) içerip içermediğini gösteren bool değerlerinin listesini içerir.

Üretim için pipeline'ın çağrı fonksiyonu.

Örnekler:

>>> import torch
>>> from diffusers import AutoPipelineForInpainting

>>> pipe = AutoPipelineForInpainting.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16, enable_pag=True
... )
>>> pipe = 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,
...     strength=0.8,
...     num_inference_steps=50,
...     guidance_scale=guidance_scale,
...     generator=generator,
...     pag_scale=pag_scale,
... ).images[0]

encode_prompt

< >

( promptdevicenum_images_per_promptdo_classifier_free_guidancenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • lora_scale (float, isteğe bağlı) — LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak LoRA ölçeği.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionPAGPipeline

sınıf diffusers.StableDiffusionPAGPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltokenizer: CLIPTokenizerunet: UNet2DConditionModelscheduler: KarrasDiffusionSchedulerssafety_checker: StableDiffusionSafetyCheckerfeature_extractor: CLIPImageProcessorPilimage_encoder: CLIPVisionModelWithProjection = Nonerequires_safety_checker: bool = Truepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • unet (UNet2DConditionModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir UNet2DConditionModel.
  • 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.
  • safety_checker (StableDiffusionSafetyChecker) — Üretilen görsellerin saldırgan veya zararlı olarak değerlendirilip değerlendirilemeyeceğini tahmin eden sınıflandırma modülü. Bir modelin potansiyel zararlarına ilişkin daha fazla ayrıntı için model kartına bakın.
  • feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellik çıkarmak için kullanılan CLIPImageProcessor; safety_checker girdileri olarak kullanılır.

Stable Diffusion kullanılarak metinden görüntüye üretim için Pipeline.

Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:

__call__

< >

( prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50timesteps: list = Nonesigmas: list = Noneguidance_scale: float = 7.5negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneguidance_rescale: float = 0.0clip_skip: int | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → StableDiffusionPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresini iletmeniz gerekir.
  • height (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • num_inference_steps (int, isteğe bağlı, varsayılan 50) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar.
  • timesteps (list[int], isteğe bağlı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Daha yüksek bir guidance scale değeri, modelin metinle prompt ile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale, guidance_scale > 1 olduğunda etkinleştirilir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Tanımlanmadıysa, bunun yerine negative_prompt_embeds parametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • eta (float, isteğe bağlı, varsayılan 0.0) — DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir torch.Generator.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenen, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan görüntünün çıktı biçimi. PIL.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, self.processor içinde tanımlanan AttentionProcessor'ye iletilen bir kwargs sözlüğü.
  • 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ü. Guidance rescale faktörü, zero terminal SNR kullanıldığında aşırı pozlamayı düzeltmelidir.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

StableDiffusionPipelineOutput veya tuple

return_dict True ise StableDiffusionPipelineOutput döndürülür, aksi halde bir tuple döndürülür; bu tuple'ın ilk öğesi üretilen görsellerin listesini, ikinci öğesi ise üretile görselin “not-safe-for-work” (nsfw) içerip içermediğini gösteren bool değerlerinin listesini içerir.

Üretim için pipeline'ın çağrı fonksiyonu.

Örnekler:

>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16, enable_pag=True
... )
>>> pipe = pipe.to("cuda")

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

encode_prompt

< >

( promptdevicenum_images_per_promptdo_classifier_free_guidancenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • lora_scale (float, isteğe bağlı) — LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak LoRA ölçeği.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionPAGImg2ImgPipeline

sınıf diffusers.StableDiffusionPAGImg2ImgPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltokenizer: CLIPTokenizerunet: UNet2DConditionModelscheduler: KarrasDiffusionSchedulerssafety_checker: StableDiffusionSafetyCheckerfeature_extractor: CLIPImageProcessorPilimage_encoder: CLIPVisionModelWithProjection = Nonerequires_safety_checker: bool = Truepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • unet (UNet2DConditionModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir UNet2DConditionModel.
  • 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.
  • safety_checker (StableDiffusionSafetyChecker) — Üretilen görsellerin saldırgan veya zararlı olarak değerlendirilip değerlendirilemeyeceğini tahmin eden sınıflandırma modülü. Bir modelin potansiyel zararlarına ilişkin daha fazla ayrıntı için model kartına bakın.
  • feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellik çıkarmak için kullanılan CLIPImageProcessor; safety_checker girdileri olarak kullanılır.

Stable Diffusion kullanılarak metin yönlendirmeli görüntüden görüntüye üretim için Pipeline.

Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:

__call__

< >

( prompt: str | list[str] = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonestrength: float = 0.8num_inference_steps: int | None = 50timesteps: list = Nonesigmas: list = Noneguidance_scale: float | None = 7.5negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float | None = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneclip_skip: int = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → StableDiffusionPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresini iletmeniz gerekir.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] veya list[np.ndarray]) — Başlangıç noktası olarak kullanılacak bir görüntü partisyonunu temsil eden Image, numpy dizisi veya tensör. Hem numpy dizisi hem de pytorch tensörü için beklenen değer aralığı [0, 1] arasındadır. Tensör veya tensör listesi ise beklenen şekil (B, C, H, W) veya (C, H, W) olmalıdır. Numpy dizisi veya dizi listesi ise beklenen şekil (B, H, W, C) veya (H, W, C) olmalıdır. Ayrıca görüntü latentlerini de image olarak kabul edebilir, ancak latentler doğrudan geçirilirse tekrar kodlanmaz.
  • strength (float, isteğe bağlı, varsayılan 0.8) — Referans image'in ne ölçüde dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır. image bir başlangıç noktası olarak kullanılır ve strength değeri arttıkça daha fazla gürültü eklenir. Gürültü azaltma adım sayısı, başlangıçta eklenen gürültü miktarına bağlıdır. strength 1 olduğunda eklenen gürültü maksimumdur ve gürültü azaltma süreci, num_inference_steps içinde belirtilen tam yineleme sayısı kadar çalışır. 1 değeri, image'i temelde yok sayar.
  • 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. Bu parametre strength tarafından modüle edilir.
  • timesteps (list[int], isteğe bağlı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Daha yüksek bir guidance scale değeri, modelin metinle prompt ile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale, guidance_scale > 1 olduğunda etkinleştirilir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Tanımlanmadıysa, bunun yerine negative_prompt_embeds parametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • eta (float, isteğe bağlı, varsayılan 0.0) — DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir torch.Generator.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan görüntünün çıktı biçimi. PIL.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, self.processor içinde tanımlanan AttentionProcessor'ye iletilen bir kwargs sözlüğü.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

StableDiffusionPipelineOutput veya tuple

return_dict True ise StableDiffusionPipelineOutput döndürülür, aksi halde bir tuple döndürülür; bu tuple'ın ilk öğesi üretilen görsellerin listesini, ikinci öğesi ise üretile görselin “not-safe-for-work” (nsfw) içerip içermediğini gösteren bool değerlerinin listesini içerir.

Üretim için pipeline'ın çağrı fonksiyonu.

Örnekler:

>>> import torch
>>> from diffusers import AutoPipelineForImage2Image
>>> from diffusers.utils import load_image

>>> pipe = AutoPipelineForImage2Image.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5",
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> 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, pag_scale=0.3).images[0]

encode_prompt

< >

( promptdevicenum_images_per_promptdo_classifier_free_guidancenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • lora_scale (float, isteğe bağlı) — LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak LoRA ölçeği.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionControlNetPAGPipeline

sınıf diffusers.StableDiffusionControlNetPAGPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltokenizer: CLIPTokenizerunet: UNet2DConditionModelcontrolnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModelscheduler: KarrasDiffusionSchedulerssafety_checker: StableDiffusionSafetyCheckerfeature_extractor: CLIPImageProcessorPilimage_encoder: CLIPVisionModelWithProjection = Nonerequires_safety_checker: bool = Truepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • unet (UNet2DConditionModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir UNet2DConditionModel.
  • controlnet (ControlNetModel veya list[ControlNetModel]) — Gürültü azaltma işlemi sırasında unet bileşenine ek koşullandırma sağlar. Birden fazla ControlNet'i bir liste olarak ayarlarsanız, her bir ControlNet'in çıktıları toplanarak tek bir birleşik ek koşullandırma oluşturulur.
  • 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.
  • safety_checker (StableDiffusionSafetyChecker) — Üretilen görsellerin saldırgan veya zararlı olarak değerlendirilip değerlendirilemeyeceğini tahmin eden sınıflandırma modülü. Bir modelin potansiyel zararlarına ilişkin daha fazla ayrıntı için model kartına bakın.
  • feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellik çıkarmak için kullanılan CLIPImageProcessor; safety_checker girdileri olarak kullanılır.

ControlNet yönlendirmesiyle Stable Diffusion kullanılarak metinden görüntüye üretim için Pipeline.

Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:

encode_prompt

< >

( promptdevicenum_images_per_promptdo_classifier_free_guidancenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • lora_scale (float, isteğe bağlı) — LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak LoRA ölçeği.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionControlNetPAGInpaintPipeline

sınıf diffusers.StableDiffusionControlNetPAGInpaintPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltokenizer: CLIPTokenizerunet: UNet2DConditionModelcontrolnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModelscheduler: KarrasDiffusionSchedulerssafety_checker: StableDiffusionSafetyCheckerfeature_extractor: CLIPImageProcessorPilimage_encoder: CLIPVisionModelWithProjection = Nonerequires_safety_checker: bool = Truepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • unet (UNet2DConditionModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir UNet2DConditionModel.
  • controlnet (ControlNetModel veya list[ControlNetModel]) — Gürültü azaltma işlemi sırasında unet bileşenine ek koşullandırma sağlar. Birden fazla ControlNet'i bir liste olarak ayarlarsanız, her bir ControlNet'in çıktıları toplanarak tek bir birleşik ek koşullandırma oluşturulur.
  • 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.
  • safety_checker (StableDiffusionSafetyChecker) — Üretilen görsellerin saldırgan veya zararlı olarak değerlendirilip değerlendirilemeyeceğini tahmin eden sınıflandırma modülü. Bir modelin potansiyel zararlarına ilişkin daha fazla ayrıntı için model kartına bakın.
  • feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellik çıkarmak için kullanılan CLIPImageProcessor; safety_checker girdileri olarak kullanılır.

ControlNet yönlendirmesiyle Stable Diffusion kullanarak görüntü inpainting için pipeline.

Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:

> Bu pipeline, inpainting için özel olarak ince ayarlanmış kontrol noktalarıyla > (stable-diffusion-v1-5/stable-diffusion-inpainting) ve > varsayılan metinden görüntüye Stable Diffusion kontrol noktalarıyla > (stable-diffusion-v1-5/stable-diffusion-v1-5) kullanılabilir. Varsayılan metinden görüntüye > Stable Diffusion kontrol noktaları, bunlar üzerinde ince ayarlanmış ControlNet'ler için tercih edilebilir, örneğin > lllyasviel/control_v11p_sd15_inpaint.

__call__

< >

( prompt: str | list[str] = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonecontrol_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = Nonestrength: float = 1.0num_inference_steps: int = 50guidance_scale: float = 7.5negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Nonecontrolnet_conditioning_scale: float | list[float] = 0.5control_guidance_start: float | list[float] = 0.0control_guidance_end: float | list[float] = 1.0clip_skip: int | None = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → StableDiffusionPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresini iletmeniz gerekir.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], — list[PIL.Image.Image] veya list[np.ndarray]): Image, başlangıç noktası olarak kullanılacak bir görüntü partisyonunu temsil eden NumPy dizisi veya tensör. Hem NumPy dizisi hem de PyTorch tensörü için beklenen değer aralığı [0, 1] arasındadır. Tensör veya tensör listesi olması durumunda beklenen şekil (B, C, H, W) veya (C, H, W) olmalıdır. NumPy dizisi veya dizi listesi olması durumunda beklenen şekil (B, H, W, C) veya (H, W, C) olmalıdır. Ayrıca görüntü latentlerini image olarak kabul edebilir, ancak latentler doğrudan geçirildiğinde tekrar kodlanmaz.
  • mask_image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], — list[PIL.Image.Image] veya list[np.ndarray]): Image, NumPy dizisi veya image için maske uygulanacak bir görüntü partisyonunu temsil eden tensör. Maske içindeki beyaz pikseller yeniden boyanırken siyah pikseller korunur. mask_image bir PIL görüntüsü ise, kullanılmadan önce tek kanala (parlaklık) dönüştürülür. NumPy dizisi veya PyTorch tensörü ise 3 yerine tek bir renk kanalı (L) içermelidir; bu nedenle PyTorch tensörü için beklenen şekil (B, 1, H, W), (B, H, W), (1, H, W) veya (H, W) olur. NumPy dizisi için ise (B, H, W, 1), (B, H, W), (H, W, 1) veya (H, W) olur.
  • control_image (torch.Tensor, PIL.Image.Image, list[torch.Tensor], list[PIL.Image.Image], — list[list[torch.Tensor]] veya list[list[PIL.Image.Image]]): Üretim sırasında unet’e rehberlik sağlamak için ControlNet’e verilen giriş koşulu. Tip torch.Tensor olarak belirtilirse, ControlNet’e olduğu gibi iletilir. PIL.Image.Image da bir görsel olarak kabul edilebilir. Çıktı görselinin boyutları varsayılan olarak image’ın boyutlarıyla aynıdır. Yükseklik ve/veya genişlik değerleri geçirilirse, image buna göre yeniden boyutlandırılır. init içinde birden fazla ControlNet belirtilmişse, görsellerin bir liste olarak geçirilmesi gerekir; böylece listenin her öğesi, tek bir ControlNet’e girdi olarak doğru şekilde toplu işleme (batch) alınabilir.
  • height (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • padding_mask_crop (int, isteğe bağlı, varsayılan None) — Görsel ve maskelemeye uygulanacak kırpma için kenar boşluğu boyutu. None ise görsel ve mask_image üzerinde kırpma uygulanmaz. padding_mask_crop None değilse, önce görselle 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örsel ve mask_image, inpainting için orijinal görsel boyutuna yeniden boyutlandırılmadan önce genişletilen alana göre kırpılır. Bu, maskelenmiş alanın küçükken görselin büyük olması ve inpainting için alakasız bilgiler (örneğin arka plan) içermesi durumunda faydalıdır.
  • strength (float, isteğe bağlı, varsayılan 1.0) — Referans image'in dönüştürülme derecesini belirtir. 0 ile 1 arasında olmalıdır. image bir başlangıç noktası olarak kullanılır ve strength değeri arttıkça daha fazla gürültü eklenir. 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ü maksimumdur ve gürültü azaltma süreci, num_inference_steps içinde belirtilen tam tekrar sayısı kadar çalışır. 1 değeri, image'i temelde yok sayar.
  • num_inference_steps (int, isteğe bağlı, varsayılan 50) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Daha yüksek bir guidance scale değeri, modelin metinle prompt ile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale, guidance_scale > 1 olduğunda etkinleştirilir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Tanımlanmadıysa, bunun yerine negative_prompt_embeds parametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • eta (float, isteğe bağlı, varsayılan 0.0) — DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir torch.Generator.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenen, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan görüntünün çıktı biçimi. PIL.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, self.processor içinde tanımlanan AttentionProcessor'ye iletilen bir kwargs sözlüğü.
  • controlnet_conditioning_scale (float veya list[float], isteğe bağlı, varsayılan 0.5) — ControlNet çıktıları, orijinal unet içindeki artıma eklenmeden önce controlnet_conditioning_scale ile çarpılır. init içinde birden fazla ControlNet belirtildiyse, ilgili ölçekleri bir liste olarak ayarlayabilirsiniz.
  • control_guidance_start (float veya list[float], isteğe bağlı, varsayılan 0.0) — ControlNet'in uygulamaya başladığı toplam adım yüzdesi.
  • control_guidance_end (float veya list[float], isteğe bağlı, varsayılan 1.0) — ControlNet'in uygulamayı durdurduğu toplam adımların yüzdesi.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

StableDiffusionPipelineOutput veya tuple

return_dict True ise StableDiffusionPipelineOutput döndürülür, aksi halde bir tuple döndürülür; bu tuple'ın ilk öğesi üretilen görsellerin listesini, ikinci öğesi ise üretile görselin “not-safe-for-work” (nsfw) içerip içermediğini gösteren bool değerlerinin listesini içerir.

Üretim için pipeline'ın çağrı fonksiyonu.

Örnekler:

>>> # !pip install transformers accelerate
>>> import cv2
>>> from diffusers import AutoPipelineForInpainting, ControlNetModel, DDIMScheduler
>>> from diffusers.utils import load_image
>>> import numpy as np
>>> from PIL import Image
>>> import torch

>>> init_image = load_image(
...     "https://huggingface.co/datasets/diffusers/test-arrays/resolve/main/stable_diffusion_inpaint/boy.png"
... )
>>> init_image = init_image.resize((512, 512))

>>> generator = torch.Generator(device="cpu").manual_seed(1)

>>> mask_image = load_image(
...     "https://huggingface.co/datasets/diffusers/test-arrays/resolve/main/stable_diffusion_inpaint/boy_mask.png"
... )
>>> mask_image = mask_image.resize((512, 512))


>>> def make_canny_condition(image):
...     image = np.array(image)
...     image = cv2.Canny(image, 100, 200)
...     image = image[:, :, None]
...     image = np.concatenate([image, image, image], axis=2)
...     image = Image.fromarray(image)
...     return image


>>> control_image = make_canny_condition(init_image)

>>> controlnet = ControlNetModel.from_pretrained(
...     "lllyasviel/control_v11p_sd15_inpaint", torch_dtype=torch.float16
... )
>>> pipe = AutoPipelineForInpainting.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5",
...     controlnet=controlnet,
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )

>>> pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config)
>>> pipe.enable_model_cpu_offload()

>>> # generate image
>>> image = pipe(
...     "a handsome man with ray-ban sunglasses",
...     num_inference_steps=20,
...     generator=generator,
...     eta=1.0,
...     image=init_image,
...     mask_image=mask_image,
...     control_image=control_image,
...     pag_scale=0.3,
... ).images[0]

encode_prompt

< >

( promptdevicenum_images_per_promptdo_classifier_free_guidancenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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.
  • lora_scale (float, isteğe bağlı) — LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak LoRA ölçeği.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionXLPAGPipeline

sınıf diffusers.StableDiffusionXLPAGPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelscheduler: KarrasDiffusionSchedulersimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = Noneforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çö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 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ü kullanır, özellikle laion/CLIP-ViT-bigG-14-laion2B-39B-b160k değişkenini.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer sınıfının tokenization aracı.
  • 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 istek 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örsellerine filigran eklemek 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 filigran 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__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50timesteps: list = Nonesigmas: list = Nonedenoising_end: float | None = Noneguidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneguidance_rescale: float = 0.0original_size: tuple[int, int] | None = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple[int, int] | None = Nonenegative_original_size: tuple[int, int] | None = Nonenegative_crops_coords_top_left: tuple = (0, 0)negative_target_size: tuple[int, int] | None = Noneclip_skip: int | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerine prompt_embeds geçirilmelidir.
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e 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: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış stabilityai/stable-diffusion-xl-base-1.0 ve kontrol noktaları için iyi çalışmaz.
  • width (int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış stabilityai/stable-diffusion-xl-base-1.0 ve kontrol noktaları için 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ı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılı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 oranını (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 hattı kurulumunun bir parçası olarak bu hat 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 makalesinde tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'daki 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, prompt ile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak 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 listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput döndürülüp döndürülmemesi.
  • cross_attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • guidance_rescale (float, isteğe bağlı, 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ü, zero terminal SNR kullanılırken 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ünür. Belirtilmediyse original_size varsayılan olarak (height, width) değerini alır. SDXL’in mikro-konumlama (micro-conditioning) bileşenidir; bunun açıklaması https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde yer alır.
  • 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 parametresini (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çıklanan SDXL 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 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 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. SDXL’in mikro-koşullandırmasının bir parçasıdır; https://huggingface.co/papers/2307.01952 makalesinin 2.2 bölümünde açıklanmıştır. Daha fazla bilgi için bu sorun başlığına 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 negatif olarak 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çı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.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan bir işlev. İşlev 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 belirtilen tüm tensörlerin listesini içerir.
  • 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput veya tuple

return_dict True ise ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput, aksi halde bir tuple. Bir 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 AutoPipelineForText2Image

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

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

encode_prompt

< >

( prompt: strprompt_2: str | None = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | None = Nonenegative_prompt_2: str | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e 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 prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionXLPAGImg2ImgPipeline

sınıf diffusers.StableDiffusionXLPAGImg2ImgPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelscheduler: KarrasDiffusionSchedulersimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = Nonerequires_aesthetics_score: bool = Falseforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çö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 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ü kullanır, özellikle laion/CLIP-ViT-bigG-14-laion2B-39B-b160k değişkenini.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer sınıfının tokenization aracı.
  • 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 istek 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örsellerine filigran eklemek 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 filigran 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__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonestrength: float = 0.3num_inference_steps: int = 50timesteps: list = Nonesigmas: list = Nonedenoising_start: float | None = Nonedenoising_end: float | None = Noneguidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneguidance_rescale: float = 0.0original_size: tuple = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple = Nonenegative_original_size: tuple[int, int] | None = Nonenegative_crops_coords_top_left: tuple = (0, 0)negative_target_size: tuple[int, int] | None = Noneaesthetic_score: float = 6.0negative_aesthetic_score: float = 2.5clip_skip: int | None = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → ~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerine prompt_embeds geçirilmelidir.
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e 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]) — Hattın (pipeline) değiştireceği görsel(ler).
  • strength (float, isteğe bağlı, 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 seviyeye ulaşacak ve gürültü azaltma süreci, num_inference_steps'te belirtilen tam yineleme sayısı kadar çalışacaktır. Dolayısıyla 1 değeri, image'i fiilen yok sayar. denoising_start'ın bir tamsayı olarak belirtilmesi durumunda, 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ı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • denoising_start (float, isteğe bağlı) — Belirtilirse, gürültü giderme sürecinin başlatılmadan önce atlanacak oranını (0.0 ile 1.0 arasında) gösterir. Sonuç olarak, gürültü giderme sürecinin ilk kısmı atlanır ve geçirilen image kısmen gürültüsü giderilmiş bir görüntü olarak kabul edilir. Dikkat edin, bu parametre belirtildiğinde strength yok sayılır. denoising_start parametresi, bu hattın Görüntü Kalitesini İyileştirme bölümünde ayrıntılandırıldığı gibi bir “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 oranını (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 son 20'lik zaman adımı hâlâ gerekli) ve denoising_start değeri 0.8 olarak ayarlanmış bir halef pipeline tarafından, zamanlayıcının yalnızca son %20'sini gürültüden arındırması için gürültüden arındırılmalıdır. Görsel Kalitesini İyileştirme'da ayrıntılı olarak açıklanan “Mixture of Denoisers” çoklu pipeline kurulumunun bir parçası olarak bu pipeline kullanıldığında, denoising_end parametresi ideal olarak kullanılmalıdır.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper makalesindeki 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, prompt metniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak 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 listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput döndürülüp döndürülmemesi.
  • cross_attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • guidance_rescale (float, isteğe bağlı, 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ü, zero terminal SNR kullanılırken 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ünür. Belirtilmediyse original_size varsayılan olarak (height, width) değerini alır. SDXL’in mikro-konumlama (micro-conditioning) bileşenidir; bunun açıklaması https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde yer alır.
  • 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 parametresini (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çıklanan SDXL 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 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 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. SDXL’in mikro-koşullandırmasının bir parçasıdır; https://huggingface.co/papers/2307.01952 makalesinin 2.2 bölümünde açıklanmıştır. Daha fazla bilgi için bu sorun başlığına 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 negatif olarak 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çı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.
  • aesthetic_score (float, isteğe bağlı, varsayılan 6.0) — Oluşturulan görüntünün estetik puanını, pozitif metin koşulunu etkileyerek simüle etmek için kullanılır. https://huggingface.co/papers/2307.01952 adresindeki 2.2 bölümünde açıklanan SDXL 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şenlerinden biridir. 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

~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 AutoPipelineForImage2Image
>>> from diffusers.utils import load_image

>>> pipe = AutoPipelineForImage2Image.from_pretrained(
...     "stabilityai/stable-diffusion-xl-refiner-1.0",
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> 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, pag_scale=0.3).images[0]

encode_prompt

< >

( prompt: strprompt_2: str | None = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | None = Nonenegative_prompt_2: str | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e 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 prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionXLPAGInpaintPipeline

sınıf diffusers.StableDiffusionXLPAGInpaintPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelscheduler: KarrasDiffusionSchedulersimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = Nonerequires_aesthetics_score: bool = Falseforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çö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 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ü kullanır, özellikle laion/CLIP-ViT-bigG-14-laion2B-39B-b160k değişkenini.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer sınıfının tokenization aracı.
  • 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 istek 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örsellerine filigran eklemek 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 filigran 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__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemasked_image_latents: Tensor = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = Nonestrength: float = 0.9999num_inference_steps: int = 50timesteps: list = Nonesigmas: list = Nonedenoising_start: float | None = Nonedenoising_end: float | None = Noneguidance_scale: float = 7.5negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Noneguidance_rescale: float = 0.0original_size: tuple = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple = Nonenegative_original_size: tuple[int, int] | None = Nonenegative_crops_coords_top_left: tuple = (0, 0)negative_target_size: tuple[int, int] | None = Noneaesthetic_score: float = 6.0negative_aesthetic_score: float = 2.5clip_skip: int | None = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → ~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerine prompt_embeds geçirilmelidir.
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda prompt kullanılır
  • image (PIL.Image.Image) — İnpainting işlemine tabi tutulacak Image veya bir görüntü partisini temsil eden tensör, yani görüntünün bazı kısımları mask_image ile maskeleme yapılarak prompt’a göre yeniden boyanacaktır.
  • mask_image (PIL.Image.Image) — Image, veya image üzerinde maskeleme yapılacak bir görüntü partisini temsil eden tensör. Maskedeki beyaz pikseller yeniden boyanırken, siyah pikseller korunur. 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 kanal yerine tek bir renk kanalı (L) içermelidir; bu durumda beklenen şekil (B, H, W, 1) olur.
  • masked_image_latents (torch.Tensor, isteğe bağlı) — Maskeleme uygulanmış görüntünün önceden kodlanmış latent değeri (inpainting için).
  • height (int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış stabilityai/stable-diffusion-xl-base-1.0 ve kontrol noktaları için iyi çalışmaz.
  • width (int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış stabilityai/stable-diffusion-xl-base-1.0 ve kontrol noktaları için iyi çalışmaz.
  • padding_mask_crop (int, isteğe bağlı, varsayılan None) — Görsel ve maskelemeye uygulanacak kırpma için kenar boşluğu boyutu. None ise görsel ve mask_image üzerinde kırpma uygulanmaz. padding_mask_crop None değilse, önce görselle 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örsel ve mask_image, inpainting için orijinal görsel boyutuna yeniden boyutlandırılmadan önce genişletilen alana göre kırpılır. Bu, maskelenmiş alanın küçükken görselin büyük olması ve inpainting için alakasız bilgiler (örneğin arka plan) içermesi durumunda faydalıdır.
  • strength (float, isteğe bağlı, varsayılan 0.9999) — Kavramsal olarak, referans image'in maskelenmiş bölümü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 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ğerinde belirtilen tam tekrar sayısı kadar çalışacaktır. Dolayısıyla 1 değeri, referans image'in maskelenmiş bölümünü fiilen yok sayar. denoising_start'ın 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ı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • denoising_start (float, isteğe bağlı) — Belirtilirse, gürültü giderme sürecinin başlatılmadan önce atlanacak oranını (0.0 ile 1.0 arasında) gösterir. Sonuç olarak, gürültü giderme sürecinin ilk kısmı atlanır ve geçirilen image kısmen gürültüsü giderilmiş bir görüntü olarak kabul edilir. Dikkat edin, bu parametre belirtildiğinde strength yok sayılır. denoising_start parametresi, bu hattın Görüntü Çıktısını İnce Ayarlama bölümünde ayrıntılandırıldığı gibi bir “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 oranını (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 son 20'lik zaman adımları hâlâ gerekli) ve denoising_start değeri 0.8 olarak ayarlanmış bir halef pipeline tarafından, zamanlayıcının yalnızca son %20'sini gürültüden arındırması için 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 pipeline kurulumunun bir parçası olarak bu pipeline kullanıldığında, denoising_end parametresi ideal olarak kullanılmalıdır.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper makalesindeki 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, prompt metniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri 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 oluşturulacak 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 torch üreteci listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • 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çindeki 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ünür. Belirtilmediyse original_size varsayılan olarak (height, width) değerini alır. SDXL’in mikro-konumlama (micro-conditioning) bileşenidir; bunun açıklaması https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde yer alır.
  • 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 parametresini (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çıklanan SDXL 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 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 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. SDXL’in mikro-koşullandırmasının bir parçasıdır; https://huggingface.co/papers/2307.01952 makalesinin 2.2 bölümünde açıklanmıştır. Daha fazla bilgi için bu sorun başlığına 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 negatif olarak 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çı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.
  • aesthetic_score (float, isteğe bağlı, varsayılan 6.0) — Oluşturulan görüntünün estetik puanını, pozitif metin koşulunu etkileyerek simüle etmek için kullanılır. https://huggingface.co/papers/2307.01952 adresindeki 2.2 bölümünde açıklanan SDXL 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şenlerinden biridir. 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput veya tuple

return_dict True ise ~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput, aksi halde bir 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 AutoPipelineForInpainting
>>> from diffusers.utils import load_image

>>> pipe = AutoPipelineForInpainting.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     torch_dtype=torch.float16,
...     variant="fp16",
...     enable_pag=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,
...     pag_scale=0.3,
... ).images[0]

encode_prompt

< >

( prompt: strprompt_2: str | None = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | None = Nonenegative_prompt_2: str | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e 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 prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionXLControlNetPAGPipeline

sınıf diffusers.StableDiffusionXLControlNetPAGPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelcontrolnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModelscheduler: KarrasDiffusionSchedulersforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonefeature_extractor: CLIPImageProcessorPil = Noneimage_encoder: CLIPVisionModelWithProjection = Nonepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı (clip-vit-large-patch14).
  • text_encoder_2 (CLIPTextModelWithProjection) — İkinci dondurulmuş metin kodlayıcı (laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).
  • tokenizer (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • tokenizer_2 (CLIPTokenizer) — Metni tokenleştirmek için bir CLIPTokenizer.
  • unet (UNet2DConditionModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir UNet2DConditionModel.
  • controlnet (ControlNetModel veya list[ControlNetModel]) — Gürültü azaltma işlemi sırasında unet bileşenine ek koşullandırma sağlar. Birden fazla ControlNet'i bir liste olarak ayarlarsanız, her bir ControlNet'in çıktıları toplanarak tek bir birleşik ek koşullandırma oluşturulur.
  • 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 istek 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örsellerine filigran eklemek 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 filigran kullanılmaz.

ControlNet yönlendirmesiyle Stable Diffusion XL kullanılarak metinden görüntüye üretim için pipeline.

Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

Pipeline ayrıca aşağıdaki yükleme yöntemlerini devralır:

__call__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50timesteps: list = Nonesigmas: list = Nonedenoising_end: float | None = Noneguidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Nonecontrolnet_conditioning_scale: float | list[float] = 1.0control_guidance_start: float | list[float] = 0.0control_guidance_end: float | list[float] = 1.0original_size: tuple = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple = Nonenegative_original_size: tuple[int, int] | None = Nonenegative_crops_coords_top_left: tuple = (0, 0)negative_target_size: tuple[int, int] | None = Noneclip_skip: int | None = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → StableDiffusionPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresini iletmeniz gerekir.
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda prompt kullanılır.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image], list[np.ndarray], — list[list[torch.Tensor]], list[list[np.ndarray]] veya list[list[PIL.Image.Image]]): Üretim sırasında unet’e rehberlik sağlamak için sağlanması gereken ControlNet giriş koşulu. Tür torch.Tensor olarak belirtilirse, ControlNet’e olduğu gibi iletilir. PIL.Image.Image de bir görsel olarak kabul edilebilir. Çıktı görselinin boyutları varsayılan olarak image’ın boyutlarıyla aynıdır. Yükseklik ve/veya genişlik parametreleri geçirilirse, image buna göre yeniden boyutlandırılır. init içinde birden fazla ControlNet belirtilmişse, görsellerin bir liste olarak geçirilmesi gerekir; böylece listenin her öğesi, tek bir ControlNet’e girdi olarak doğru şekilde toplu işleme (batch) tabi tutulabilir.
  • height (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği. 512 pikselin altındaki değerler, düşük çözünürlükler için özel olarak ince ayarlanmamış stabilityai/stable-diffusion-xl-base-1.0 ve kontrol noktalarında iyi çalışmaz.
  • width (int, isteğe bağlı, varsayılan self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği. 512 pikselin altındaki değerler, düşük çözünürlükler için özel olarak ince ayarlanmamış stabilityai/stable-diffusion-xl-base-1.0 ve kontrol noktalarında 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ı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılı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 oranını (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 hattı kurulumunun bir parçası olarak bu hat kullanıldığında, denoising_end parametresinin ideal olarak kullanılması önerilir.
  • guidance_scale (float, isteğe bağlı, varsayılan 5.0) — Daha yüksek bir guidance scale değeri, modelin metinle prompt ile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale, guidance_scale > 1 olduğunda etkinleştirilir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Tanımlanmadıysa, bunun yerine negative_prompt_embeds parametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır.
  • negative_prompt_2 (str veya list[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Bu, tokenizer_2 ve text_encoder_2'ye gönderilir. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • eta (float, isteğe bağlı, varsayılan 0.0) — DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan bir torch.Generator.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenen, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak (istifade ağırlıklandırma) için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından üretilir.
  • pooled_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, havuzlanmış metin gömme değerleri prompt girdi argümanından üretilir.
  • negative_pooled_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, havuzlanmış negative_prompt_embeds değerleri negative_prompt girdi argümanından oluşturulur.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan görüntünün çıktı biçimi. PIL.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, self.processor içinde tanımlanan AttentionProcessor'ye iletilen bir kwargs sözlüğü.
  • controlnet_conditioning_scale (float or list[float], isteğe bağlı, varsayılan 1.0) — ControlNet çıktıları, orijinal unet içindeki artıma eklenmeden önce controlnet_conditioning_scale ile çarpılır. init içinde birden fazla ControlNet belirtildiyse, ilgili ölçekleri bir liste olarak ayarlayabilirsiniz.
  • control_guidance_start (float veya list[float], isteğe bağlı, varsayılan 0.0) — ControlNet'in uygulamaya başladığı toplam adım yüzdesi.
  • control_guidance_end (float veya list[float], isteğe bağlı, varsayılan 1.0) — ControlNet'in uygulamayı durdurduğu toplam adımların yüzdesi.
  • 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ünür. Belirtilmediyse original_size varsayılan olarak (height, width) değerini alır. SDXL’in mikro-konumlama (micro-conditioning) bileşenidir; bunun açıklaması https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde yer alır.
  • 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 parametresini (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çıklanan SDXL 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 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 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. SDXL’in mikro-koşullandırmasının bir parçasıdır; https://huggingface.co/papers/2307.01952 makalesinin 2.2 bölümünde açıklanmıştır. Daha fazla bilgi için bu sorun başlığına 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 negatif olarak 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çı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.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

StableDiffusionPipelineOutput veya tuple

return_dict True ise StableDiffusionPipelineOutput döndürülür, aksi halde çıktı görüntülerini içeren bir tuple döndürülür.

Üretim için pipeline'ın çağrı fonksiyonu.

Örnekler:

>>> # !pip install opencv-python transformers accelerate
>>> from diffusers import AutoPipelineForText2Image, ControlNetModel, AutoencoderKL
>>> from diffusers.utils import load_image
>>> import numpy as np
>>> import torch

>>> import cv2
>>> from PIL import Image

>>> prompt = "aerial view, a futuristic research complex in a bright foggy jungle, hard lighting"
>>> negative_prompt = "low quality, bad quality, sketches"

>>> # download an image
>>> image = load_image(
...     "https://hf.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd_controlnet/hf-logo.png"
... )

>>> # initialize the models and pipeline
>>> controlnet_conditioning_scale = 0.5  # recommended for good generalization
>>> controlnet = ControlNetModel.from_pretrained(
...     "diffusers/controlnet-canny-sdxl-1.0", torch_dtype=torch.float16
... )
>>> vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     controlnet=controlnet,
...     vae=vae,
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> pipe.enable_model_cpu_offload()

>>> # get canny image
>>> image = np.array(image)
>>> image = cv2.Canny(image, 100, 200)
>>> image = image[:, :, None]
>>> image = np.concatenate([image, image, image], axis=2)
>>> canny_image = Image.fromarray(image)

>>> # generate image
>>> image = pipe(
...     prompt, controlnet_conditioning_scale=controlnet_conditioning_scale, image=canny_image, pag_scale=0.3
... ).images[0]

encode_prompt

< >

( prompt: strprompt_2: str | None = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | None = Nonenegative_prompt_2: str | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e 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 prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak 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

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

Parametreler

  • w (torch.Tensor) — Belirtilen bir yönlendirme ölçeğiyle gömme vektörleri üretin ve ardından zaman adımları gömmelerini zenginleştirmek için kullanın.
  • embedding_dim (int, isteğe bağlı, varsayılan 512) — Oluşturulacak gömme boyutu.
  • dtype (torch.dtype, isteğe bağlı, varsayılan torch.float32) — Oluşturulan gömme vektörlerinin veri türü.

Dönüş değeri

torch.Tensor

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

Bkz. https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionXLControlNetPAGImg2ImgPipeline

sınıf diffusers.StableDiffusionXLControlNetPAGImg2ImgPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelcontrolnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModelscheduler: KarrasDiffusionSchedulersrequires_aesthetics_score: bool = Falseforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonefeature_extractor: CLIPImageProcessorPil = Noneimage_encoder: CLIPVisionModelWithProjection = Nonepag_applied_layers: str | list[str] = 'mid' )

Parametreler

  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.
  • text_encoder (CLIPTextModel) — Donmuş metin kodlayıcı. Stable Diffusion, 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ü kullanır, özellikle laion/CLIP-ViT-bigG-14-laion2B-39B-b160k değişkenini.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer sınıfının tokenization aracı.
  • 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.
  • controlnet (ControlNetModel veya list[ControlNetModel]) — Gürültü azaltma işlemi sırasında unet'e ek koşullandırma sağlar. Birden fazla ControlNet'i bir liste olarak ayarlarsanız, her ControlNet'in çıktıları birleştirilerek tek bir ek koşullandırma oluşturmak üzere toplanır.
  • 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 istek 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örsellerine filigran eklemek 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 filigran kullanılmaz.
  • feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellik çıkarmak için kullanılan CLIPImageProcessor; safety_checker girdileri olarak kullanılır.

ControlNet yönlendirmesiyle Stable Diffusion XL kullanarak görüntüden 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__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonecontrol_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonestrength: float = 0.8num_inference_steps: int = 50guidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Nonecontrolnet_conditioning_scale: float | list[float] = 0.8guess_mode: bool = Falsecontrol_guidance_start: float | list[float] = 0.0control_guidance_end: float | list[float] = 1.0original_size: tuple = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple = Nonenegative_original_size: tuple[int, int] | None = Nonenegative_crops_coords_top_left: tuple = (0, 0)negative_target_size: tuple[int, int] | None = Noneaesthetic_score: float = 6.0negative_aesthetic_score: float = 2.5clip_skip: int | None = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → ~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerine prompt_embeds geçirilmelidir.
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda prompt kullanılır
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image], list[np.ndarray], — list[list[torch.Tensor]], list[list[np.ndarray]] veya list[list[PIL.Image.Image]]): Başlangıç görüntüsü, görüntü oluşturma sürecinin başlangıç noktası olarak kullanılacaktır. Doğrudan latentler geçiriliyorsa, image olarak görüntü latentlerini de kabul edebilir; bu durumda yeniden kodlanmaz.
  • control_image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image], list[np.ndarray], — list[list[torch.Tensor]], list[list[np.ndarray]] veya list[list[PIL.Image.Image]]): ControlNet giriş koşulu. ControlNet, Unet'e rehberlik üretmek için bu giriş koşulunu kullanır. Tip torch.Tensor olarak belirtilirse, ControlNet'e olduğu gibi iletilir. PIL.Image.Image de bir görsel olarak kabul edilebilir. Çıktı görselinin boyutları varsayılan olarak image'ın boyutlarına eşittir. Yükseklik ve/veya genişlik geçirilirse, image bunlara göre yeniden boyutlandırılır. init içinde birden fazla ControlNet belirtilmişse, görsellerin tek bir controlnet'e girdi olarak doğru şekilde toplu işlenebilmesi için bir liste olarak geçirilmesi gerekir.
  • height (int, isteğe bağlı, varsayılan olarak control_image boyutu) — Oluşturulan görüntünün piksel cinsinden yüksekliği. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış kontrol noktaları ve stabilityai/stable-diffusion-xl-base-1.0 için iyi çalışmaz.
  • width (int, isteğe bağlı, varsayılan olarak control_image boyutu) — Oluşturulan görüntünün piksel cinsinden genişliği. 512 pikselin altındaki değerler, düşük çözünürlükler üzerinde özellikle ince ayar yapılmamış kontrol noktaları ve stabilityai/stable-diffusion-xl-base-1.0 için iyi çalışmaz.
  • strength (float, isteğe bağlı, varsayılan 0.8) — Referans image'in ne ölçüde dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır. image bir başlangıç noktası olarak kullanılır ve strength değeri arttıkça daha fazla gürültü eklenir. Gürültü azaltma adım sayısı, başlangıçta eklenen gürültü miktarına bağlıdır. strength 1 olduğunda eklenen gürültü maksimumdur ve gürültü azaltma süreci, num_inference_steps içinde belirtilen tam yineleme sayısı kadar çalışır. 1 değeri, image'i temelde yok sayar.
  • num_inference_steps (int, isteğe bağlı, varsayılan 50) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.5) — Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper makalesindeki 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, prompt metniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak 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 listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • ip_adapter_image — (PipelineImageInput, isteğe bağlı): IP Adapter'larla çalışmak için isteğe bağlı görüntü girdisi.
  • ip_adapter_image_embeds (list[torch.Tensor], isteğe bağlı) — IP-Adapter için önceden oluşturulmuş gömme (embedding) değerleri. 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 değerini içermelidir. Sağlanmazsa, gömme değerleri ip_adapter_image girdi argümanından hesaplanır.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • 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çindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • controlnet_conditioning_scale (float veya list[float], isteğe bağlı, varsayılan 1.0) — controlnet çıktıları, orijinal unet'teki rezidüye eklenmeden önce controlnet_conditioning_scale ile çarpılır. init'te birden fazla ControlNet belirtildiyse, ilgili ölçekleri bir liste olarak ayarlayabilirsiniz.
  • guess_mode (bool, isteğe bağlı, varsayılan False) — Bu modda, tüm istekleri kaldırsanız bile ControlNet kodlayıcısı, girdi görüntüsünün içeriğini en iyi şekilde tanımaya çalışır. guidance_scale için 3.0 ile 5.0 arası değerler önerilir.
  • control_guidance_start (float veya list[float], isteğe bağlı, varsayılan 0.0) — Controlnet'in uygulamaya başladığı toplam adım yüzdesi.
  • control_guidance_end (float veya list[float], isteğe bağlı, varsayılan 1.0) — Controlnet'in uygulamayı durdurduğu toplam adımların yüzdesi.
  • 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ünür. Belirtilmediyse original_size varsayılan olarak (height, width) değerini alır. SDXL’in mikro-konumlama (micro-conditioning) bileşenidir; bunun açıklaması https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde yer alır.
  • 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 parametresini (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çıklanan SDXL 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 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 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. SDXL’in mikro-koşullandırmasının bir parçasıdır; https://huggingface.co/papers/2307.01952 makalesinin 2.2 bölümünde açıklanmıştır. Daha fazla bilgi için bu sorun başlığına 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 negatif olarak 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çı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.
  • aesthetic_score (float, isteğe bağlı, varsayılan 6.0) — Oluşturulan görüntünün estetik puanını, pozitif metin koşulunu etkileyerek simüle etmek için kullanılır. https://huggingface.co/papers/2307.01952 adresindeki 2.2 bölümünde açıklanan SDXL 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şenlerinden biridir. 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, aşağıdaki argümanlara sahip bir fonksiyon veya PipelineCallback / MultiPipelineCallbacks alt sınıfı: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtilen 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.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput veya tuple

return_dict True ise ~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput, aksi halde çıktı görüntülerini içeren bir tuple.

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

Örnekler:

>>> # pip install accelerate transformers safetensors diffusers

>>> import torch
>>> import numpy as np
>>> from PIL import Image

>>> from transformers import DPTFeatureExtractor, DPTForDepthEstimation
>>> from diffusers import ControlNetModel, StableDiffusionXLControlNetPAGImg2ImgPipeline, AutoencoderKL
>>> from diffusers.utils import load_image

>>> depth_estimator = DPTForDepthEstimation.from_pretrained("Intel/dpt-hybrid-midas").to("cuda")
>>> feature_extractor = DPTFeatureExtractor.from_pretrained("Intel/dpt-hybrid-midas")
>>> controlnet = ControlNetModel.from_pretrained(
...     "diffusers/controlnet-depth-sdxl-1.0-small",
...     variant="fp16",
...     use_safetensors="True",
...     torch_dtype=torch.float16,
... )
>>> vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
>>> pipe = StableDiffusionXLControlNetPAGImg2ImgPipeline.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     controlnet=controlnet,
...     vae=vae,
...     variant="fp16",
...     use_safetensors=True,
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> pipe.enable_model_cpu_offload()


>>> def get_depth_map(image):
...     image = feature_extractor(images=image, return_tensors="pt").pixel_values.to("cuda")
...     with torch.no_grad(), torch.autocast("cuda"):
...         depth_map = depth_estimator(image).predicted_depth

...     depth_map = torch.nn.functional.interpolate(
...         depth_map.unsqueeze(1),
...         size=(1024, 1024),
...         mode="bicubic",
...         align_corners=False,
...     )
...     depth_min = torch.amin(depth_map, dim=[1, 2, 3], keepdim=True)
...     depth_max = torch.amax(depth_map, dim=[1, 2, 3], keepdim=True)
...     depth_map = (depth_map - depth_min) / (depth_max - depth_min)
...     image = torch.cat([depth_map] * 3, dim=1)
...     image = image.permute(0, 2, 3, 1).cpu().numpy()[0]
...     image = Image.fromarray((image * 255.0).clip(0, 255).astype(np.uint8))
...     return image


>>> prompt = "A robot, 4k photo"
>>> image = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
...     "/kandinsky/cat.png"
... ).resize((1024, 1024))
>>> controlnet_conditioning_scale = 0.5  # recommended for good generalization
>>> depth_image = get_depth_map(image)

>>> images = pipe(
...     prompt,
...     image=image,
...     control_image=depth_image,
...     strength=0.99,
...     num_inference_steps=50,
...     controlnet_conditioning_scale=controlnet_conditioning_scale,
... ).images
>>> images[0].save(f"robot_cat.png")

encode_prompt

< >

( prompt: strprompt_2: str | None = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | None = Nonenegative_prompt_2: str | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e 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 prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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ı) — tokenizer_2 ve text_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda da negative_prompt kullanılır.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden 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ı) — Önceden 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şturulur.
  • 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ı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.

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

StableDiffusion3PAGPipeline

sınıf diffusers.StableDiffusion3PAGPipeline

< >

( transformer: SD3Transformer2DModelscheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLtext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertext_encoder_2: CLIPTextModelWithProjectiontokenizer_2: CLIPTokenizertext_encoder_3: T5EncoderModeltokenizer_3: T5Tokenizerpag_applied_layers: str | list[str] = 'blocks.1' )

Parametreler

  • transformer (SD3Transformer2DModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan Koşullu Transformer (MMDiT) mimarisi.
  • scheduler (FlowMatchEulerDiscreteScheduler) — Kodlanmış görüntü latentlerini gürültüden arındırmak için transformer ile birlikte kullanılacak bir zamanlayıcı.
  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.
  • text_encoder (CLIPTextModelWithProjection) — CLIP, özellikle clip-vit-large-patch14 varyantı, boyutu hidden_size olan bir köşegen matrisle başlatılan ek bir projeksiyon katmanı ile.
  • text_encoder_2 (CLIPTextModelWithProjection) — CLIP, özellikle laion/CLIP-ViT-bigG-14-laion2B-39B-b160k değişkeni.
  • text_encoder_3 (T5EncoderModel) — Donmuş metin kodlayıcı. Stable Diffusion 3 T5'i, özellikle de t5-v1_1-xxl varyantını kullanır.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer sınıfının tokenization aracı.
  • tokenizer_2 (CLIPTokenizer) — CLIPTokenizer sınıfının ikinci Tokenizer'ı.
  • tokenizer_3 (T5TokenizerFast) — T5Tokenizer sınıfının tokenizer'ı.

Stable Diffusion 3 kullanılarak metinden görüntüye üretim için PAG hattı

__call__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneprompt_3: str | list[str] | None = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 28sigmas: list[float] | None = Noneguidance_scale: float = 7.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenegative_prompt_3: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonepooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truejoint_attention_kwargs: dict[str, typing.Any] | None = Noneclip_skip: int | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 256pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → ~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa 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 bunun yerine prompt kullanılır.
  • prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek istem veya istemler. Tanımlanmamışsa bunun yerine prompt kullanılır.
  • height (int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır.
  • width (int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır.
  • 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.
  • sigmas (list[float], isteğe bağlı) — set_timesteps yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.0) — Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper makalesindeki 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, prompt metniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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 üretimini yönlendirmemek için tokenizer_2 ve text_encoder_2'ye gönderilecek istem veya istemler. Tanımlanmamışsa bunun yerine negative_prompt kullanılır
  • negative_prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek, görsel üretimini yönlendirmemesi gereken istem veya istemler. Tanımlanmamışsa bunun yerine negative_prompt kullanılır
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • latents (torch.FloatTensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görsel üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ince ayar yapmak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden 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.FloatTensor, 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.FloatTensor, isteğe bağlı) — Önceden 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şturulur.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput döndürülüp döndürülmemesi.
  • joint_attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan bir işlev. İşlev 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 belirtilen tüm tensörlerin listesini içerir.
  • 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.
  • max_sequence_length (int, varsayılan 256) — prompt ile kullanılacak maksimum dizi uzunluğu.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput veya tuple

return_dict True ise ~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput, aksi halde bir tuple. Bir 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 AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "stabilityai/stable-diffusion-3-medium-diffusers",
...     torch_dtype=torch.float16,
...     enable_pag=True,
...     pag_applied_layers=["blocks.13"],
... )
>>> pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> image = pipe(prompt, guidance_scale=5.0, pag_scale=0.7).images[0]
>>> image.save("sd3_pag.png")

encode_prompt

< >

( prompt: str | list[str]prompt_2: str | list[str]prompt_3: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenegative_prompt_3: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonepooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneclip_skip: int | None = Nonemax_sequence_length: int = 256lora_scale: float | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda prompt kullanılır
  • prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda prompt kullanılır
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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 üretimini yönlendirmemek için tokenizer_2 ve text_encoder_2'ye gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda negative_prompt kullanılır.
  • negative_prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda negative_prompt kullanılır.
  • prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden 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.FloatTensor, 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.FloatTensor, isteğe bağlı) — Önceden 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şturulur.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • 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.

StableDiffusion3PAGImg2ImgPipeline

sınıf diffusers.StableDiffusion3PAGImg2ImgPipeline

< >

( transformer: SD3Transformer2DModelscheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLtext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertext_encoder_2: CLIPTextModelWithProjectiontokenizer_2: CLIPTokenizertext_encoder_3: T5EncoderModeltokenizer_3: T5Tokenizerpag_applied_layers: str | list[str] = 'blocks.1' )

Parametreler

  • transformer (SD3Transformer2DModel) — Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan Koşullu Transformer (MMDiT) mimarisi.
  • scheduler (FlowMatchEulerDiscreteScheduler) — Kodlanmış görüntü latentlerini gürültüden arındırmak için transformer ile birlikte kullanılacak bir zamanlayıcı.
  • vae (AutoencoderKL) — Görselleri latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.
  • text_encoder (CLIPTextModelWithProjection) — CLIP, özellikle clip-vit-large-patch14 varyantı, boyutu hidden_size olan bir köşegen matrisle başlatılan ek bir projeksiyon katmanı ile.
  • text_encoder_2 (CLIPTextModelWithProjection) — CLIP, özellikle laion/CLIP-ViT-bigG-14-laion2B-39B-b160k değişkeni.
  • text_encoder_3 (T5EncoderModel) — Donmuş metin kodlayıcı. Stable Diffusion 3 T5'i, özellikle de t5-v1_1-xxl varyantını kullanır.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer sınıfının tokenization aracı.
  • tokenizer_2 (CLIPTokenizer) — CLIPTokenizer sınıfının ikinci Tokenizer'ı.
  • tokenizer_3 (T5TokenizerFast) — T5Tokenizer sınıfının tokenizer'ı.

Stable Diffusion 3 kullanarak görüntüden görüntüye üretim için PAG hattı

__call__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneprompt_3: str | list[str] | None = Noneheight: int | None = Nonewidth: int | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonestrength: float = 0.6num_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float = 7.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenegative_prompt_3: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonepooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truejoint_attention_kwargs: dict[str, typing.Any] | None = Noneclip_skip: int | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 256pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → ~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa 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 bunun yerine prompt kullanılır.
  • prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek istem veya istemler. Tanımlanmamışsa bunun yerine prompt kullanılır.
  • height (int, isteğe bağlı, varsayılan self.default_sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır.
  • width (int, isteğe bağlı, varsayılan self.default_sample_size * self.vae_scale_factor) — Oluşturulan görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] veya list[np.ndarray]) — Başlangıç noktası olarak kullanılacak bir görüntü partisyonunu temsil eden Image, numpy dizisi veya tensör. Hem numpy dizisi hem de pytorch tensörü için beklenen değer aralığı [0, 1] arasındadır. Tensör veya tensör listesi ise beklenen şekil (B, C, H, W) veya (C, H, W) olmalıdır. Numpy dizisi veya dizi listesi ise beklenen şekil (B, H, W, C) veya (H, W, C) olmalıdır. Ayrıca görüntü latentlerini de image olarak kabul edebilir, ancak latentler doğrudan geçirilirse tekrar kodlanmaz.
  • strength (float, isteğe bağlı, varsayılan 0.8) — Referans image'in ne ölçüde dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır. image bir başlangıç noktası olarak kullanılır ve strength değeri arttıkça daha fazla gürültü eklenir. Gürültü azaltma adım sayısı, başlangıçta eklenen gürültü miktarına bağlıdır. strength 1 olduğunda eklenen gürültü maksimumdur ve gürültü azaltma süreci, num_inference_steps içinde belirtilen tam yineleme sayısı kadar çalışır. 1 değeri, image'i temelde yok sayar.
  • 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.
  • sigmas (list[float], isteğe bağlı) — set_timesteps yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • guidance_scale (float, isteğe bağlı, varsayılan 7.0) — Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper makalesindeki 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, prompt metniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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 üretimini yönlendirmemek için tokenizer_2 ve text_encoder_2'ye gönderilecek istem veya istemler. Tanımlanmamışsa bunun yerine negative_prompt kullanılır
  • negative_prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek, görsel üretimini yönlendirmemesi gereken istem veya istemler. Tanımlanmamışsa bunun yerine negative_prompt kullanılır
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • latents (torch.FloatTensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görsel üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ince ayar yapmak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden 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.FloatTensor, 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.FloatTensor, isteğe bağlı) — Önceden 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şturulur.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput döndürülüp döndürülmemesi.
  • joint_attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • callback_on_step_end (Callable, isteğe bağlı) — Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan bir işlev. İşlev 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 belirtilen tüm tensörlerin listesini içerir.
  • 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.
  • max_sequence_length (int, varsayılan 256) — prompt ile kullanılacak maksimum dizi uzunluğu.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput veya tuple

return_dict True ise ~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput, aksi halde bir tuple. Bir 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 StableDiffusion3PAGImg2ImgPipeline
>>> from diffusers.utils import load_image

>>> pipe = StableDiffusion3PAGImg2ImgPipeline.from_pretrained(
...     "stabilityai/stable-diffusion-3-medium-diffusers",
...     torch_dtype=torch.float16,
...     pag_applied_layers=["blocks.13"],
... )
>>> pipe.to("cuda")
>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"
>>> init_image = load_image(url).convert("RGB")
>>> image = pipe(prompt, image=init_image, guidance_scale=5.0, pag_scale=0.7).images[0]

encode_prompt

< >

( prompt: str | list[str]prompt_2: str | list[str]prompt_3: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenegative_prompt_3: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonepooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneclip_skip: int | None = Nonemax_sequence_length: int = 256lora_scale: float | None = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • prompt_2 (str veya list[str], isteğe bağlı) — tokenizer_2 ve text_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda prompt kullanılır
  • prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda prompt kullanılır
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool) — classifier free guidance kullanılacak mı
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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 üretimini yönlendirmemek için tokenizer_2 ve text_encoder_2'ye gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda negative_prompt kullanılır.
  • negative_prompt_3 (str veya list[str], isteğe bağlı) — tokenizer_3 ve text_encoder_3'e gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılarda negative_prompt kullanılır.
  • prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.FloatTensor, isteğe bağlı) — Önceden 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.FloatTensor, 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.FloatTensor, isteğe bağlı) — Önceden 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şturulur.
  • clip_skip (int, isteğe bağlı) — İstem gömmelemelerini hesaplanırken CLIP'ten atlanacak katman sayısı. 1 değeri, istem gömmelemelerini hesaplamak için son öncesi katmanın çıktısının kullanılacağı anlamına gelir.
  • 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.

PixArtSigmaPAGPipeline

sınıf diffusers.PixArtSigmaPAGPipeline

< >

( tokenizer: T5Tokenizertext_encoder: T5EncoderModelvae: AutoencoderKLtransformer: PixArtTransformer2DModelscheduler: KarrasDiffusionSchedulerspag_applied_layers: str | list[str] = 'blocks.1' )

PixArt-Sigma kullanılarak metinden görüntüye üretim için PAG hattı

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str = ''num_inference_steps: int = 20timesteps: list = Nonesigmas: list = Noneguidance_scale: float = 4.5num_images_per_prompt: int | None = 1height: int | None = Nonewidth: int | None = Noneeta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1clean_caption: bool = Trueuse_resolution_binning: bool = Truemax_sequence_length: int = 300pag_scale: float = 3.0pag_adaptive_scale: float = 0.0 ) → ImagePipelineOutput or tuple

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerine prompt_embeds geçirilmelidir.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, 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.
  • num_inference_steps (int, isteğe bağlı, varsayılan 100) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar.
  • timesteps (list[int], isteğe bağlı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. 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 yöntemlerinde sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılır.
  • guidance_scale (float, isteğe bağlı, varsayılan 4.5) — Classifier-Free Diffusion Guidance'de tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'daki 2. denklemin w'si olarak tanımlanır. Yönlendirme ölçeği, guidance_scale > 1 olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, prompt metniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına.
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • height (int, isteğe bağlı, varsayılan: self.unet.config.sample_size) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan: self.unet.config.sample_size) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • 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 listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • prompt_attention_mask (torch.Tensor, isteğe bağlı) — Metin gömme (embedding) için önceden oluşturulmuş dikkat maskesi.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. PixArt-Sigma için bu negatif istem "" olmalıdır. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından oluşturulur.
  • negative_prompt_attention_mask (torch.Tensor, isteğe bağlı) — Negatif metin gömme verileri için önceden oluşturulmuş dikkat maskesi.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL: PIL.Image.Image veya np.array.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~pipelines.stable_diffusion.IFPipelineOutput döndürülüp döndürülmemesi.
  • callback (Callable, isteğe bağlı) — Çıkarım sırasında her callback_steps adımda çağrılacak bir işlev. İşlev aşağıdaki argümanlarla çağrılacaktır: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, isteğe bağlı, varsayılan 1) — callback işlevinin çağrılma sıklığı. Belirtilmezse, callback her adımda çağrılır.
  • clean_caption (bool, isteğe bağlı, varsayılan True) — Gömleştirmeler oluşturulmadan önce açıklamanın temizlenip temizlenmeyeceğini belirtir. Bunun için beautifulsoup4 ve ftfy paketlerinin yüklü olması gerekir. Bağımlılıklar yüklü değilse, gömleştirmeler ham istemden oluşturulur.
  • use_resolution_binning (bool, varsayılan True) — True olarak ayarlanırsa, istenen yükseklik ve genişlik önce ASPECT_RATIO_1024_BIN kullanılarak en yakın çözümlere eşlenir. Oluşturulan latentler görüntülere çözümlendikten sonra, istenen çözünürlüğe yeniden boyutlandırılır. Kare olmayan görüntüler üretmek için faydalıdır.
  • max_sequence_length (int, varsayılan 300) — prompt ile kullanılacak maksimum dizi uzunluğu.
  • pag_scale (float, isteğe bağlı, varsayılan 3.0) — Bozulmuş dikkat yönlendirmesi için ölçekleme faktörü. 0.0 olarak ayarlanırsa, bozulmuş dikkat yönlendirmesi kullanılmaz.
  • pag_adaptive_scale (float, isteğe bağlı, varsayılan 0.0) — Bozulmuş dikkat yönlendirmesi için uyarlama ölçek faktörü. 0.0 olarak ayarlanırsa pag_scale kullanılır.

Dönüş değeri

ImagePipelineOutput veya tuple

return_dict True ise ImagePipelineOutput döndürülür, aksi halde ilk öğesi üretilen görüntülerin listesinden oluşan bir tuple döndürülür

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

Örnekler:

>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "PixArt-alpha/PixArt-Sigma-XL-2-1024-MS",
...     torch_dtype=torch.float16,
...     pag_applied_layers=["blocks.14"],
...     enable_pag=True,
... )
>>> pipe = pipe.to("cuda")

>>> prompt = "A small cactus with a happy face in the Sahara desert"
>>> image = pipe(prompt, pag_scale=4.0, guidance_scale=1.0).images[0]

encode_prompt

< >

( prompt: str | list[str]do_classifier_free_guidance: bool = Truenegative_prompt: str = ''num_images_per_prompt: int = 1device: typing.Optional[torch.device] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Noneclean_caption: bool = Falsemax_sequence_length: int = 300**kwargs )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem. Tanımlanmazsa, bunun yerine negative_prompt_embeds değeri geçirilmelidir. Yönlendirme kullanılmadığında yok sayılır (yani guidance_scale, 1'den küçükse yok sayılır). PixArt-Alpha için bu değer "" olmalıdır.
  • do_classifier_free_guidance (bool, isteğe bağlı, varsayılan True) — classifier free guidance kullanılacak mı
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — her prompt için oluşturulacak görsel sayısı
  • device — (torch.device, isteğe bağlı): Sonuç olarak elde edilen gömme vektörlerinin yerleştirileceği torch cihazı
  • prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömümleri. PixArt-Alpha için, "" dizgisinin gömümleri olmalıdır.
  • clean_caption (bool, varsayılan False) — True ise, fonksiyon kodlamadan önce sağlanan başlığı ön işler ve temizler.
  • max_sequence_length (int, varsayılan 300) — İstem için kullanılacak maksimum dizi uzunluğu.

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

Update on GitHub