Diffusers documentation

Stable Cascade

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

Stable Cascade

Bu model Würstchen mimarisi üzerine inşa edilmiştir ve Stable Diffusion gibi diğer modellerden temel farkı, çok daha küçük bir gizli uzayda çalışmasıdır. Bunun önemi nedir? Gizli uzay ne kadar küçükse, çıkarım o kadar hızlı çalışır ve eğitim o kadar ucuz hale gelir. Gizli uzay ne kadar küçük? Stable Diffusion 8 sıkıştırma faktörü kullanır, bu da 1024x1024 boyutundaki bir görüntünün 128x128'e kodlanmasına yol açar. Stable Cascade 42 sıkıştırma faktörüne ulaşır, bu da keskin yeniden oluşturmalara sahipken 1024x1024 boyutundaki bir görüntünün 24x24'e kodlanmasının mümkün olduğu anlamına gelir. Metin koşullu model, ardından bu yüksek sıkıştırılmış gizli uzayda eğitilir. Bu mimarinin önceki sürümleri, Stable Diffusion 1.5'e kıyasla 16x maliyet azalması sağlamıştır.

Dolayısıyla, bu tür modeller, verimliliğin önemli olduğu kullanım senaryoları için uygundur. Ayrıca, finetuning, LoRA, ControlNet, IP-Adapter, LCM gibi bilinen tüm uzantılar bu yöntemle de mümkündür.

Orijinal kod tabanı Stability-AI/StableCascade adresinde bulunabilir.

Model Genel Bakış

Stable Cascade, Stage A, Stage B ve Stage C olmak üzere üç modelden oluşur; bu modeller, görüntü üretmek için bir kademeli yapıyı temsil eder ve bu nedenle “Stable Cascade” adını alır.

A ve B aşamaları, Stable Diffusion'da VAE'nin yaptığı işe benzer şekilde görüntüleri sıkıştırmak için kullanılır. Ancak bu yapılandırma ile görüntülerde çok daha yüksek bir sıkıştırma elde edilebilir. Stable Diffusion modelleri 8'lik bir uzamsal sıkıştırma faktörü kullanırken 1024 x 1024 çözünürlüğündeki bir görüntüyü 128 x 128'e kodlar; Stable Cascade ise 42'lik bir sıkıştırma faktörü sağlar. Bu, bir 1024 x 1024 görüntüyü 24 x 24'e kodlarken görüntüyü doğru bir şekilde çözümleyebilmeyi mümkün kılar. Bunun büyük bir avantajı, daha ucuz eğitim ve çıkarımdır. Ayrıca C aşaması, bir metin istemi verildiğinde küçük 24 x 24 latentleri üretmekten sorumludur.

Stage C modeli, küçük 24 x 24 latentler üzerinde çalışır ve metin istemlerine koşullu olarak latentleri gürültüden arındırır. Model, Cascade hattındaki en büyük bileşendir ve StableCascadePriorPipeline ile birlikte kullanılmak üzere tasarlanmıştır.

Stage B ve Stage A modelleri StableCascadeDecoderPipeline ile kullanılır ve küçük 24 x 24 latentlerden yola çıkarak nihai görüntüyü üretmekten sorumludur.

Stable Cascade modelleriyle kullanılabilecek veri türleri üzerinde bazı kısıtlamalar vardır. StableCascadePriorPipeline için resmi checkpoint'ler torch.float16 veri türünü desteklemez. Bunun yerine lütfen torch.bfloat16 kullanın.

torch.bfloat16 veri türünü StableCascadeDecoderPipeline ile kullanmak için PyTorch 2.2.0 veya daha yüksek bir sürümün yüklü olması gerekir. Bu, StableCascadeCombinedPipeline'in torch.bfloat16 ile kullanılmasının da PyTorch 2.2.0 veya daha yüksek bir sürüm gerektirdiği anlamına gelir, çünkü bu pipeline içsel olarak StableCascadeDecoderPipeline'i çağırır.

Ortamınızda PyTorch 2.2.0 veya daha yüksek bir sürümün yüklenmesi mümkün değilse, StableCascadeDecoderPipeline, torch.float16 veri tipiyle tek başına kullanılabilir. Pipeline için tam hassasiyetli veya bf16 varyant ağırlıklarını indirip ağırlıkları torch.float16 tipine dönüştürebilirsiniz.

Kullanım örneği

