Buckets:
Stable Cascade
Model ini dibangun di atas arsitektur Würstchen dan perbedaan utamanya dengan model lain seperti Stable Diffusion adalah bahwa model ini bekerja di ruang laten yang jauh lebih kecil. Mengapa ini penting? Semakin kecil ruang latennya, semakin cepat Anda dapat menjalankan inferensi dan semakin murah biaya pelatihannya. Sekecil apa ruang latennya? Stable Diffusion menggunakan faktor kompresi 8, sehingga gambar 1024x1024 dienkod menjadi 128x128. Stable Cascade mencapai faktor kompresi 42, yang berarti dimungkinkan untuk mengenkod gambar 1024x1024 menjadi 24x24, sambil tetap mempertahankan rekonstruksi yang tajam. Model bersyarat teks kemudian dilatih di ruang laten yang sangat terkompresi tersebut. Versi sebelumnya dari arsitektur ini mencapai pengurangan biaya 16x dibandingkan Stable Diffusion 1.5.
Oleh karena itu, jenis model ini sangat cocok untuk penggunaan di mana efisiensi menjadi penting. Selain itu, semua ekstensi yang dikenal seperti finetuning, LoRA, ControlNet, IP-Adapter, LCM, dan lain-lain juga dapat dilakukan dengan metode ini.
Kodebase asli dapat ditemukan di Stability-AI/StableCascade.
Ringkasan Model
Stable Cascade terdiri dari tiga model: Stage A, Stage B, dan Stage C, yang mewakili kaskade untuk menghasilkan gambar, sehingga dinamakan "Stable Cascade".
Stage A & B digunakan untuk mengompresi gambar, mirip dengan peran VAE dalam Stable Diffusion. Namun, dengan konfigurasi ini, kompresi gambar yang jauh lebih tinggi dapat dicapai. Sementara model Stable Diffusion menggunakan faktor kompresi spasial 8, yang mengenkod gambar dengan resolusi 1024 x 1024 menjadi 128 x 128, Stable Cascade mencapai faktor kompresi 42. Ini mengenkod gambar 1024 x 1024 menjadi 24 x 24, sambil tetap mampu mendekod gambar secara akurat. Hal ini membawa manfaat besar berupa biaya pelatihan dan inferensi yang lebih murah. Selain itu, Stage C bertanggung jawab untuk menghasilkan latents kecil 24 x 24 berdasarkan prompt teks.
Model Stage C beroperasi pada latents kecil 24 x 24 dan melakukan denoising pada latents yang dikondisikan oleh prompt teks. Model ini juga merupakan komponen terbesar dalam pipeline Cascade dan dimaksudkan untuk digunakan dengan StableCascadePriorPipeline
Model Stage B dan Stage A digunakan dengan StableCascadeDecoderPipeline dan bertanggung jawab untuk menghasilkan gambar akhir berdasarkan latents kecil berukuran 24 x 24.
Terdapat beberapa batasan pada tipe data yang dapat digunakan dengan model Stable Cascade. Checkpoint resmi untuk
StableCascadePriorPipelinetidak mendukung tipe datatorch.float16. Silakan gunakantorch.bfloat16sebagai gantinya.Untuk menggunakan tipe data
torch.bfloat16denganStableCascadeDecoderPipeline, Anda perlu menginstal PyTorch 2.2.0 atau lebih tinggi. Ini juga berarti bahwa penggunaanStableCascadeCombinedPipelinedengantorch.bfloat16memerlukan PyTorch 2.2.0 atau lebih tinggi, karena pipeline ini memanggilStableCascadeDecoderPipelinesecara internal.Jika tidak memungkinkan untuk menginstal PyTorch 2.2.0 atau lebih tinggi di lingkungan Anda,
StableCascadeDecoderPipelinedapat digunakan secara mandiri dengan tipe datatorch.float16. Anda dapat mengunduh bobot varian presisi penuh ataubf16untuk pipeline tersebut dan mengubah bobot menjaditorch.float16.
Contoh penggunaan
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")
Menggunakan Versi Lite dari model Stage B dan Stage C
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")
Memuat checkpoint asli dengan from_single_file
Memuat checkpoint dalam format asli didukung melalui metode from_single_file di StableCascadeUNet.
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")
Penggunaan
Penggunaan Langsung
Model ini saat ini ditujukan untuk keperluan penelitian. Area dan tugas penelitian yang mungkin termasuk
- Penelitian tentang model generatif.
- Penyelenggaraan model secara aman yang berpotensi menghasilkan konten berbahaya.
- Mengeksplorasi dan memahami keterbatasan serta bias dari model generatif.
- Pembuatan karya seni dan penggunaannya dalam desain serta proses artistik lainnya.
- Aplikasi dalam alat pendidikan atau kreatif.
Penggunaan yang dikecualikan dijelaskan di bawah ini.
Penggunaan di Luar Cakupan
Model ini tidak dilatih untuk menghasilkan representasi yang faktual atau benar tentang orang atau peristiwa, sehingga penggunaan model untuk menghasilkan konten semacam itu berada di luar cakupan kemampuan model ini. Model ini tidak boleh digunakan dengan cara apa pun yang melanggar Kebijakan Penggunaan yang Dapat Diterima Stability AI.
Keterbatasan dan Bias
Keterbatasan
- Wajah dan manusia secara umum mungkin tidak dihasilkan dengan benar.
- Bagian autoencoding dari model bersifat lossy.
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)
Parameter:
tokenizer (CLIPTokenizer) : tokenizer decoder yang akan digunakan untuk input teks.
text_encoder (CLIPTextModelWithProjection) : Dekoder pengkode teks yang akan digunakan untuk input teks.
decoder (StableCascadeUNet) : Model decoder yang akan digunakan untuk pipeline generasi gambar decoder.
scheduler (DDPMWuerstchenScheduler) : Penjadwal yang akan digunakan untuk pipeline generasi gambar decoder.
vqgan (PaellaVQModel) : Model VQGAN yang akan digunakan untuk pipeline generasi gambar decoder.
prior_prior (StableCascadeUNet) : Model prior yang akan digunakan untuk pipeline prior.
prior_text_encoder (CLIPTextModelWithProjection) : encoder teks sebelumnya yang akan digunakan untuk input teks.
prior_tokenizer (CLIPTokenizer) : tokenizer sebelumnya yang akan digunakan untuk input teks.
prior_scheduler (DDPMWuerstchenScheduler) : Penjadwal yang akan digunakan untuk pipeline prior.
prior_feature_extractor (CLIPImageProcessor) : Model yang mengekstrak fitur dari gambar yang dihasilkan untuk digunakan sebagai input bagi image_encoder.
prior_image_encoder (CLIPVisionModelWithProjection) : Encoder gambar CLIP beku (clip-vit-large-patch14).
Pipeline gabungan untuk generasi teks-ke-gambar menggunakan Stable Cascade.
Model ini mewarisi dari DiffusionPipeline. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua pipeline (seperti mengunduh atau menyimpan, menjalankan pada perangkat tertentu, dll.)
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[str] = ['latents'], callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'])
Parameter:
prompt (str atau list[str]) : Prompt atau prompt-prompt untuk memandu generasi gambar untuk prior dan decoder.
images (torch.Tensor, PIL.Image.Image, list[torch.Tensor], list[PIL.Image.Image], opsional) : Gambar-gambar untuk memandu generasi gambar bagi prior.
negative_prompt (str atau list[str], opsional) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Diabaikan saat tidak menggunakan panduan (yaitu, diabaikan jika guidance_scale kurang dari 1).
prompt_embeds (torch.Tensor, opsional) : Embedding teks yang telah dibuat sebelumnya untuk prior. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya pembobotan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt.
prompt_embeds_pooled (torch.Tensor, opsional) : Embedding teks yang telah dibuat sebelumnya untuk prior. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya pembobotan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt.
negative_prompt_embeds (torch.Tensor, opsional) : Embedding teks negatif yang telah dibuat sebelumnya untuk prior. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input negative_prompt.
negative_prompt_embeds_pooled (torch.Tensor, opsional) : Embedding teks negatif yang telah dibuat sebelumnya untuk prior. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input negative_prompt.
num_images_per_prompt (int, opsional, default 1) : Jumlah gambar yang akan dihasilkan per prompt.
height (int, opsional, default 512) : Tinggi gambar yang dihasilkan dalam piksel.
width (int, opsional, defaultnya 512) : Lebar gambar yang dihasilkan dalam piksel.
prior_guidance_scale (float, opsional, default 4.0) : Skala panduan seperti yang didefinisikan dalam Classifier-Free Diffusion Guidance. prior_guidance_scale didefinisikan sebagai w dari persamaan 2. pada Imagen Paper. Skala panduan diaktifkan dengan mengatur prior_guidance_scale > 1. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.
prior_num_inference_steps (int | dict[float, int], opsional, defaultnya 60) : Jumlah langkah denoising sebelumnya. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. Untuk penjadwalan timestep yang lebih spesifik, Anda dapat meneruskan prior_timesteps yang dikustomisasi
num_inference_steps (int, opsional, default 12) : Jumlah langkah denoising decoder. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. Untuk penjadwalan timestep yang lebih spesifik, Anda dapat meneruskan timesteps yang dikustomisasi
decoder_guidance_scale (float, opsional, default 0.0) : Skala panduan seperti yang didefinisikan dalam Classifier-Free Diffusion Guidance. guidance_scale didefinisikan sebagai w dari persamaan 2. pada Imagen Paper. Skala panduan diaktifkan dengan mengatur guidance_scale > 1. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.
generator (torch.Generator atau list[torch.Generator], opsional) : Satu atau daftar generator torch untuk membuat proses generasi menjadi deterministik.
latents (torch.Tensor, opsional) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi gambar. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan generator acak yang diberikan.
output_type (str, opsional, defaultnya "pil") : Format output dari generate image. Pilih antara: "pil" (PIL.Image.Image), "np" (np.array) atau "pt" (torch.Tensor).
return_dict (bool, opsional, defaultnya True) : Apakah akan mengembalikan ImagePipelineOutput alih-alih tuple biasa.
prior_callback_on_step_end (Callable, opsional) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
prior_callback_on_step_end_tensor_inputs (list, opsional) : Daftar input tensor untuk fungsi prior_callback_on_step_end. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen callback_kwargs. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut ._callback_tensor_inputs dari kelas pipeline Anda.
callback_on_step_end (Callable, opsional) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs akan berisi daftar semua tensor sesuai yang ditentukan oleh callback_on_step_end_tensor_inputs.
callback_on_step_end_tensor_inputs (list, opsional) : Daftar input tensor untuk fungsi callback_on_step_end. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen callback_kwargs. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut ._callback_tensor_inputs dari kelas pipeline Anda.
Mengembalikan:
ImagePipelineOutput atau tuple ImagePipelineOutput jika return_dict bernilai True, selain itu berupa tuple. Saat mengembalikan tuple, elemen pertama adalah daftar berisi gambar yang dihasilkan.
Fungsi yang dipanggil saat memanggil pipeline untuk generasi.
Contoh:
>>> 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)
Me-offload semua model ke CPU menggunakan accelerate, mengurangi penggunaan memori dengan dampak kecil pada kinerja. Dibandingkan dengan enable_sequential_cpu_offload, metode ini memindahkan satu model utuh ke GPU pada saat metode forward model tersebut dipanggil, dan model tetap berada di GPU hingga model berikutnya dijalankan. Penghematan memori lebih rendah dibandingkan dengan enable_sequential_cpu_offload, tetapi kinerjanya jauh lebih baik karena eksekusi iteratif dari unet.
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)
Membongkar semua model (unet, text_encoder, vae, dan state dicts safety checker) ke CPU menggunakan 🤗 Accelerate, sehingga penggunaan memori berkurang secara signifikan. Model dipindahkan ke torch.device('meta') dan dimuat ke GPU hanya ketika metode forward dari submodul spesifiknya dipanggil. Pembongkaran terjadi berdasarkan submodul. Penghematan memori lebih tinggi daripada menggunakan enable_model_cpu_offload, tetapi performanya lebih rendah.
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)
Parameter:
prior (StableCascadeUNet) : Stable Cascade prior untuk memperkirakan embedding gambar dari embedding teks dan/atau gambar.
text_encoder (CLIPTextModelWithProjection) : Text-encoder beku (laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).
feature_extractor (CLIPImageProcessor) : Model yang mengekstrak fitur dari gambar yang dihasilkan untuk digunakan sebagai input bagi image_encoder.
image_encoder (CLIPVisionModelWithProjection) : Encoder gambar CLIP beku (clip-vit-large-patch14).
tokenizer (CLIPTokenizer) : Tokenizer dari kelas CLIPTokenizer.
scheduler (DDPMWuerstchenScheduler) : Penjadwal yang digunakan bersama prior untuk menghasilkan embedding gambar.
resolution_multiple ('float', opsional, default 42.67) : Resolusi default untuk beberapa gambar yang dihasilkan.
Pipeline untuk menghasilkan prior gambar untuk Stable Cascade.
Model ini mewarisi dari DiffusionPipeline. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua pipeline (seperti mengunduh atau menyimpan, menjalankan pada perangkat tertentu, dll.)
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[float] = 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[str] = ['latents'])
Parameter:
prompt (str atau list[str]) : Prompt atau prompt-prompt untuk mengarahkan generasi gambar.
images (torch.Tensor, PIL.Image.Image, list[torch.Tensor] atau list[PIL.Image.Image], opsional) : Gambar referensi yang digunakan untuk mengondisikan generasi prior. Ketika diberikan, embedding gambar diturunkan dari gambar tersebut dan digabungkan dengan prompt teks.
height (int, opsional, default 1024) : Tinggi gambar yang dihasilkan dalam piksel.
width (int, opsional, default 1024) : Lebar gambar yang dihasilkan dalam piksel.
num_inference_steps (int, opsional, defaultnya 60) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat.
timesteps (list[float], opsional) : Timesteps kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen timesteps di metode set_timesteps mereka. Jika tidak didefinisikan, perilaku default saat num_inference_steps diteruskan akan digunakan. Harus dalam urutan menurun.
guidance_scale (float, opsional, default 8.0) : Skala panduan seperti yang didefinisikan dalam Classifier-Free Diffusion Guidance. decoder_guidance_scale didefinisikan sebagai w dari persamaan 2. pada Imagen Paper. Skala panduan diaktifkan dengan mengatur decoder_guidance_scale > 1. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.
negative_prompt (str atau list[str], opsional) : Prompt atau prompt-prompt yang tidak boleh memandu generasi gambar. Diabaikan saat tidak menggunakan panduan (yaitu, diabaikan jika decoder_guidance_scale kurang dari 1).
prompt_embeds (torch.Tensor, opsional) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt.
prompt_embeds_pooled (torch.Tensor, opsional) : Pooled text embeddings yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya pembobotan prompt. Jika tidak disediakan, pooled text embeddings akan dihasilkan dari argumen input prompt.
negative_prompt_embeds (torch.Tensor, opsional) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input negative_prompt.
negative_prompt_embeds_pooled (torch.Tensor, opsional) : Embedding teks negatif yang sudah dipooling sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds_pooled akan dihasilkan dari argumen input negative_prompt.
image_embeds (torch.Tensor, opsional) : Embedding gambar yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input gambar, misalnya penimbangan prompt. Jika tidak disediakan, embedding gambar akan dihasilkan dari argumen input image jika ada.
num_images_per_prompt (int, opsional, default 1) : Jumlah gambar yang akan dihasilkan per prompt.
generator (torch.Generator atau list[torch.Generator], opsional) : Satu atau daftar generator torch untuk membuat proses generasi menjadi deterministik.
latents (torch.Tensor, opsional) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi gambar. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan generator acak yang diberikan.
output_type (str, opsional, defaultnya "pil") : Format output dari generate image. Pilih antara: "pil" (PIL.Image.Image), "np" (np.array) atau "pt" (torch.Tensor).
return_dict (bool, opsional, defaultnya True) : Apakah akan mengembalikan ImagePipelineOutput alih-alih tuple biasa.
callback_on_step_end (Callable, opsional) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs akan berisi daftar semua tensor sesuai yang ditentukan oleh callback_on_step_end_tensor_inputs.
callback_on_step_end_tensor_inputs (list, opsional) : Daftar input tensor untuk fungsi callback_on_step_end. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen callback_kwargs. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut ._callback_tensor_inputs dari kelas pipeline Anda.
Mengembalikan:
StableCascadePriorPipelineOutput atau tuple StableCascadePriorPipelineOutput jika return_dict bernilai True, selain itu berupa tuple. Saat mengembalikan tuple, elemen pertama adalah daftar berisi embedding gambar yang dihasilkan.
Fungsi yang dipanggil saat memanggil pipeline untuk generasi.
Contoh:
>>> 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])
Parameter:
image_embeddings (torch.Tensor atau np.ndarray) : Embedding gambar sebelumnya untuk prompt teks
prompt_embeds (torch.Tensor) : Embedding teks untuk prompt.
negative_prompt_embeds (torch.Tensor) : Embedding teks untuk prompt negatif.
Kelas output untuk WuerstchenPriorPipeline.
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)
Parameter:
tokenizer (CLIPTokenizer) : Tokenizer CLIP.
text_encoder (CLIPTextModelWithProjection) : Pengkode teks CLIP.
decoder (StableCascadeUNet) : unet decoder Stable Cascade.
vqgan (PaellaVQModel) : Model VQGAN.
scheduler (DDPMWuerstchenScheduler) : Penjadwal yang digunakan bersama prior untuk menghasilkan embedding gambar.
latent_dim_scale (float, optional, default 10.67) : Pengali untuk menentukan ukuran ruang laten VQ dari embedding gambar. Jika embedding gambar memiliki tinggi=24 dan lebar=24, bentuk laten VQ harus tinggi=int(2410.67)=256 dan lebar=int(2410.67)=256 agar sesuai dengan kondisi pelatihan.
Pipeline untuk menghasilkan gambar dari model Stable Cascade.
Model ini mewarisi dari DiffusionPipeline. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua pipeline (seperti mengunduh atau menyimpan, menjalankan pada perangkat tertentu, dll.)
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[str] = ['latents'])
Parameter:
image_embeddings (torch.Tensor atau list[torch.Tensor]) : Image Embeddings yang diekstrak dari gambar atau dihasilkan oleh Prior Model.
prompt (str atau list[str]) : Prompt atau prompt-prompt untuk mengarahkan generasi gambar.
num_inference_steps (int, opsional, default 12) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat.
guidance_scale (float, opsional, default 0.0) : Skala panduan seperti yang didefinisikan dalam Classifier-Free Diffusion Guidance. decoder_guidance_scale didefinisikan sebagai w dari persamaan 2. pada Imagen Paper. Skala panduan diaktifkan dengan mengatur decoder_guidance_scale > 1. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.
negative_prompt (str atau list[str], opsional) : Prompt atau prompt-prompt yang tidak boleh memandu generasi gambar. Diabaikan saat tidak menggunakan panduan (yaitu, diabaikan jika decoder_guidance_scale kurang dari 1).
prompt_embeds (torch.Tensor, opsional) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt.
prompt_embeds_pooled (torch.Tensor, opsional) : Pooled text embeddings yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya pembobotan prompt. Jika tidak disediakan, pooled text embeddings akan dihasilkan dari argumen input prompt.
negative_prompt_embeds (torch.Tensor, opsional) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input negative_prompt.
negative_prompt_embeds_pooled (torch.Tensor, opsional) : Embedding teks negatif yang sudah dipooling sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds_pooled akan dihasilkan dari argumen input negative_prompt.
num_images_per_prompt (int, opsional, default 1) : Jumlah gambar yang akan dihasilkan per prompt.
generator (torch.Generator atau list[torch.Generator], opsional) : Satu atau daftar generator torch untuk membuat proses generasi menjadi deterministik.
latents (torch.Tensor, opsional) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi gambar. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan generator acak yang diberikan.
output_type (str, opsional, defaultnya "pil") : Format output dari generate image. Pilih antara: "pil" (PIL.Image.Image), "np" (np.array) atau "pt" (torch.Tensor).
return_dict (bool, opsional, defaultnya True) : Apakah akan mengembalikan ImagePipelineOutput alih-alih tuple biasa.
callback_on_step_end (Callable, opsional) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs akan berisi daftar semua tensor sesuai yang ditentukan oleh callback_on_step_end_tensor_inputs.
callback_on_step_end_tensor_inputs (list, opsional) : Daftar input tensor untuk fungsi callback_on_step_end. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen callback_kwargs. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut ._callback_tensor_inputs dari kelas pipeline Anda.
Mengembalikan:
ImagePipelineOutput atau tuple ImagePipelineOutput jika return_dict bernilai True, selain itu berupa tuple. Saat mengembalikan tuple, elemen pertama adalah daftar berisi embedding gambar yang dihasilkan.
Fungsi yang dipanggil saat memanggil pipeline untuk generasi.
Contoh:
>>> 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:
- 39.2 kB
- Xet hash:
- beb34611179c19df56d2dca26fea2c2309e51b71f5df3f8cdb9a731ef3687311
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.