Diffusers documentation
Tiny AutoEncoder
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]
imageStable 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]
imageAutoencoderTiny
sınıf diffusers.AutoencoderTiny
< source >( 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 öncez = z * scaling_factorformülüyle ölçeklenir. Kod çözme sırasında ise gizli değişkenler,z = 1 / scaling_factor * zformü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ılanFalse) — 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 durumdaforce_upcastFalseolarak 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
< source >( sample: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
ham latents -> [0, 1]
[0, 1] -> ham latentler
AutoencoderTinyOutput
sınıf diffusers.models.autoencoders.autoencoder_tiny.AutoencoderTinyOutput
< source >( latents: Tensor )
AutoencoderTiny kodlama yönteminin çıktısı.