import torch
from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", variant="bf16", dtype=torch.bfloat16)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", variant="bf16", dtype=torch.float16)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings.to(torch.float16),
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade.png")

B ve C aşaması modellerinin Lite sürümlerini kullanma

import torch
from diffusers import (
    StableCascadeDecoderPipeline,
    StableCascadePriorPipeline,
    StableCascadeUNet,
)

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior_unet = StableCascadeUNet.from_pretrained("stabilityai/stable-cascade-prior", subfolder="prior_lite")
decoder_unet = StableCascadeUNet.from_pretrained("stabilityai/stable-cascade", subfolder="decoder_lite")

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", prior=prior_unet)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", decoder=decoder_unet)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings,
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade.png")

from_single_file ile orijinal denetim noktalarını yükleme

StableCascadeUNet içindeki from_single_file yöntemi aracılığıyla orijinal format kontrol noktalarının yüklenmesi desteklenmektedir.

import torch
from diffusers import (
    StableCascadeDecoderPipeline,
    StableCascadePriorPipeline,
    StableCascadeUNet,
)

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior_unet = StableCascadeUNet.from_single_file(
    "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors",
    dtype=torch.bfloat16
)
decoder_unet = StableCascadeUNet.from_single_file(
    "https://huggingface.co/stabilityai/stable-cascade/blob/main/stage_b_bf16.safetensors",
    dtype=torch.bfloat16
)

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", prior=prior_unet, dtype=torch.bfloat16)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", decoder=decoder_unet, dtype=torch.bfloat16)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings,
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade-single-file.png")

Kullanım Alanları

Doğrudan Kullanım

Model şu an için araştırma amaçlı olarak tasarlanmıştır. Olası araştırma alanları ve görevler şunları içerir

  • Üretken modeller üzerine araştırmalar.
  • Zararlı içerik üretme potansiyeline sahip modellerin güvenli dağıtımı.
  • Üretken modellerin sınırlılıklarını ve önyargılarını araştırmak ve anlamak.
  • Sanat eserlerinin üretimi ve tasarım ile diğer sanatsal süreçlerde kullanımı.
  • Eğitim veya yaratıcı araçlarda uygulamalar.

Dışlanan kullanımlar aşağıda açıklanmıştır.

Kapsam Dışı Kullanım

Model, insanların veya olayların gerçekçi veya doğru temsillerini üretmek üzere eğitilmemiştir ve bu nedenle modelin bu tür içerik üretmek için kullanılması, bu modelin yeteneklerinin kapsamı dışındadır. Model, Stability AI’nin Kabul Edilebilir Kullanım Politikası’nı ihlal edecek herhangi bir şekilde kullanılmamalıdır.

Kısıtlamalar ve Yanlılık

Kısıtlamalar

  • Yüzler ve genel olarak insanlar doğru şekilde oluşturulamayabilir.
  • Modelin otomatik kodlama (autoencoding) kısmı kayıplıdır.

StableCascadeCombinedPipeline

sınıf diffusers.StableCascadeCombinedPipeline

< >

( tokenizer: CLIPTokenizertext_encoder: CLIPTextModelWithProjectiondecoder: StableCascadeUNetscheduler: DDPMWuerstchenSchedulervqgan: PaellaVQModelprior_prior: StableCascadeUNetprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: DDPMWuerstchenSchedulerprior_feature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = Noneprior_image_encoder: transformers.models.clip.modeling_clip.CLIPVisionModelWithProjection | None = None )

Parametreler

  • tokenizer (CLIPTokenizer) — Metin girdileri için kullanılacak çözücü (decoder) belirteçleyici (tokenizer).
  • text_encoder (CLIPTextModelWithProjection) — Metin girdileri için kullanılacak decoder metin kodlayıcı.
  • decoder (StableCascadeUNet) — decoder görüntü üretim hattında kullanılacak decoder modeli.
  • scheduler (DDPMWuerstchenScheduler) — Çözücü görüntü oluşturma hattında kullanılacak zamanlayıcı.
  • vqgan (PaellaVQModel) — decoder görüntü üretim hattında kullanılacak VQGAN modeli.
  • prior_prior (StableCascadeUNet) — Öncül (prior) hattında kullanılacak öncül model.
  • prior_text_encoder (CLIPTextModelWithProjection) — Metin girdileri için kullanılacak önceden metin kodlayıcı.
  • prior_tokenizer (CLIPTokenizer) — Metin girdileri için kullanılacak önceden tanımlı (prior) tokenizer.
  • prior_scheduler (DDPMWuerstchenScheduler) — Önceden tanımlı (prior) hattında kullanılacak zamanlayıcı.
  • prior_feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellik çıkaran ve image_encoder için girdi olarak kullanılacak model.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Donmuş CLIP görüntü kodlayıcısı (clip-vit-large-patch14).

