Diffusers documentation
UVit2DModel
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
< source >( 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
< source >( 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ülendirilippooled_text_embile birleştirilen mikro koşullama değerleri. - cross_attention_kwargs (
dict, isteğe bağlı) — BelirtilirseAttentionProcessor'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).
Ö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
< source >( in_channelsblock_out_channelsvocab_sizeelementwise_affineepsbias )
UVitBlock
sınıf diffusers.models.unets.uvit_2d.UVitBlock
< source >( 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
< source >( channelslayer_norm_epsln_elementwise_affineuse_biashidden_dropouthidden_sizeres_ffn_factor = 4 )
ConvMlmLayer
sınıf diffusers.models.unets.uvit_2d.ConvMlmLayer
< source >( block_out_channels: intin_channels: intuse_bias: boolln_elementwise_affine: boollayer_norm_eps: floatcodebook_size: int )