Buckets:

hf-doc-build/doc / diffusers /main /tr /api /pipelines /stable_cascade.md
mishig's picture
|
download
raw
40.8 kB

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 (inference) 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 ve bu, 1024x1024 boyutundaki bir görüntünün 128x128'e kodlanmasına yol açar. Stable Cascade, 42 sıkıştırma faktörü sağlar; bu da keskin yeniden oluşturmalara (reconstructions) sadık kalınarak 1024x1024 boyutundaki bir görüntünün 24x24'e kodlanmasının mümkün olduğu anlamına gelir. Metin-konumlu 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, üç modelden oluşur: Stage A, Stage B ve Stage C. Bu modeller, görüntü üretmek için bir kademeli yapıyı temsil eder; bu nedenle adı "Stable Cascade" şeklindedir.

Stage A & B, Stable Diffusion'da VAE'nin üstlendiği işlev gibi, 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 oranı elde edilebilir. Stable Diffusion modelleri 8'lik bir uzamsal sıkıştırma faktörü kullanarak 1024 x 1024 çözünürlüğündeki bir görüntüyü 128 x 128'e kodlarken, Stable Cascade 42'lik bir sıkıştırma faktörü sağlar. Bu, görüntüyü doğru bir şekilde çözebilme yeteneğini koruyarak 1024 x 1024'lük bir görüntüyü 24 x 24'e kodlar. Bunun büyük bir avantajı, daha ucuz eğitim ve çıkarım (inference) süreçleridir. Ayrıca, Stage C, bir metin istemine (text prompt) göre 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; 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[[diffusers.StableCascadeCombinedPipeline]]

diffusers.StableCascadeCombinedPipeline[[diffusers.StableCascadeCombinedPipeline]]

diffusers.StableCascadeCombinedPipeline(tokenizer: CLIPTokenizer, text_encoder: CLIPTextModelWithProjection, decoder: StableCascadeUNet, scheduler: DDPMWuerstchenScheduler, vqgan: PaellaVQModel, prior_prior: StableCascadeUNet, prior_text_encoder: CLIPTextModelWithProjection, prior_tokenizer: CLIPTokenizer, prior_scheduler: DDPMWuerstchenScheduler, prior_feature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = None, prior_image_encoder: transformers.models.clip.modeling_clip.CLIPVisionModelWithProjection | None = None)

Kaynak

Parametreler:

tokenizer (CLIPTokenizer) : Metin girdileri için kullanılacak çözücü belirteçleyici.

text_encoder (CLIPTextModelWithProjection) : Metin girdileri için kullanılacak decoder metin kodlayıcı.

decoder (StableCascadeUNet) : Dekoder görüntü üretim hattında kullanılacak dekoder modeli.

scheduler (DDPMWuerstchenScheduler) : Dekoder 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) : Önceden tanımlı (prior) hattında kullanılacak önceden tanımlı (prior) model.

prior_text_encoder (CLIPTextModelWithProjection) : Metin girdileri için kullanılacak önceki metin kodlayıcı.

prior_tokenizer (CLIPTokenizer) : Metin girdileri için kullanılacak önceki tokenizer.

prior_scheduler (DDPMWuerstchenScheduler) : Önceden tanımlı pipeline için kullanılacak zamanlayıcı.

prior_feature_extractor (CLIPImageProcessor) : image_encoder girdileri olarak kullanılacak özellikleri üretilen görüntülerden çıkaran 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[[diffusers.StableCascadeCombinedPipeline.call]]