Stable Cascade kullanarak metinden görüntüye üretim için Birleşik 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.

__call__

< >

( prompt: str | list[str] | None = Noneimages: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = Noneheight: int = 512width: int = 512prior_num_inference_steps: int = 60prior_guidance_scale: float = 4.0num_inference_steps: int = 12decoder_guidance_scale: float = 0.0negative_prompt: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] )

Parametreler

  • prompt (str veya list[str]) — Öncül ve çözücü için görüntü üretimini yönlendirmek üzere kullanılan istem veya istemler.
  • images (torch.Tensor, PIL.Image.Image, list[torch.Tensor], list[PIL.Image.Image], isteğe bağlı) — Öncül için görüntü üretimini yönlendirecek görüntüler.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemek için kullanılan istem veya istemler. 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ı) — Önceki (prior) için önceden oluşturulmuş metin gömlemeleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırması. Sağlanmazsa, metin gömlemeleri prompt girdi argümanından oluşturulur.
  • prompt_embeds_pooled (torch.Tensor, isteğe bağlı) — Önceki (prior) için önceden oluşturulmuş metin gömlemeleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırması. Sağlanmazsa, metin gömlemeleri 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. istifade ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds_pooled (torch.Tensor, isteğe bağlı) — Önceki (prior) için önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istifade ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi 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ı.
  • height (int, isteğe bağlı, varsayılan 512) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan 512) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • prior_guidance_scale (float, isteğe bağlı, varsayılan 4.0) — Classifier-Free Diffusion Guidance içinde tanımlandığı gibi yönlendirme ölçeği. prior_guidance_scale, Imagen Paper'daki 2. denklemindeki w olarak tanımlanır. Yönlendirme ölçeği, prior_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 daha düşük görsel kalitesi pahasına.
  • prior_num_inference_steps (int | dict[float, int], isteğe bağlı, varsayılan 60) — Önceden belirlenen 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. Daha spesifik zaman adımı aralığı için özel prior_timesteps geçebilirsiniz.
  • num_inference_steps (int, isteğe bağlı, varsayılan 12) — Çözücü 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. Daha spesifik zaman adımı aralığı için özelleştirilmiş timesteps geçebilirsiniz.
  • decoder_guidance_scale (float, isteğe bağlı, varsayılan 0.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.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • 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), "np" (np.array) veya "pt" (torch.Tensor).
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ImagePipelineOutput döndürülüp döndürülmemesi.
  • prior_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: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, isteğe bağlı) — prior_callback_on_step_end işlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler callback_kwargs argümanı olarak geçirilir. Sadece pipeline sınıfınızın ._callback_tensor_inputs özniteliğinde listelenen değişkenleri dahil edebilirsiniz.
  • 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.

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

Örnekler:

>>> import torch
>>> from diffusers import StableCascadeCombinedPipeline

>>> pipe = StableCascadeCombinedPipeline.from_pretrained(
...     "stabilityai/stable-cascade", variant="bf16", torch_dtype=torch.bfloat16
... )
>>> pipe.enable_model_cpu_offload()
>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> images = pipe(prompt=prompt)

enable_model_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Tüm modelleri accelerate kullanarak CPU'ya taşır ve performansa düşük etkiyle bellek kullanımını azaltır. enable_sequential_cpu_offload ile karşılaştırıldığında, bu yöntem bir modelin forward metodu çağrıldığında o modeli bir bütün olarak GPU'ya taşır ve model, bir sonraki model çalışana kadar GPU'da kalır. Bellek tasarrufu enable_sequential_cpu_offload ile karşılaştırıldığında daha düşüktür, ancak unet'in iteratif çalıştırılması sayesinde performans çok daha iyidir.

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

