Diffusers documentation

Decoder Konsistensi

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

Decoder Konsistensi

Consistency decoder dapat digunakan untuk mendekode latents dari denoising UNet dalam StableDiffusionPipeline. Decoder ini diperkenalkan dalam laporan teknis DALL-E 3.

Kodebase asli dapat ditemukan di openai/consistencydecoder.

Inference saat ini hanya didukung untuk 2 iterasi.

Pipeline ini tidak akan dapat disumbangkan tanpa bantuan dari madebyollin dan mrsteyk dari isu ini.

ConsistencyDecoderVAE

kelas diffusers.ConsistencyDecoderVAE

< >

( scaling_factor: float = 0.18215latent_channels: int = 4sample_size: int = 32encoder_act_fn: str = 'silu'encoder_block_out_channels: tuple = (128, 256, 512, 512)encoder_double_z: bool = Trueencoder_down_block_types: tuple = ('DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D')encoder_in_channels: int = 3encoder_layers_per_block: int = 2encoder_norm_num_groups: int = 32encoder_out_channels: int = 4decoder_add_attention: bool = Falsedecoder_block_out_channels: tuple = (320, 640, 1024, 1024)decoder_down_block_types: tuple = ('ResnetDownsampleBlock2D', 'ResnetDownsampleBlock2D', 'ResnetDownsampleBlock2D', 'ResnetDownsampleBlock2D')decoder_downsample_padding: int = 1decoder_in_channels: int = 7decoder_layers_per_block: int = 3decoder_norm_eps: float = 1e-05decoder_norm_num_groups: int = 32decoder_num_train_timesteps: int = 1024decoder_out_channels: int = 6decoder_resnet_time_scale_shift: str = 'scale_shift'decoder_time_embedding_type: str = 'learned'decoder_up_block_types: tuple = ('ResnetUpsampleBlock2D', 'ResnetUpsampleBlock2D', 'ResnetUpsampleBlock2D', 'ResnetUpsampleBlock2D') )

Decoder konsistensi yang digunakan dengan DALL-E 3.

Contoh:

>>> import torch
>>> from diffusers import StableDiffusionPipeline, ConsistencyDecoderVAE

>>> vae = ConsistencyDecoderVAE.from_pretrained("openai/consistency-decoder", torch_dtype=torch.float16)
>>> pipe = StableDiffusionPipeline.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5", vae=vae, torch_dtype=torch.float16
... ).to("cuda")

>>> image = pipe("horse", generator=torch.manual_seed(0)).images[0]
>>> image

decode

< >

( z: Tensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = Truenum_inference_steps: int = 2 ) → DecoderOutput | tuple[torch.Tensor]

Parameter

  • z (torch.Tensor) — Vektor laten input.
  • generator (torch.Generator | None) — Generator bilangan acak. Default adalah None.
  • return_dict (bool) — Apakah mengembalikan output sebagai kamus. Default adalah True.
  • num_inference_steps (int) — Jumlah langkah inferensi. Default adalah 2.

Mengembalikan

DecoderOutput | tuple[torch.Tensor]

Output yang telah didekodekan.

Mendekode vektor laten input z menggunakan model VAE konsistensi decoder.

encode

< >

( x: Tensorreturn_dict: bool = True )

Parameter

  • x (torch.Tensor) — Batch input gambar.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan ConsistencyDecoderVAEOutput daripada tuple biasa.

Enkodekan batch gambar menjadi latents.

forward

< >

( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → DecoderOutput or tuple

Parameter

  • sample (torch.Tensor) — Sampel input.
  • sample_posterior (bool, opsional, default False) — Apakah akan mengambil sampel dari posterior.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan DecoderOutput alih-alih tuple biasa.
  • generator (torch.Generator, opsional, default None) — Generator yang digunakan untuk sampling.

Mengembalikan

DecoderOutput atau tuple

If return_dict is True, a DecoderOutput is returned, otherwise a plain tuple is returned.

set_default_attn_processor

< >

( )

Menonaktifkan prosesor perhatian kustom dan mengatur implementasi perhatian default.

tiled_encode

< >

( x: Tensorreturn_dict: bool = True ) → ConsistencyDecoderVAEOutput or tuple

Parameter

  • x (torch.Tensor) — Batch input gambar.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan ConsistencyDecoderVAEOutput daripada tuple biasa.

Mengembalikan

ConsistencyDecoderVAEOutput atau tuple

If return_dict is True, a ConsistencyDecoderVAEOutput is returned, otherwise a plain tuple is returned.

Enkodekan batch gambar menggunakan encoder bertile.

Ketika opsi ini diaktifkan, VAE akan membagi tensor input menjadi ubin (tiles) untuk menghitung encoding dalam beberapa langkah. Hal ini berguna untuk menjaga penggunaan memori tetap konstan terlepas dari ukuran gambar. Hasil akhir dari encoding bertile berbeda dari encoding non-tile karena setiap ubin menggunakan encoder yang berbeda. Untuk menghindari artefak tiling, ubin-ubin tersebut saling tumpang tindih dan dicampur (blended) untuk membentuk output yang halus. Anda mungkin masih melihat perubahan berukuran ubin pada output, tetapi seharusnya jauh lebih tidak terlihat.

Update on GitHub