Diffusers documentation
Kandinsky 3
Kandinsky 3
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:
- T5 mimarisine dayalı bir kodlayıcı-çözücü modeli olan FLAN-UL2.
- BigGAN-deep blokları içeren yeni U-Net mimarisi, parametre sayısını aynı tutarken derinliği ikiye katlar.
- 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
< source >( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )
__call__
< source >( 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 (
strveyalist[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerineprompt_embedsgeç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. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur. - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, bunun yerinenegative_prompt_embedsparametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yaniguidance_scaledeğeri1'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.Generatorveyalist[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ğerleripromptgirdi 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_promptgirdi argümanından oluşturulur. - attention_mask (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş dikkat maskesi.prompt_embedsdoğrudan geçiriliyorsa sağlanmalıdır. - negative_attention_mask (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif dikkat maskesi.negative_prompt_embedsdoğ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.Imageveyanp.array. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~pipelines.stable_diffusion.IFPipelineOutputdö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 rastgelegeneratorkullanı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_inputstarafından belirtilen tüm tensörlerin listesini içerir. - callback_on_step_end_tensor_inputs (
list, isteğe bağlı) —callback_on_step_endişlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler,callback_kwargsargü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
< source >( 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 (
strveyalist[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ılanTrue) — classifier free guidance kullanılacak mı - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, bunun yerinenegative_prompt_embedsgeçirilmelidir. Tanımlanmamışsa, bunun yerinenegative_prompt_embedsgeçirilmelidir. Yönlendirme kullanılmadığında yok sayılır (yaniguidance_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ğerleripromptgirdi 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_promptgirdi argümanından oluşturulur. - attention_mask (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş dikkat maskesi.prompt_embedsdoğrudan geçiriliyorsa sağlanmalıdır. - negative_attention_mask (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif dikkat maskesi.negative_prompt_embedsdoğrudan geçiriliyorsa sağlanmalıdır.
İsteği metin kodlayıcı gizli durumlarına kodlar.
Kandinsky3Img2ImgPipeline
sınıf diffusers.Kandinsky3Img2ImgPipeline
< source >( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )
__call__
< source >( 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 (
strveyalist[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerineprompt_embedsgeçirilmelidir. - image (
torch.Tensor,PIL.Image.Image,np.ndarray,list[torch.Tensor],list[PIL.Image.Image]veyalist[np.ndarray]) — Süreç için başlangıç noktası olarak kullanılacakImageveya bir görüntü partisini temsil eden tensör. - strength (
float, isteğe bağlı, varsayılan 0.8) — Referansimage'in ne ölçüde dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır.imagebir başlangıç noktası olarak kullanılır vestrengthdeğ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.strength1 olduğunda eklenen gürültü maksimumdur ve gürültü azaltma süreci,num_inference_stepsiç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. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur. - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa, bunun yerinenegative_prompt_embedsparametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yaniguidance_scaledeğeri1'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.Generatorveyalist[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ğerleripromptgirdi 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_promptgirdi argümanından oluşturulur. - attention_mask (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş dikkat maskesi.prompt_embedsdoğrudan geçiriliyorsa sağlanmalıdır. - negative_attention_mask (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif dikkat maskesi.negative_prompt_embedsdoğ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.Imageveyanp.array. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~pipelines.stable_diffusion.IFPipelineOutputdö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_inputstarafından belirtilen tüm tensörlerin listesini içerir. - callback_on_step_end_tensor_inputs (
list, isteğe bağlı) —callback_on_step_endişlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler,callback_kwargsargü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
< source >( 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 )
İ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.