🤗 Accelerate kullanılarak tüm modellerin (unet, text_encoder, vae ve safety checker state dict'leri) CPU'ya aktarılır ve bellek kullanımı önemli ölçüde azaltılır. Modeller torch.device('meta') konumuna taşınır ve yalnızca ilgili alt modülün forward metodu çağrıldığında GPU'ya yüklenir. Aktarma işlemi alt modül bazında gerçekleşir. Bellek tasarrufu enable_model_cpu_offload kullanılarak elde edilen tasarruftan daha yüksektir, ancak performans daha düşüktür.

StableCascadePriorPipeline

sınıf diffusers.StableCascadePriorPipeline

< >

( tokenizer: CLIPTokenizertext_encoder: CLIPTextModelWithProjectionprior: StableCascadeUNetscheduler: DDPMWuerstchenSchedulerresolution_multiple: float = 42.67feature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = Noneimage_encoder: transformers.models.clip.modeling_clip.CLIPVisionModelWithProjection | None = None )

Parametreler

  • prior (StableCascadeUNet) — Metin ve/veya gömülü görselden görsel gömülüsünü yaklaşık olarak hesaplamak için kullanılan Stable Cascade öncülü.
  • text_encoder (CLIPTextModelWithProjection) — Donmuş metin kodlayıcı (laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).
  • feature_extractor (CLIPImageProcessor) — Üretilen görüntülerden özellikleri çıkararak image_encoder için girdi olarak kullanılacak bir model.
  • image_encoder (CLIPVisionModelWithProjection) — Donmuş CLIP görüntü kodlayıcısı (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — CLIPTokenizer sınıfının tokenization aracı.
  • scheduler (DDPMWuerstchenScheduler) — Görsel gömme üretmek için prior ile birlikte kullanılacak bir zamanlayıcı.
  • resolution_multiple (‘float’, isteğe bağlı, varsayılan 42.67) — Oluşturulan birden fazla görüntü için varsayılan çözünürlük.

Stable Cascade için görüntü önceli üretme hattı.

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.

__call__

< >

( prompt: str | list[str] | None = Noneimages: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = Noneheight: int = 1024width: int = 1024num_inference_steps: int = 20timesteps: list = Noneguidance_scale: float = 4.0negative_prompt: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = Noneimage_embeds: typing.Optional[torch.Tensor] = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pt'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] )

Parametreler

  • prompt (str veya list[str]) — Görsel üretimi yönlendirmek için istem veya istemler.
  • images (torch.Tensor, PIL.Image.Image, list[torch.Tensor] veya list[PIL.Image.Image], isteğe bağlı) — Öncül üretimi koşullandırmak için kullanılan referans görsel(ler). Sağlandığında, görsel gömme değerleri görselden türetilir ve metin komutuyla birleştirilir.
  • height (int, isteğe bağlı, varsayılan 1024) — Oluşturulan görüntünün piksel cinsinden yüksekliği.
  • width (int, isteğe bağlı, varsayılan 1024) — Oluşturulan görüntünün piksel cinsinden genişliği.
  • num_inference_steps (int, isteğe bağlı, varsayılan 60) — 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[float], isteğe bağlı) — timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. set_timesteps yönteminde. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır.
  • guidance_scale (float, isteğe bağlı, varsayılan 8.0) — Classifier-Free Diffusion Guidance'de tanımlandığı gibi yönlendirme ölçeği. decoder_guidance_scale, Imagen Paper'daki 2. denklemindeki w olarak tanımlanır. Yönlendirme ölçeği, decoder_guidance_scale > 1 olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, genellikle daha düşük görüntü kalitesi pahasına, prompt ile yakından ilişkili görüntülerin üretilmesini teşvik eder.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemesi istenen istem veya istemler. Yönlendirme kullanılmadığında yok sayılır (yani decoder_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.
  • prompt_embeds_pooled (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds_pooled (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif birleştirilmiş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds_pooled, negative_prompt girdi argümanından oluşturulur.
  • image_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş gömme vektörleri. Görsel girdileri kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, görsel gömme vektörleri mevcut ise image girdi 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ı.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • 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), "np" (np.array) veya "pt" (torch.Tensor).
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ImagePipelineOutput 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.

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

Örnekler:

>>> import torch
>>> from diffusers import StableCascadePriorPipeline

>>> prior_pipe = StableCascadePriorPipeline.from_pretrained(
...     "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16
... ).to("cuda")

>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> prior_output = pipe(prompt)

StableCascadePriorPipelineOutput

sınıf diffusers.pipelines.stable_cascade.pipeline_stable_cascade_prior.StableCascadePriorPipelineOutput

< >

( image_embeddings: typing.Union[torch.Tensor, numpy.ndarray]prompt_embeds: typing.Union[torch.Tensor, numpy.ndarray]prompt_embeds_pooled: typing.Union[torch.Tensor, numpy.ndarray]negative_prompt_embeds: typing.Union[torch.Tensor, numpy.ndarray]negative_prompt_embeds_pooled: typing.Union[torch.Tensor, numpy.ndarray] )

Parametreler

  • image_embeddings (torch.Tensor veya np.ndarray) — Metin istemi için önceki gömme değerleri
  • prompt_embeds (torch.Tensor) — İstem için metin gömme değerleri.
  • negative_prompt_embeds (torch.Tensor) — Negatif istem için metin gömme değerleri.

WuerstchenPriorPipeline için çıktı sınıfı.

StableCascadeDecoderPipeline

sınıf diffusers.StableCascadeDecoderPipeline

< >

( decoder: StableCascadeUNettokenizer: CLIPTokenizertext_encoder: CLIPTextModelWithProjectionscheduler: DDPMWuerstchenSchedulervqgan: PaellaVQModellatent_dim_scale: float = 10.67 )

Parametreler

  • tokenizer (CLIPTokenizer) — CLIP işleyicisi.
  • text_encoder (CLIPTextModelWithProjection) — CLIP metin kodlayıcısı.
  • decoder (StableCascadeUNet) — Stable Cascade decoder unet.
  • vqgan (PaellaVQModel) — VQGAN modeli.
  • scheduler (DDPMWuerstchenScheduler) — Görsel gömme üretmek için prior ile birlikte kullanılacak bir zamanlayıcı.
  • latent_dim_scale (float, optional, varsayılan 10.67) — Görsel gömcelerinden VQ gizli alan boyutunu belirlemek için kullanılan çarpan. Görsel gömceleri height=24 ve width=24 ise, eğitim koşullarıyla eşleşmesi için VQ gizli şekli height=int(2410.67)=256 ve width=int(2410.67)=256 olmalıdır.

Stable Cascade modelinden görüntü üretmek için kullanılan 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.

__call__

< >

( image_embeddings: typing.Union[torch.Tensor, list[torch.Tensor]]prompt: str | list[str] = Nonenum_inference_steps: int = 10guidance_scale: float = 0.0negative_prompt: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: 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'] )

Parametreler

  • image_embeddings (torch.Tensor veya list[torch.Tensor]) — Görselden çıkarılan veya bir Öncül Model (Prior Model) tarafından üretilen Görsel Gömme (Image Embeddings).
  • prompt (str veya list[str]) — Görsel üretimi yönlendirmek için istem veya istemler.
  • num_inference_steps (int, isteğe bağlı, varsayılan 12) — 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 0.0) — Classifier-Free Diffusion Guidance'de tanımlandığı gibi yönlendirme ölçeği. decoder_guidance_scale, Imagen Paper'daki 2. denklemindeki w olarak tanımlanır. Yönlendirme ölçeği, decoder_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 daha düşük görsel kalitesi pahasına.
  • negative_prompt (str veya list[str], isteğe bağlı) — Görsel üretimini yönlendirmemesi istenen istem veya istemler. Yönlendirme kullanılmadığında yok sayılır (yani decoder_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.
  • prompt_embeds_pooled (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından oluşturulur.
  • negative_prompt_embeds_pooled (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif birleştirilmiş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds_pooled, negative_prompt girdi 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ı.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya torch üreteci listesi.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görüntü üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklemeye dayalı bir latents tensörü oluşturulur.
  • 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), "np" (np.array) veya "pt" (torch.Tensor).
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ImagePipelineOutput 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.

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

Örnekler:

>>> import torch
>>> from diffusers import StableCascadePriorPipeline, StableCascadeDecoderPipeline

>>> prior_pipe = StableCascadePriorPipeline.from_pretrained(
...     "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16
... ).to("cuda")
>>> gen_pipe = StableCascadeDecoderPipeline.from_pretrain(
...     "stabilityai/stable-cascade", torch_dtype=torch.float16
... ).to("cuda")

>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> prior_output = pipe(prompt)
>>> images = gen_pipe(prior_output.image_embeddings, prompt=prompt)
Update on GitHub