Diffusers documentation

Tiny AutoEncoder

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

Tiny AutoEncoder

Stable Diffusion için Küçük OtoKodlayıcı (TAESD), Ollin Boer Bohan tarafından madebyollin/taesd adlı çalışmada tanıtılmıştır. Stable Diffusion’un VAE’sinin küçük, damıtılmış bir sürümüdür ve StableDiffusionPipeline veya StableDiffusionXLPipeline içindeki latentleri neredeyse anında hızlı bir şekilde çözebilir.

Stable Diffusion v-2.1 ile kullanmak için:

import torch
from diffusers import DiffusionPipeline, AutoencoderTiny

pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-1-base", dtype=torch.float16
)
pipe.vae = AutoencoderTiny.from_pretrained("madebyollin/taesd", dtype=torch.float16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "slice of delicious New York-style berry cheesecake"
image = pipe(prompt, num_inference_steps=25).images[0]
image

Stable Diffusion XL 1.0 ile kullanmak için

import torch
from diffusers import DiffusionPipeline, AutoencoderTiny

pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16
)
pipe.vae = AutoencoderTiny.from_pretrained("madebyollin/taesdxl", dtype=torch.float16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "slice of delicious New York-style berry cheesecake"
image = pipe(prompt, num_inference_steps=25).images[0]
image

AutoencoderTiny

sınıf diffusers.AutoencoderTiny

< >

( in_channels: int = 3out_channels: int = 3encoder_block_out_channels: tuple = (64, 64, 64, 64)decoder_block_out_channels: tuple = (64, 64, 64, 64)act_fn: str = 'relu'upsample_fn: str = 'nearest'latent_channels: int = 4upsampling_scaling_factor: int = 2num_encoder_blocks: tuple = (1, 3, 3, 3)num_decoder_blocks: tuple = (3, 3, 3, 1)latent_magnitude: int = 3latent_shift: float = 0.5force_upcast: bool = Falsescaling_factor: float = 1.0shift_factor: float = 0.0 )

Parametreler

  • in_channels (int, isteğe bağlı, varsayılan 3) — Girdi görüntüsündeki kanal sayısı.
  • out_channels (int, isteğe bağlı, varsayılan 3) — Çıktıdaki kanal sayısı.
  • encoder_block_out_channels (tuple[int], isteğe bağlı, varsayılan (64, 64, 64, 64)) — Her kodlayıcı bloğu için çıktı kanal sayısını temsil eden tamsayılar tuple'ı. Tuple'ın uzunluğu, kodlayıcı bloklarının sayısına eşit olmalıdır.
  • decoder_block_out_channels (tuple[int], isteğe bağlı, varsayılan (64, 64, 64, 64)) — Her decoder bloğu için çıktı kanal sayısını temsil eden tamsayılar tuple'ı. Tuple'ın uzunluğu, decoder bloklarının sayısına eşit olmalıdır.
  • act_fn (str, isteğe bağlı, varsayılan "relu") — Model genelinde kullanılacak aktivasyon fonksiyonu.
  • latent_channels (int, isteğe bağlı, varsayılan 4) — Gizil temsildeki kanal sayısı. Gizil uzay, girdi görüntüsünün sıkıştırılmış bir temsili olarak işlev görür.
  • upsampling_scaling_factor (int, isteğe bağlı, varsayılan 2) — Çözücüdeki büyütme (upsampling) işlemi için ölçekleme faktörü. Büyütme işlemi sırasında çıktı görüntüsünün boyutunu belirler.
  • num_encoder_blocks (tuple[int], isteğe bağlı, varsayılan (1, 3, 3, 3)) — Kodlama sürecinin her aşamasındaki kodlayıcı bloklarının sayısını temsil eden tamsayılar dizisi. Dizinin uzunluğu, kodlayıcıdaki aşama sayısına eşit olmalıdır. Her aşamanın farklı sayıda kodlayıcı bloğu vardır.
  • num_decoder_blocks (tuple[int], isteğe bağlı, varsayılan (3, 3, 3, 1)) — Çözümleme sürecinin her aşamasındaki decoder blok sayısını temsil eden tamsayı tuple'ı. Tuple'ın uzunluğu, decoder'daki aşama sayısına eşit olmalıdır. Her aşamanın farklı sayıda decoder bloğu vardır.
  • latent_magnitude (float, isteğe bağlı, varsayılan 3.0) — Gizil temsilin büyüklüğü. Bu parametre, bilgi koruma derecesini kontrol etmek için gizil temsil değerlerini ölçekler.
  • latent_shift (float, isteğe bağlı, varsayılan 0.5) — Latent temsiline uygulanan kaydırma. Bu parametre, latent uzayın merkezini kontrol eder.
  • scaling_factor (float, isteğe bağlı, varsayılan 1.0) — Eğitim setinin ilk partisi kullanılarak hesaplanan, eğitilmiş gizli uzayın bileşen bazlı standart sapması. Bu değer, difüzyon modelinin eğitimi sırasında gizli uzayın birim varyansa sahip olacak şekilde ölçeklendirilmesinde kullanılır. Gizli değişkenler, difüzyon modeline aktarılmadan önce z = z * scaling_factor formülüyle ölçeklenir. Kod çözme sırasında ise gizli değişkenler, z = 1 / scaling_factor * z formülüyle orijinal ölçeğe geri getirilir. Daha fazla ayrıntı için High-Resolution Image Synthesis with Latent Diffusion Models makalesinin 4.3.2 ve D.1 bölümlerine bakın. Ancak bu Autoencoder için böyle bir ölçeklendirme faktörü kullanılmadığından, varsayılan değer 1.0'dır.
  • force_upcast (bool, isteğe bağlı, varsayılan False) — Etkinleştirilirse, SD-XL gibi yüksek görüntü çözünürlüğü boru hatlarında VAE'nin float32'de çalışmasını zorlar. VAE, çok fazla hassasiyet kaybı olmadan daha düşük bir aralığa ince ayarlanabilir / eğitilebilir; bu durumda force_upcast False olarak ayarlanabilir (bkz. bu fp16 uyumlu AutoEncoder).

Görselleri latentlere kodlamak ve latent temsilleri görsellere çözmek için küçük bir damıtılmış VAE modeli.

AutoencoderTiny, TAESD'nin orijinal uygulamasının bir sarmalayıcısıdır.

Bu model ModelMixin sınıfından devralır. Tüm modeller için uygulanan genel yöntemlerini (indirme veya kaydetme gibi) görmek için üst sınıfın belgelerine bakın.

forward

< >

( sample: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple

Parametreler

  • sample (torch.Tensor) — Girdi örneği.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine DecoderOutput döndürülüp döndürülmemesi.

Dönüş değeri

DecoderOutput veya tuple

return_dict True ise, DecoderOutput döndürülür; aksi halde düz bir tuple döndürülür.

scale_latents

< >

( x: Tensor )

ham latents -> [0, 1]

unscale_latents

< >

( x: Tensor )

[0, 1] -> ham latentler

AutoencoderTinyOutput

sınıf diffusers.models.autoencoders.autoencoder_tiny.AutoencoderTinyOutput

< >

( latents: Tensor )

Parametreler

  • latents (torch.Tensor) — Encoder'ın kodlanmış çıktıları.

AutoencoderTiny kodlama yönteminin çıktısı.

Update on GitHub