__call__(prompt: str | list[str] | None = None, images: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = None, height: int = 512, width: int = 512, prior_num_inference_steps: int = 60, prior_guidance_scale: float = 4.0, num_inference_steps: int = 12, decoder_guidance_scale: float = 0.0, negative_prompt: str | list[str] | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_pooled: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = None, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, prior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, prior_callback_on_step_end_tensor_inputs: list = ['latents'], callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'])

Kaynak

Parametreler:

prompt (str veya list[str]) : Öncülün (prior) ve çözücünün (decoder) görüntü üretimini yönlendirmek için kullanılan istem veya istemler.

images (torch.Tensor, PIL.Image.Image, list[torch.Tensor], list[PIL.Image.Image], opsiyonel) : Ö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 üretimi 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 için önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.

prompt_embeds_pooled (torch.Tensor, isteğe bağlı) : Önceki için önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.

negative_prompt_embeds (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. 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ı) : Önceki (prior) için ö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.

num_images_per_prompt (int, isteğe bağlı, varsayılan 1) : Her istem için üretilecek görsel sayısı.

height (int, isteğe bağlı, varsayılan 512) : Üretilen görüntünün piksel cinsinden yüksekliği.

width (int, isteğe bağlı, varsayılan 512) : Üretilen görüntünün piksel cinsinden genişliği.

prior_guidance_scale (float, opsiyonel, varsayılan 4.0) : Classifier-Free Diffusion Guidance'de tanımlandığı gibi yönlendirme ölçeği. prior_guidance_scale, Imagen Paper'deki 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, genellikle daha düşük görüntü kalitesi pahasına, prompt ile yakından ilişkili görüntülerin üretilmesini teşvik eder.

prior_num_inference_steps (int | dict[float, int], isteğe bağlı, varsayılan 60) : Önceki 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ş prior_timesteps geçebilirsiniz

num_inference_steps (int, opsiyonel, varsayılan 12) : Dekoder 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 timesteps geçebilirsiniz

decoder_guidance_scale (float, isteğe bağlı, varsayılan 0.0) : Classifier-Free Diffusion Guidance'de tanımlandığı üzere 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, genellikle daha düşük görüntü kalitesi pahasına, prompt ile yakından ilişkili görüntülerin üretilmesini teşvik eder.

generator (torch.Generator veya list[torch.Generator], isteğe bağlı) : Üretimi deterministik hale getirmek için bir veya torch üreteci(leri) listesi.

latents (torch.Tensor, isteğe bağlı) : Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden oluşturulmuş gürültülü latentler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklem yoluyla bir latent tensörü oluşturulur.

output_type (str, isteğe bağlı, varsayılan "pil") : Üretilen görüntünün çıktı 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. Yalnızca 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.

Dönüş:

ImagePipelineOutput or tuple ImagePipelineOutput if return_dict is True, otherwise a tuple. When returning a tuple, the first element is a list with the generated images.

Ü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[[diffusers.StableCascadeCombinedPipeline.enable_model_cpu_offload]]

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

Kaynak

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 sağlanandan daha düşüktür, ancak unet'in iteratif çalıştırılması sayesinde performans çok daha iyidir.

enable_sequential_cpu_offload[[diffusers.StableCascadeCombinedPipeline.enable_sequential_cpu_offload]]

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

Kaynak

🤗 Accelerate kullanarak 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. enable_model_cpu_offload kullanılarak elde edilen tasarrufa kıyasla bellek tasarrufu daha yüksektir, ancak performans daha düşüktür.

StableCascadePriorPipeline[[diffusers.StableCascadePriorPipeline]]

diffusers.StableCascadePriorPipeline[[diffusers.StableCascadePriorPipeline]]

diffusers.StableCascadePriorPipeline(tokenizer: CLIPTokenizer, text_encoder: CLIPTextModelWithProjection, prior: StableCascadeUNet, scheduler: DDPMWuerstchenScheduler, resolution_multiple: float = 42.67, feature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = None, image_encoder: transformers.models.clip.modeling_clip.CLIPVisionModelWithProjection | None = None)

Kaynak

Parametreler:

prior (StableCascadeUNet) : Metin ve/veya gömülü görselden görsel gömülüsünü yaklaşık olarak tahmin etmek için Stable Cascade öncülü.

text_encoder (CLIPTextModelWithProjection) : Donmuş metin kodlayıcı (laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).

feature_extractor (CLIPImageProcessor) : image_encoder girdileri olarak kullanılacak özellikleri üretilen görüntülerden çıkaran model.

image_encoder (CLIPVisionModelWithProjection) : Donmuş CLIP görüntü kodlayıcısı (clip-vit-large-patch14).

tokenizer (CLIPTokenizer) : CLIPTokenizer sınıfının tokenizer'ı.

scheduler (DDPMWuerstchenScheduler) : prior ile birlikte kullanılarak gömme (embedding) üretmek için kullanılacak bir zamanlayıcı (scheduler).

resolution_multiple ('float', isteğe bağlı, varsayılan 42.67) : Üretilen 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[[diffusers.StableCascadePriorPipeline.call]]

__call__(prompt: str | list[str] | None = None, images: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = None, height: int = 1024, width: int = 1024, num_inference_steps: int = 20, timesteps: list = None, guidance_scale: float = 4.0, negative_prompt: str | list[str] | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_pooled: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = None, image_embeds: typing.Optional[torch.Tensor] = None, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pt', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'])

Kaynak

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], opsiyonel) : Ö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) : Üretilen görüntünün piksel cinsinden yüksekliği.

