Diffusers documentation

Kandinsky 3

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

Kandinsky 3

LoRA

Kandinsky 3, Vladimir Arkhipkin,Anastasia Maltseva,Igor Pavlov,Andrei Filatov,Arseniy Shakhmatov,Andrey Kuznetsov,Denis Dimitrov ve Zein Shaheen tarafından oluşturulmuştur.

GitHub sayfasındaki açıklama:

Kandinsky 3.0, Kandinsky2-x model ailesi üzerine inşa edilmiş açık kaynaklı bir metinden görüntüye difüzyon modelidir. Önceki sürümlerine kıyasla, metin kodlayıcı ve Diffusion U-Net modellerinin boyutları sırasıyla artırılarak modelin metin anlama ve görsel kalitesi iyileştirilmiştir.

Mimarisinde 3 ana bileşen bulunur:

  1. T5 mimarisine dayalı bir kodlayıcı-çözücü modeli olan FLAN-UL2.
  2. BigGAN-deep blokları içeren yeni U-Net mimarisi, parametre sayısını aynı tutarken derinliği ikiye katlar.
  3. Sber-MoVQGAN, görüntü restorasyonunda üstün sonuçlara sahip olduğu kanıtlanmış bir çözücü (decoder)dur.

Orijinal kod tabanı ai-forever/Kandinsky-3 adresinde bulunabilir.

Görselden görsel, metinden görsel ve inpainting gibi görevler için resmi model checkpoint'lerini Hub'daki Kandinsky Community kuruluşunda bulabilirsiniz.

Zamanlayıcı hızı ve kalitesi arasındaki ödünleşimi nasıl keşfedebileceğinizi öğrenmek için zamanlayıcılar kılavuzunu mutlaka inceleyin ve aynı bileşenleri birden fazla boru hattına nasıl verimli bir şekilde yükleyebileceğinizi öğrenmek için boru hatları arasında bileşenleri yeniden kullanma bölümüne göz atın.

Kandinsky3Pipeline

sınıf diffusers.Kandinsky3Pipeline

< >

( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )

__call__

< >

( prompt: str | list[str] = Nonenum_inference_steps: int = 25guidance_scale: float = 3.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1height: int | None = 1024width: int | None = 1024generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truelatents = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → 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.
  • num_inference_steps (int, isteğe bağlı, varsayılan 25) — 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 3.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ı.
  • 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.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • 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.
  • attention_mask (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş dikkat maskesi. prompt_embeds doğrudan geçiriliyorsa sağlanmalıdır.
  • negative_attention_mask (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif dikkat maskesi. negative_prompt_embeds doğrudan geçiriliyorsa sağlanmalıdı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.IFPipelineOutput döndürülüp döndürülmemesi.
  • 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.
  • 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.

Dönüş değeri

ImagePipelineOutput veya tuple

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

Örnekler:

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

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "kandinsky-community/kandinsky-3", variant="fp16", torch_dtype=torch.float16
... )
>>> pipe.enable_model_cpu_offload()

>>> prompt = "A photograph of the inside of a subway train. There are raccoons sitting on the seats. One of them is reading a newspaper. The window shows the city in the background."

>>> generator = torch.Generator(device="cpu").manual_seed(0)
>>> image = pipe(prompt, num_inference_steps=25, generator=generator).images[0]

encode_prompt

< >

( promptdo_classifier_free_guidance = Truenum_images_per_prompt = 1device = Nonenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = None_cut_context = Falseattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device, isteğe bağlı): Sonuç olarak elde edilen gömme vektörlerinin yerleştirileceği torch cihazı
  • num_images_per_prompt (int, isteğe bağlı, varsayılan 1) — her prompt için oluşturulacak görsel sayısı
  • do_classifier_free_guidance (bool, isteğe bağlı, varsayılan True) — 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 geçirilmelidir. Tanımlanmamışsa, bunun yerine negative_prompt_embeds geçirilmelidir. Yönlendirme kullanılmadığında yok sayılır (yani guidance_scale, 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.
  • attention_mask (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş dikkat maskesi. prompt_embeds doğrudan geçiriliyorsa sağlanmalıdır.
  • negative_attention_mask (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif dikkat maskesi. negative_prompt_embeds doğrudan geçiriliyorsa sağlanmalıdır.

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

Kandinsky3Img2ImgPipeline

sınıf diffusers.Kandinsky3Img2ImgPipeline

< >

( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )

__call__

< >

( prompt: str | list[str] = Noneimage: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = Nonestrength: float = 0.3num_inference_steps: int = 25guidance_scale: float = 3.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → 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.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] veya list[np.ndarray]) — Süreç için başlangıç noktası olarak kullanılacak Image veya bir görüntü partisini temsil eden tensör.
  • 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 3.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ı.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • 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.
  • attention_mask (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş dikkat maskesi. prompt_embeds doğrudan geçiriliyorsa sağlanmalıdır.
  • negative_attention_mask (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif dikkat maskesi. negative_prompt_embeds doğrudan geçiriliyorsa sağlanmalıdı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.IFPipelineOutput döndürülüp döndürülmemesi.
  • 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.

Dönüş değeri

ImagePipelineOutput veya tuple

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

Örnekler:

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

>>> pipe = AutoPipelineForImage2Image.from_pretrained(
...     "kandinsky-community/kandinsky-3", variant="fp16", torch_dtype=torch.float16
... )
>>> pipe.enable_model_cpu_offload()

>>> prompt = "A painting of the inside of a subway train with tiny raccoons."
>>> image = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky3/t2i.png"
... )

>>> generator = torch.Generator(device="cpu").manual_seed(0)
>>> image = pipe(prompt, image=image, strength=0.75, num_inference_steps=25, generator=generator).images[0]

encode_prompt

< >

( promptdo_classifier_free_guidance = Truenum_images_per_prompt = 1device = Nonenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = None_cut_context = Trueattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = None )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt

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

device: (torch.device, isteğe bağlı): sonuçtaki gömme vektörlerinin yerleştirileceği torch cihazı num_images_per_prompt (int, isteğe bağlı, varsayılan 1): her istem için oluşturulması gereken görsel sayısı do_classifier_free_guidance (bool, isteğe bağlı, varsayılan True): sınıflandırıcı serbest yönlendirmenin (classifier free guidance) kullanılıp kullanılmayacağı negative_prompt (str veya list[str], isteğe bağlı): görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmadıysa bunun yerine negative_prompt_embeds. geçilmelidir. Tanımlanmadıysa bunun yerine negative_prompt_embeds. geçilmelidir. Yönlendirme kullanılmadığında yok sayılır (yani guidance_scale 1'den küçükse yok sayılır). prompt_embeds (torch.Tensor, isteğe bağlı): Önceden oluşturulmuş metin gömme vektörleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırma. Sağlanmadıysa, metin gömme vektörleri prompt girdi argümanından oluşturulur. negative_prompt_embeds (torch.Tensor, isteğe bağlı): Önceden oluşturulmuş negatif metin gömme vektörleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırma. Sağlanmadıysa, negative_prompt_embeds negative_prompt girdi argümanından oluşturulur. attention_mask (torch.Tensor, isteğe bağlı): Önceden oluşturulmuş dikkat maskesi. prompt_embeds doğrudan geçiriliyorsa sağlanmalıdır. negative_attention_mask (torch.Tensor, isteğe bağlı): Önceden oluşturulmuş negatif dikkat maskesi. negative_prompt_embeds doğrudan geçiriliyorsa sağlanmalıdır.

Update on GitHub