Diffusers documentation
Stable Cascade
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.
StableCascadePriorPipelineiçin resmi checkpoint'lertorch.float16veri türünü desteklemez. Bunun yerine lütfentorch.bfloat16kullanın.
torch.bfloat16veri türünüStableCascadeDecoderPipelineile kullanmak için PyTorch 2.2.0 veya daha yüksek bir sürümün yüklü olması gerekir. Bu,StableCascadeCombinedPipeline'intorch.bfloat16ile 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 olarakStableCascadeDecoderPipeline'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.float16veri tipiyle tek başına kullanılabilir. Pipeline için tam hassasiyetli veyabf16varyant ağırlıklarını indirip ağırlıklarıtorch.float16tipine 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
< source >( 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_encoderiç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__
< source >( 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 (
strveyalist[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 (
strveyalist[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 (yaniguidance_scale1'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ömlemeleripromptgirdi 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ömlemeleripromptgirdi 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_promptgirdi 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_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ı. - 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. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,prior_guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle 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 özelprior_timestepsgeç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ştimestepsgeç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. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle bu da daha düşük görsel kalitesi pahasına olur. - 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. - 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ılanTrue) — 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_endişlevi için girdi tensörlerinin listesi. Listede belirtilen tensörlercallback_kwargsargü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_inputstarafından belirtilen tüm tensörlerin listesini içerir. - callback_on_step_end_tensor_inputs (
list, isteğe bağlı) —callback_on_step_endişlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler,callback_kwargsargümanı olarak geçirilir. Yalnızca pipeline sınıfınızın._callback_tensor_inputsözniteliğinde listelenen değişkenleri dahil edebilirsiniz.
Ü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
< source >( 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
< source >( 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
< source >( 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_encoderiç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çinpriorile 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__
< source >( 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 (
strveyalist[str]) — Görsel üretimi yönlendirmek için istem veya istemler. - images (
torch.Tensor,PIL.Image.Image,list[torch.Tensor]veyalist[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ı) —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. - 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. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,decoder_guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, genellikle daha düşük görüntü kalitesi pahasına,promptile yakından ilişkili görüntülerin üretilmesini teşvik eder. - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemesi istenen istem veya istemler. Yönlendirme kullanılmadığında yok sayılır (yanidecoder_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ğerleripromptgirdi 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ğ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. - 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_promptgirdi 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 iseimagegirdi 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.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. - 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ılanTrue) — 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_inputstarafından belirtilen tüm tensörlerin listesini içerir. - callback_on_step_end_tensor_inputs (
list, isteğe bağlı) —callback_on_step_endişlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler,callback_kwargsargümanı olarak geçirilir. Yalnızca pipeline sınıfınızın._callback_tensor_inputsözniteliğinde listelenen değişkenleri dahil edebilirsiniz.
Ü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
< source >( 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] )
WuerstchenPriorPipeline için çıktı sınıfı.
StableCascadeDecoderPipeline
sınıf diffusers.StableCascadeDecoderPipeline
< source >( 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çinpriorile 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__
< source >( 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.Tensorveyalist[torch.Tensor]) — Görselden çıkarılan veya bir Öncül Model (Prior Model) tarafından üretilen Görsel Gömme (Image Embeddings). - prompt (
strveyalist[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. denklemindekiwolarak tanımlanır. Yönlendirme ölçeği,decoder_guidance_scale > 1olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği,promptile yakından ilişkili görsellerin üretilmesini teşvik eder, genellikle daha düşük görsel kalitesi pahasına. - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemesi istenen istem veya istemler. Yönlendirme kullanılmadığında yok sayılır (yanidecoder_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ğerleripromptgirdi 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ğ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. - 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_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ı. - 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. - 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ılanTrue) — 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_inputstarafından belirtilen tüm tensörlerin listesini içerir. - callback_on_step_end_tensor_inputs (
list, isteğe bağlı) —callback_on_step_endişlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler,callback_kwargsargümanı olarak geçirilir. Yalnızca pipeline sınıfınızın._callback_tensor_inputsözniteliğinde listelenen değişkenleri dahil edebilirsiniz.
Ü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)