Diffusers documentation

Stable Cascade

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Stable Cascade

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 mengkodekan gambar dengan resolusi 1024 x 1024 menjadi 128 x 128, Stable Cascade mencapai faktor kompresi 42. Ini mengkodekan gambar 1024 x 1024 menjadi 24 x 24, sambil tetap mampu mendekode 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 StableCascadePriorPipeline tidak mendukung tipe data torch.float16. Silakan gunakan torch.bfloat16 sebagai gantinya.

Untuk menggunakan tipe data torch.bfloat16 dengan StableCascadeDecoderPipeline, Anda perlu menginstal PyTorch 2.2.0 atau lebih tinggi. Ini juga berarti bahwa penggunaan StableCascadeCombinedPipeline dengan torch.bfloat16 memerlukan PyTorch 2.2.0 atau lebih tinggi, karena pipeline ini memanggil StableCascadeDecoderPipeline secara internal.

Jika tidak memungkinkan untuk menginstal PyTorch 2.2.0 atau lebih tinggi di lingkungan Anda, StableCascadeDecoderPipeline dapat digunakan secara mandiri dengan tipe data torch.float16. Anda dapat mengunduh bobot varian presisi penuh atau bf16 untuk pipeline tersebut dan mengubah bobot menjadi torch.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, dan oleh karena itu, 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

kelas diffusers.StableCascadeCombinedPipeline

< >

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

Parameter

  • tokenizer (CLIPTokenizer) — Tokenizer decoder yang akan digunakan untuk input teks.
  • text_encoder (CLIPTextModelWithProjection) — Text encoder decoder yang akan digunakan untuk input teks.
  • decoder (StableCascadeUNet) — Model decoder yang akan digunakan untuk pipeline generasi gambar decoder.
  • scheduler (DDPMWuerstchenScheduler) — Scheduler 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) — Prior text encoder yang akan digunakan untuk input teks.
  • prior_tokenizer (CLIPTokenizer) — Tokenizer prior yang akan digunakan untuk input teks.
  • prior_scheduler (DDPMWuerstchenScheduler) — Scheduler 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 yang dibekukan (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__

< >

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

Parameter

  • prompt (str atau list[str]) — Prompt atau kumpulan prompt untuk memandu generasi gambar pada 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 digunakan untuk mengarahkan generasi gambar. Diabaikan ketika tidak menggunakan guidance (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 penimbangan prompt. Jika tidak disediakan, embedding teks akan dibuat 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 penimbangan prompt. Jika tidak disediakan, embedding teks akan dibuat 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, default 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 erat kaitannya dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.
  • prior_num_inference_steps (int | dict[float, int], opsional, default 60) — Jumlah langkah denoising prior. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. Untuk penempatan 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 penempatan 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. dari 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) — Latents 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 latents akan dibuat dengan pengambilan sampel menggunakan generator acak yang diberikan.
  • output_type (str, opsional, default "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.

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

< >

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

Membongkar 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 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

< >

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

Membongkar semua model (unet, text_encoder, vae, dan safety checker state dicts) 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 kinerjanya lebih rendah.

StableCascadePriorPipeline

kelas diffusers.StableCascadePriorPipeline

< >

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

Parameter

  • prior (StableCascadeUNet) — Stable Cascade prior untuk memperkirakan image embedding dari text dan/atau image embedding.
  • text_encoder (CLIPTextModelWithProjection) — Text-encoder yang dibekukan (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 yang dibekukan (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Tokenizer dari kelas CLIPTokenizer.
  • scheduler (DDPMWuerstchenScheduler) — Scheduler yang digunakan bersama prior untuk menghasilkan embedding gambar.
  • resolution_multiple (‘float’, opsional, defaultnya 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__

< >

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

Parameter

  • prompt (str atau list[str]) — Prompt atau kumpulan 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, default 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 dilewatkan 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 erat kaitannya dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.
  • negative_prompt (str atau list[str], opsional) — Prompt atau prompt-prompt yang tidak digunakan untuk mengarahkan generasi gambar. Diabaikan ketika tidak menggunakan guidance (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 pembobotan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt.
  • prompt_embeds_pooled (torch.Tensor, opsional) — Embedding teks pooled yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, mis. penimbangan prompt. Jika tidak disediakan, embedding teks pooled akan dibuat 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 digenerate sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds_pooled akan digenerate dari argumen input negative_prompt.
  • image_embeds (torch.Tensor, opsional) — Embedding gambar yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input gambar, mis. penimbangan prompt. Jika tidak disediakan, embedding gambar akan dibuat 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) — Latents 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 latents akan dibuat dengan pengambilan sampel menggunakan generator acak yang diberikan.
  • output_type (str, opsional, default "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.

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

kelas 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

kelas diffusers.StableCascadeDecoderPipeline

< >

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

Parameter

  • tokenizer (CLIPTokenizer) — Tokenizer CLIP.
  • text_encoder (CLIPTextModelWithProjection) — Encoder teks CLIP.
  • decoder (StableCascadeUNet) — Unet decoder Stable Cascade.
  • vqgan (PaellaVQModel) — Model VQGAN.
  • scheduler (DDPMWuerstchenScheduler) — Scheduler 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 height=24 dan width=24, bentuk laten VQ harus height=int(2410.67)=256 dan width=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__

< >

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

Parameter

  • image_embeddings (torch.Tensor atau list[torch.Tensor]) — Embedding gambar yang diekstrak dari gambar atau dihasilkan oleh Model Prior.
  • prompt (str atau list[str]) — Prompt atau kumpulan 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 erat kaitannya dengan prompt teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah.
  • negative_prompt (str atau list[str], opsional) — Prompt atau prompt-prompt yang tidak digunakan untuk mengarahkan generasi gambar. Diabaikan ketika tidak menggunakan guidance (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 pembobotan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input prompt.
  • prompt_embeds_pooled (torch.Tensor, opsional) — Embedding teks pooled yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, mis. penimbangan prompt. Jika tidak disediakan, embedding teks pooled akan dibuat 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 digenerate sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, misalnya penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds_pooled akan digenerate 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) — Latents 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 latents akan dibuat dengan pengambilan sampel menggunakan generator acak yang diberikan.
  • output_type (str, opsional, default "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.

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)
Update on GitHub