Diffusers documentation
ControlNetUnion
ControlNetUnion
ControlNetUnionModel, Stable Diffusion XL için ControlNet'in bir uygulamasıdır.
ControlNet modeli, xinsir6 tarafından ControlNetPlus ile tanıtıldı. Hesaplama yükünü artırmadan birden çok koşullandırma girdisini destekler.
10'dan fazla kontrol türünü destekleyebilen ve görsel olarak midjourney ile karşılaştırılabilir yüksek çözünürlüklü görüntüler üretebilen yeni bir mimari tasarladık. Ağ, orijinal ControlNet mimarisine dayanmaktadır; aynı ağ parametresini kullanarak farklı görüntü koşullarını desteklemek için orijinal ControlNet'i genişletmek ve hesaplama offload'ini artırmadan çoklu koşul girişini desteklemek üzere iki yeni modül öneriyoruz. Bu, özellikle görüntüleri detaylı olarak düzenlemek isteyen tasarımcılar için önemlidir; farklı koşullar aynı koşul kodlayıcısını kullanır ve ek hesaplama veya parametre eklenmez.
StableDiffusionXLControlNetUnionPipeline
sınıf diffusers.StableDiffusionXLControlNetUnionPipeline
< source >( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelcontrolnet: diffusers.models.controlnets.controlnet_union.ControlNetUnionModel | list[diffusers.models.controlnets.controlnet_union.ControlNetUnionModel] | tuple[diffusers.models.controlnets.controlnet_union.ControlNetUnionModel] | diffusers.models.controlnets.multicontrolnet_union.MultiControlNetUnionModelscheduler: KarrasDiffusionSchedulersforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonefeature_extractor: CLIPImageProcessorPil = Noneimage_encoder: CLIPVisionModelWithProjection = None )
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 (ControlNetUnionModel
) -- Provides additional conditioning to theunet` during the denoising process. - scheduler (SchedulerMixin) —
Kodlanmış görüntü latentlerini gürültüden arındırmak için
unetile 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ıcastabilityai/stable-diffusion-xl-base-1-0yapı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 olarakTrueolur; 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:
- Metinsel tersine çevirme gömme yüklemek için load_textual_inversion()
- LoRA ağırlıklarını yüklemek için load_lora_weights()
- LoRA ağırlıklarını kaydetmek için save_lora_weights()
.ckptdosyalarını yüklemek için from_single_file()- IP Adapter'ları yüklemek için load_ip_adapter()
__call__
< source >( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Nonecontrol_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], list[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.0guess_mode: bool = Falsecontrol_guidance_start: float | list[float] = 0.0control_guidance_end: float | list[float] = 1.0control_mode: int | list[int] | list[list[int]] | None = Noneoriginal_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'] ) → StableDiffusionPipelineOutput or tuple
Parametreler
- prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysaprompt_embedsparametresini iletmeniz gerekir. - prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıdapromptkullanılır. - control_image (
PipelineImageInputveyalist[PipelineImageInput], isteğe bağlı) — Üretim sırasındaunet’e rehberlik sağlamak için sağlanan ControlNet giriş koşulu. Türtorch.Tensorolarak belirtilirse, ControlNet’e olduğu gibi iletilir.PIL.Image.Imageda bir görüntü olarak kabul edilebilir. Çıktı görüntüsünün boyutları varsayılan olarakimage’ın boyutlarına eşittir. Yükseklik ve/veya genişlik geçirilirse,imagebuna göre yeniden boyutlandırılır.initiçinde birden fazla ControlNet belirtilmişse, görüntüler bir liste olarak geçirilmelidir; böylece listenin her öğesi, tek bir ControlNet’e girdi olarak doğru şekilde toplu işlenebilir. - height (
int, isteğe bağlı, varsayılanself.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ılanself.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ı) —timestepsargümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları.set_timestepsyönteminde. Tanımlanmamışsa,num_inference_stepsgeçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır. - sigmas (
list[float], isteğe bağlı) —set_timestepsyöntemlerindesigmasargümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa,num_inference_stepsgeç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 metinlepromptile yakından ilişkili görseller üretmesini teşvik eder, ancak bunun bedeli daha düşük görsel kalitedir. Guidance scale,guidance_scale > 1olduğunda etkinleştirilir. - negative_prompt (
strveyalist[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 yerinenegative_prompt_embedsparametresini iletmeniz gerekir. Yönlendirme kullanılmadığında (guidance_scale < 1) yok sayılır. - negative_prompt_2 (
strveyalist[str], isteğe bağlı) — Görsel üretimde nelerin dahil edilmeyeceğini yönlendirmek için kullanılan istem veya istemler. Bu,tokenizer_2vetext_encoder_2'ye gönderilir. Tanımlanmamışsa, her iki metin kodlayıcıda danegative_promptkullanı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.Generatorveyalist[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan birtorch.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 rastgelegeneratorkullanı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ğerleripromptgirdi 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_promptgirdi 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ğerleripromptgirdi 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_embedsdeğerlerinegative_promptgirdi 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_guidanceTrueolarak ayarlandıysa, negatif gömme değerini içermelidir. Sağlanmazsa, gömme değerleriip_adapter_imagegirdi 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.Imageveyanp.arrayarasında seçim yapın. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — 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.processoriçinde tanımlananAttentionProcessor'ye iletilen bir kwargs sözlüğü. - controlnet_conditioning_scale (
floatorlist[float], isteğe bağlı, varsayılan 1.0) — ControlNet çıktıları, orijinalunetiçindeki artıma eklenmeden öncecontrolnet_conditioning_scaleile çarpılır.initiçinde birden fazla ControlNet belirtildiyse, ilgili ölçekleri bir liste olarak ayarlayabilirsiniz. - guess_mode (
bool, isteğe bağlı, varsayılanFalse) — ControlNet kodlayıcısı, tüm istekleri kaldırsanız bile girdi görselinin içeriğini tanımaya çalışır.guidance_scaledeğeri için 3.0 ile 5.0 arasında bir değer önerilir. - control_guidance_start (
floatveyalist[float], isteğe bağlı, varsayılan 0.0) — ControlNet'in uygulamaya başladığı toplam adım yüzdesi. - control_guidance_end (
floatveyalist[float], isteğe bağlı, varsayılan 1.0) — ControlNet'in uygulamayı durdurduğu toplam adımların yüzdesi. - control_mode (
intorlist[int]orlist[list[int]], *optional*) -- The control condition types for the ControlNet. See the ControlNet's model card forinformation on the available control modes. If multiple ControlNets are specified ininit`, control_mode should be a list where each ControlNet should have its corresponding control mode list. Should reflect the order of conditions in control_image. - original_size (
tuple[int], isteğe bağlı, varsayılan (1024, 1024)) —original_size,target_sizeile aynı değilse görüntü küçültülmüş veya büyütülmüş gibi görünür. Belirtilmediyseoriginal_sizevarsayı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_leftkonumundan 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ülercrops_coords_top_leftparametresini (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 durumdatarget_sizeile 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 veyaPipelineCallback/MultiPipelineCallbacksalt sınıfı: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çerecektir. - 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
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 controlnet_aux
>>> from controlnet_aux import LineartAnimeDetector
>>> from diffusers import StableDiffusionXLControlNetUnionPipeline, ControlNetUnionModel, AutoencoderKL
>>> from diffusers.utils import load_image
>>> import torch
>>> prompt = "A cat"
>>> # download an image
>>> image = load_image(
... "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
... ).resize((1024, 1024))
>>> # initialize the models and pipeline
>>> controlnet = ControlNetUnionModel.from_pretrained(
... "xinsir/controlnet-union-sdxl-1.0", torch_dtype=torch.float16
... )
>>> vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
>>> pipe = StableDiffusionXLControlNetUnionPipeline.from_pretrained(
... "stabilityai/stable-diffusion-xl-base-1.0",
... controlnet=controlnet,
... vae=vae,
... torch_dtype=torch.float16,
... variant="fp16",
... )
>>> pipe.enable_model_cpu_offload()
>>> # prepare image
>>> processor = LineartAnimeDetector.from_pretrained("lllyasviel/Annotators")
>>> controlnet_img = processor(image, output_type="pil")
>>> # generate image
>>> image = pipe(prompt, control_image=[controlnet_img], control_mode=[3], height=1024, width=1024).images[0]encode_prompt
< source >( 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 (
strveyalist[str], isteğe bağlı) — kodlanacak prompt - prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıdapromptkullanı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 (
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. - negative_prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda danegative_promptkullanı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. - 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ğerleripromptgirdi 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_promptgirdi 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
< source >( 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ılantorch.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.
StableDiffusionXLControlNetUnionImg2ImgPipeline
sınıf diffusers.StableDiffusionXLControlNetUnionImg2ImgPipeline
< source >( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelcontrolnet: diffusers.models.controlnets.controlnet_union.ControlNetUnionModel | list[diffusers.models.controlnets.controlnet_union.ControlNetUnionModel] | tuple[diffusers.models.controlnets.controlnet_union.ControlNetUnionModel] | diffusers.models.controlnets.multicontrolnet_union.MultiControlNetUnionModelscheduler: KarrasDiffusionSchedulersrequires_aesthetics_score: bool = Falseforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonefeature_extractor: CLIPImageProcessorPil = Noneimage_encoder: CLIPVisionModelWithProjection = None )
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 (ControlNetUnionModel) — Gürültü azaltma işlemi sırasında unet'e ek koşullandırma sağlar.
- scheduler (SchedulerMixin) —
Kodlanmış görüntü latentlerini gürültüden arındırmak için
unetile 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ındaaesthetic_scorekoşulunun geçirilmesini gerektirip gerektirmediğini belirtir. Ayrıcastabilityai/stable-diffusion-xl-refiner-1-0yapı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ıcastabilityai/stable-diffusion-xl-base-1-0yapı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_checkergirdileri 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:
- Metinsel tersine çevirme gömme yüklemek için load_textual_inversion()
- LoRA ağırlıklarını yüklemek için load_lora_weights()
- LoRA ağırlıklarını kaydetmek için save_lora_weights()
- IP Adapter'ları yüklemek için load_ip_adapter()
__call__
< source >( 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], list[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.0control_mode: int | list[int] | list[list[int]] | None = Noneoriginal_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']**kwargs ) → StableDiffusionPipelineOutput 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. - prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıdapromptkullanı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]]veyalist[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,imageolarak görüntü latentlerini de kabul edebilir; bu durumda yeniden kodlanmaz. - control_image (
PipelineImageInputveyalist[PipelineImageInput], isteğe bağlı) — Üretim sırasındaunet’e rehberlik sağlamak için sağlanan ControlNet giriş koşulu. Türtorch.Tensorolarak belirtilirse, ControlNet’e olduğu gibi iletilir.PIL.Image.Imageda bir görüntü olarak kabul edilebilir. Çıktı görüntüsünün boyutları varsayılan olarakimage’ın boyutlarına eşittir. Yükseklik ve/veya genişlik geçirilirse,imagebuna göre yeniden boyutlandırılır.initiçinde birden fazla ControlNet belirtilmişse, görüntüler bir liste olarak geçirilmelidir; böylece listenin her öğesi, tek bir ControlNet’e girdi olarak doğru şekilde toplu işlenebilir. - 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) — 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 7.5) — Classifier-Free Diffusion Guidance makalesinde tanımlandığı gibi yönlendirme ölçeği.guidance_scale, Imagen Paper makalesindeki 2. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptmetniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına. - 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. - negative_prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda danegative_promptkullanı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.Generatorveyalist[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 rastgelegeneratorkullanı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ğ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. - 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ğerleripromptgirdi 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_promptgirdi 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_guidanceTrueolarak ayarlandıysa, negatif gömme değerini içermelidir. Sağlanmazsa, gömme değerleriip_adapter_imagegirdi 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.Imageveyanp.array. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — 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çindekiself.processoraltında tanımlananAttentionProcessor'a iletilen bir kwargs sözlüğü. - controlnet_conditioning_scale (
floatorlist[float], isteğe bağlı, varsayılan 1.0) — ControlNet çıktıları, orijinalunetiçindeki artıma eklenmeden öncecontrolnet_conditioning_scaleile çarpılır.initiçinde birden fazla ControlNet belirtildiyse, ilgili ölçekleri bir liste olarak ayarlayabilirsiniz. - guess_mode (
bool, isteğe bağlı, varsayılanFalse) — 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_scaleiçin 3.0 ile 5.0 arası değerler önerilir. - control_guidance_start (
floatveyalist[float], isteğe bağlı, varsayılan 0.0) — ControlNet'in uygulamaya başladığı toplam adım yüzdesi. - control_guidance_end (
floatveyalist[float], isteğe bağlı, varsayılan 1.0) — ControlNet'in uygulamayı durdurduğu toplam adımların yüzdesi. - control_mode (
intorlist[int]orlist[list[int]], *optional*) -- The control condition types for the ControlNet. See the ControlNet's model card forinformation on the available control modes. If multiple ControlNets are specified ininit`, control_mode should be a list where each ControlNet should have its corresponding control mode list. Should reflect the order of conditions in control_image - original_size (
tuple[int], isteğe bağlı, varsayılan (1024, 1024)) —original_size,target_sizeile aynı değilse görüntü küçültülmüş veya büyütülmüş gibi görünür. Belirtilmediyseoriginal_sizevarsayı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_leftkonumundan 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ülercrops_coords_top_leftparametresini (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 durumdatarget_sizeile 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 veyaPipelineCallback/MultiPipelineCallbacksalt sınıfı: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çerecektir. - 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
StableDiffusionPipelineOutput veya tuple
return_dict True ise StableDiffusionPipelineOutput, 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 controlnet_aux
from diffusers import (
StableDiffusionXLControlNetUnionImg2ImgPipeline,
ControlNetUnionModel,
AutoencoderKL,
)
from diffusers.utils import load_image
import torch
from PIL import Image
import numpy as np
prompt = "A cat"
# download an image
image = load_image(
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
)
# initialize the models and pipeline
controlnet = ControlNetUnionModel.from_pretrained(
"brad-twinkl/controlnet-union-sdxl-1.0-promax", torch_dtype=torch.float16
)
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
pipe = StableDiffusionXLControlNetUnionImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
controlnet=controlnet,
vae=vae,
torch_dtype=torch.float16,
variant="fp16",
).to("cuda")
# `enable_model_cpu_offload` is not recommended due to multiple generations
height = image.height
width = image.width
ratio = np.sqrt(1024.0 * 1024.0 / (width * height))
# 3 * 3 upscale correspond to 16 * 3 multiply, 2 * 2 correspond to 16 * 2 multiply and so on.
scale_image_factor = 3
base_factor = 16
factor = scale_image_factor * base_factor
W, H = int(width * ratio) // factor * factor, int(height * ratio) // factor * factor
image = image.resize((W, H))
target_width = W // scale_image_factor
target_height = H // scale_image_factor
images = []
crops_coords_list = [
(0, 0),
(0, width // 2),
(height // 2, 0),
(width // 2, height // 2),
0,
0,
0,
0,
0,
]
for i in range(scale_image_factor):
for j in range(scale_image_factor):
left = j * target_width
top = i * target_height
right = left + target_width
bottom = top + target_height
cropped_image = image.crop((left, top, right, bottom))
cropped_image = cropped_image.resize((W, H))
images.append(cropped_image)
# set ControlNetUnion input
result_images = []
for sub_img, crops_coords in zip(images, crops_coords_list):
new_width, new_height = W, H
out = pipe(
prompt=[prompt] * 1,
image=sub_img,
control_image=[sub_img],
control_mode=[6],
width=new_width,
height=new_height,
num_inference_steps=30,
crops_coords_top_left=(W, H),
target_size=(W, H),
original_size=(W * 2, H * 2),
)
result_images.append(out.images[0])
new_im = Image.new("RGB", (new_width * scale_image_factor, new_height * scale_image_factor))
new_im.paste(result_images[0], (0, 0))
new_im.paste(result_images[1], (new_width, 0))
new_im.paste(result_images[2], (new_width * 2, 0))
new_im.paste(result_images[3], (0, new_height))
new_im.paste(result_images[4], (new_width, new_height))
new_im.paste(result_images[5], (new_width * 2, new_height))
new_im.paste(result_images[6], (0, new_height * 2))
new_im.paste(result_images[7], (new_width, new_height * 2))
new_im.paste(result_images[8], (new_width * 2, new_height * 2))encode_prompt
< source >( 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 (
strveyalist[str], isteğe bağlı) — kodlanacak prompt - prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıdapromptkullanı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 (
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. - negative_prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda danegative_promptkullanı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. - 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ğerleripromptgirdi 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_promptgirdi 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.
StableDiffusionXLControlNetUnionInpaintPipeline
sınıf diffusers.StableDiffusionXLControlNetUnionInpaintPipeline
< source >( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModelcontrolnet: diffusers.models.controlnets.controlnet_union.ControlNetUnionModel | list[diffusers.models.controlnets.controlnet_union.ControlNetUnionModel] | tuple[diffusers.models.controlnets.controlnet_union.ControlNetUnionModel] | diffusers.models.controlnets.multicontrolnet_union.MultiControlNetUnionModelscheduler: KarrasDiffusionSchedulersrequires_aesthetics_score: bool = Falseforce_zeros_for_empty_prompt: bool = Trueadd_watermarker: bool | None = Nonefeature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = Noneimage_encoder: transformers.models.clip.modeling_clip.CLIPVisionModelWithProjection | None = None )
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
unetile birlikte kullanılacak bir zamanlayıcı. DDIMScheduler, LMSDiscreteScheduler veya PNDMScheduler olabilir.
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:
- Metinsel tersine çevirme gömme yüklemek için load_textual_inversion()
- LoRA ağırlıklarını yüklemek için load_lora_weights()
- LoRA ağırlıklarını kaydetmek için save_lora_weights()
.ckptdosyalarını yüklemek için from_single_file()- IP Adapter'ları yüklemek için load_ip_adapter()
__call__
< source >( 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]] = Nonecontrol_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], list[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 = 0.9999num_inference_steps: int = 50denoising_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] = 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 = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecross_attention_kwargs: dict[str, typing.Any] | None = Nonecontrolnet_conditioning_scale: float | list[float] = 1.0guess_mode: bool = Falsecontrol_guidance_start: float | list[float] = 0.0control_guidance_end: float | list[float] = 1.0control_mode: int | list[int] | list[list[int]] | None = Noneguidance_rescale: float = 0.0original_size: tuple = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple = 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']**kwargs ) → ~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput 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. - prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıdapromptkullanılır - image (
PIL.Image.Image) — İnpainting işlemine tabi tutulacakImageveya bir görüntü partisini temsil eden tensör, yani görüntünün bazı kısımlarımask_imageile maskeleme yapılarakprompt’a göre yeniden boyanacaktır. - mask_image (
PIL.Image.Image) —Image, veyaimageüzerinde maskeleme yapılacak bir görüntü partisini temsil eden tensör. Maskedeki beyaz pikseller yeniden boyanırken, siyah pikseller korunur.mask_imagebir 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. - control_image (
PipelineImageInputveyalist[PipelineImageInput], isteğe bağlı) — Üretim sırasındaunet’e rehberlik sağlamak için sağlanan ControlNet giriş koşulu. Türtorch.Tensorolarak belirtilirse, ControlNet’e olduğu gibi iletilir.PIL.Image.Imageda bir görüntü olarak kabul edilebilir. Çıktı görüntüsünün boyutları varsayılan olarakimage’ın boyutlarına eşittir. Yükseklik ve/veya genişlik geçirilirse,imagebuna göre yeniden boyutlandırılır.initiçinde birden fazla ControlNet belirtilmişse, görüntüler bir liste olarak geçirilmelidir; böylece listenin her öğesi, tek bir ControlNet’e girdi olarak doğru şekilde toplu işlenebilir. - 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ılanNone) — Görsel ve maskelemeye uygulanacak kırpma için kenar boşluğu boyutu.Noneise görsel ve mask_image üzerinde kırpma uygulanmaz.padding_mask_cropNonedeğ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 alanpadding_mask_cropdeğ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, referansimage'in maskelenmiş bölümünün ne kadar dönüştürüleceğini belirtir. 0 ile 1 arasında olmalıdır.imagebir başlangıç noktası olarak kullanılacak vestrengthdeğ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.strength1 olduğunda, eklenen gürültü maksimum olacak ve gürültü azaltma süreci,num_inference_stepsdeğerinde belirtilen tam tekrar sayısı kadar çalışacaktır. Dolayısıyla 1 değeri, referansimage'in maskelenmiş bölümünü fiilen yok sayar.denoising_start'ın bir tamsayı olarak tanımlandığı durumlarda,strengthdeğ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. - 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çirilenimagekı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_startparametresi, 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) vedenoising_startdeğ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. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptmetniyle yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına. - 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. - negative_prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda danegative_promptkullanı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. - 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_guidanceTrueolarak ayarlandıysa, negatif gömme değerini içermelidir. Sağlanmazsa, gömme değerleriip_adapter_imagegirdi argümanından hesaplanır. - 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ğerleripromptgirdi 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_promptgirdi argümanından oluşturulur. - 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 rastgelegeneratorkullanı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.Imageveyanp.array. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — 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çindekiself.processoraltında tanımlananAttentionProcessor'a iletilen bir kwargs sözlüğü. - controlnet_conditioning_scale (
floatorlist[float], isteğe bağlı, varsayılan 1.0) — ControlNet çıktıları, orijinalunetiçindeki artıma eklenmeden öncecontrolnet_conditioning_scaleile çarpılır.initiçinde birden fazla ControlNet belirtildiyse, ilgili ölçekleri bir liste olarak ayarlayabilirsiniz. - guess_mode (
bool, isteğe bağlı, varsayılanFalse) — ControlNet kodlayıcısı, tüm istekleri kaldırsanız bile girdi görselinin içeriğini tanımaya çalışır.guidance_scaledeğeri için 3.0 ile 5.0 arasında bir değer önerilir. - control_guidance_start (
floatveyalist[float], isteğe bağlı, varsayılan 0.0) — ControlNet'in uygulamaya başladığı toplam adım yüzdesi. - control_guidance_end (
floatveyalist[float], isteğe bağlı, varsayılan 1.0) — ControlNet'in uygulamayı durdurduğu toplam adımların yüzdesi. - control_mode (
intorlist[int]orlist[list[int]], *optional*) -- The control condition types for the ControlNet. See the ControlNet's model card forinformation on the available control modes. If multiple ControlNets are specified ininit`, control_mode should be a list where each ControlNet should have its corresponding control mode list. Should reflect the order of conditions in control_image. - 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ü. - original_size (
tuple[int], isteğe bağlı, varsayılan (1024, 1024)) —original_size,target_sizeile aynı değilse görüntü küçültülmüş veya büyütülmüş gibi görünür. Belirtilmediyseoriginal_sizevarsayılan olarak(width, height)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_leftkonumundan 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ülercrops_coords_top_leftparametresini (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(width, height)olur. https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde açıklanan SDXL mikro-konumlama (micro-conditioning) bileşenidir. - 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 veyaPipelineCallback/MultiPipelineCallbacksalt sınıfı: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çerecektir. - 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
~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:
from diffusers import StableDiffusionXLControlNetUnionInpaintPipeline, ControlNetUnionModel, AutoencoderKL
from diffusers.utils import load_image
import torch
import numpy as np
from PIL import Image
prompt = "A cat"
# download an image
image = load_image(
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/in_paint/overture-creations-5sI6fQgYIuo.png"
).resize((1024, 1024))
mask = load_image(
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/in_paint/overture-creations-5sI6fQgYIuo_mask.png"
).resize((1024, 1024))
# initialize the models and pipeline
controlnet = ControlNetUnionModel.from_pretrained(
"brad-twinkl/controlnet-union-sdxl-1.0-promax", torch_dtype=torch.float16
)
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
pipe = StableDiffusionXLControlNetUnionInpaintPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
controlnet=controlnet,
vae=vae,
torch_dtype=torch.float16,
variant="fp16",
)
pipe.enable_model_cpu_offload()
controlnet_img = image.copy()
controlnet_img_np = np.array(controlnet_img)
mask_np = np.array(mask)
controlnet_img_np[mask_np > 0] = 0
controlnet_img = Image.fromarray(controlnet_img_np)
# generate image
image = pipe(prompt, image=image, mask_image=mask, control_image=[controlnet_img], control_mode=[7]).images[0]
image.save("inpaint.png")encode_prompt
< source >( 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 (
strveyalist[str], isteğe bağlı) — kodlanacak prompt - prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıdapromptkullanı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 (
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. - negative_prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'ye gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, her iki metin kodlayıcıda danegative_promptkullanı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. - 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ğerleripromptgirdi 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_promptgirdi 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.