Diffusers documentation

UVit2DModel

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

UVit2DModel

U-ViT modeli, vision transformer (ViT) tabanlı bir UNet'tir. Bu model, ViT'den (zaman, koşullar ve gürültülü görüntü yamaları gibi tüm girdileri token olarak ele alır) ve UNet'ten (shallow ve deep katmanlar arasında uzun skip bağlantıları) unsurları bir araya getirir. Skip bağlantısı, piksel düzeyinde özellikleri tahmin etmek için önemlidir. Görüntü kalitesini iyileştirmek için nihai çıktıdan önce ek bir 3x3 convolutional bloğu uygulanır.

Makalenin özeti şudur:

Şu anda, yüksek çözünürlüklü görüntülerin piksel alanında difüzyon modellerini uygulamak zordur. Bunun yerine, mevcut yaklaşımlar difüzyonu daha düşük boyutlu alanlarda (latent difüzyon) gerçekleştirmeye veya kaskat olarak adlandırılan birden fazla süper çözünürlük seviyesinde üretime odaklanır. Bu yaklaşımların dezavantajı, difüzyon çerçevesine ek karmaşıklık katmalarıdır. Bu makale, modeli olabildiğince basit tutarken yüksek çözünürlüklü görüntüler için gürültü giderme difüzyonunu iyileştirmeyi amaçlamaktadır. Makale, şu araştırma sorusu etrafında şekillenmektedir: Yüksek çözünürlüklü görüntüler üzerinde standart bir gürültü giderme difüzyon modeli nasıl eğitilebilir ve yine de bu alternatif yaklaşımlarla karşılaştırılabilir performans elde edilebilir? Dört ana bulgu şunlardır: 1) gürültü zamanlaması yüksek çözünürlüklü görüntüler için ayarlanmalıdır, 2) mimarinin yalnızca belirli bir bölümünü ölçeklendirmek yeterlidir, 3) dropout mimarinin belirli konumlarına eklenmelidir ve 4) örnekleme azaltma, yüksek çözünürlüklü özellik haritalarından kaçınmak için etkili bir stratejidir. Bu basit ama etkili teknikleri birleştirerek, ImageNet üzerinde örneklem değiştiricileri kullanmadan difüzyon modelleri arasında görüntü üretiminde en iyi performansa ulaşıyoruz.

UVit2DModel

sınıf diffusers.UVit2DModel

< >

( hidden_size: int = 1024use_bias: bool = Falsehidden_dropout: float = 0.0cond_embed_dim: int = 768micro_cond_encode_dim: int = 256micro_cond_embed_dim: int = 1280encoder_hidden_size: int = 768vocab_size: int = 8256codebook_size: int = 8192in_channels: int = 768block_out_channels: int = 768num_res_blocks: int = 3downsample: bool = Falseupsample: bool = Falseblock_num_heads: int = 12num_hidden_layers: int = 22num_attention_heads: int = 16attention_dropout: float = 0.0intermediate_size: int = 2816layer_norm_eps: float = 1e-06ln_elementwise_affine: bool = Truesample_size: int = 64 )

forward

< >

( input_idsencoder_hidden_statespooled_text_embmicro_condscross_attention_kwargs = None ) → torch.Tensor

Parametreler

  • input_ids (torch.LongTensor) — Maskelenmiş latent görüntü tokenlarının token kimlikleri, şekli (batch_size, height, width).
  • encoder_hidden_states (torch.Tensor) — Kullanılacak koşullu gömme değerleri (prompt gibi girdi koşullarından hesaplanan gömme değerleri).
  • pooled_text_emb (torch.Tensor) — Ek koşullandırma için kullanılan havuzlanmış metin gömme değerleri.
  • micro_conds (torch.Tensor) — Gömülendirilip pooled_text_emb ile birleştirilen mikro koşullama değerleri.
  • cross_attention_kwargs (dict, isteğe bağlı) — Belirtilirse AttentionProcessor'a iletilen bir kwargs sözlüğü.

Dönüş değeri

torch.Tensor

Her görüntü jetonu için kod kitabı üzerindeki logitler, şekli (batch_size, codebook_size, height, width).

set_default_attn_processor

< >

( )

Özel dikkat işleyicilerini devre dışı bırakır ve varsayılan dikkat uygulamasını ayarlar.

UVit2DConvEmbed

sınıf diffusers.models.unets.uvit_2d.UVit2DConvEmbed

< >

( in_channelsblock_out_channelsvocab_sizeelementwise_affineepsbias )

UVitBlock

sınıf diffusers.models.unets.uvit_2d.UVitBlock

< >

( channelsnum_res_blocks: inthidden_sizehidden_dropoutln_elementwise_affinelayer_norm_epsuse_biasblock_num_headsattention_dropoutdownsample: boolupsample: bool )

ConvNextBlock

sınıf diffusers.models.unets.uvit_2d.ConvNextBlock

< >

( channelslayer_norm_epsln_elementwise_affineuse_biashidden_dropouthidden_sizeres_ffn_factor = 4 )

ConvMlmLayer

sınıf diffusers.models.unets.uvit_2d.ConvMlmLayer

< >

( block_out_channels: intin_channels: intuse_bias: boolln_elementwise_affine: boollayer_norm_eps: floatcodebook_size: int )

Update on GitHub