width (int, isteğe bağlı, varsayılan 1024) : Üretilen 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ı) : set_timesteps metodunda timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır.

guidance_scale (float, opsiyonel, 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 üretimi yönlendirmemek için kullanılan 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ı) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. 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. istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri prompt girdi argümanından oluşturulur.

negative_prompt_embeds (torch.Tensor, isteğe bağlı) : Ön 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ı) : Ön 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, negative_prompt_embeds_pooled, negative_prompt girdi argümanından oluşturulur.

image_embeds (torch.Tensor, isteğe bağlı) : Önceden oluşturulmuş görsel gömme (embedding) değerleri. Görsel girdileri kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, image girdi argümanı mevcut ise görsel gömme değerleri bu argümandan oluşturulur.

num_images_per_prompt (int, isteğe bağlı, varsayılan 1) : Her istem için üretilecek 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(leri) listesi.

latents (torch.Tensor, isteğe bağlı) : Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden oluşturulmuş gürültülü latentler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklem yoluyla bir latent tensörü oluşturulur.

output_type (str, isteğe bağlı, varsayılan "pil") : Üretilen görüntünün çıktı 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.

Dönüş:

StableCascadePriorPipelineOutput or tuple StableCascadePriorPipelineOutput if return_dict is True, otherwise a tuple. When returning a tuple, the first element is a list with the generated image embeddings.

Ü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[[diffusers.pipelines.stable_cascade.pipeline_stable_cascade_prior.StableCascadePriorPipelineOutput]]

diffusers.pipelines.stable_cascade.pipeline_stable_cascade_prior.StableCascadePriorPipelineOutput[[diffusers.pipelines.stable_cascade.pipeline_stable_cascade_prior.StableCascadePriorPipelineOutput]]

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])

Kaynak

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[[diffusers.StableCascadeDecoderPipeline]]

diffusers.StableCascadeDecoderPipeline[[diffusers.StableCascadeDecoderPipeline]]

diffusers.StableCascadeDecoderPipeline(decoder: StableCascadeUNet, tokenizer: CLIPTokenizer, text_encoder: CLIPTextModelWithProjection, scheduler: DDPMWuerstchenScheduler, vqgan: PaellaVQModel, latent_dim_scale: float = 10.67)

Kaynak

Parametreler:

tokenizer (CLIPTokenizer) : CLIP belirteç ayrıştırıcısı.

text_encoder (CLIPTextModelWithProjection) : CLIP metin kodlayıcısı.

decoder (StableCascadeUNet) : Stable Cascade çözücü unet'i.

vqgan (PaellaVQModel) : VQGAN modeli.

scheduler (DDPMWuerstchenScheduler) : prior ile birlikte kullanılarak gömme (embedding) üretmek için kullanılacak bir zamanlayıcı (scheduler).

latent_dim_scale (float, optional, varsayılan 10.67) : Görsel gömlemelerden VQ gizli uzay boyutunu belirlemek için kullanılan çarpan. Görsel gömlemeler 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[[diffusers.StableCascadeDecoderPipeline.call]]

__call__(image_embeddings: typing.Union[torch.Tensor, list[torch.Tensor]], prompt: str | list[str] = None, num_inference_steps: int = 10, guidance_scale: float = 0.0, negative_prompt: str | list[str] | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_pooled: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = None, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'])

Kaynak

Parametreler:

image_embeddings (torch.Tensor veya list[torch.Tensor]) : Bir görüntüden çıkarılan veya bir Prior Model tarafından üretilen Görüntü 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, 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 üretimi yönlendirmemek için kullanılan 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ı) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. 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. istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri prompt girdi argümanından oluşturulur.

negative_prompt_embeds (torch.Tensor, isteğe bağlı) : Ön 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ı) : Ön 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, 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 üretilecek 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(leri) listesi.

latents (torch.Tensor, isteğe bağlı) : Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenen önceden oluşturulmuş gürültülü latentler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele generator kullanılarak örneklem yoluyla bir latent tensörü oluşturulur.

output_type (str, isteğe bağlı, varsayılan "pil") : Üretilen görüntünün çıktı 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.

Dönüş:

ImagePipelineOutput or tuple ImagePipelineOutput if return_dict is True, otherwise a tuple. When returning a tuple, the first element is a list with the generated image embeddings.

Ü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)

Xet Storage Details

Size:
40.8 kB
·
Xet hash:
15b2427c17ba3058c8d3e8c61b35eaeef122be5f6daa9f9defa0ebd57866692a

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.