Buckets:

mishig's picture
|
download
raw
6.04 kB

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[[diffusers.UVit2DModel]]

diffusers.UVit2DModel[[diffusers.UVit2DModel]]

diffusers.UVit2DModel(hidden_size: int = 1024, use_bias: bool = False, hidden_dropout: float = 0.0, cond_embed_dim: int = 768, micro_cond_encode_dim: int = 256, micro_cond_embed_dim: int = 1280, encoder_hidden_size: int = 768, vocab_size: int = 8256, codebook_size: int = 8192, in_channels: int = 768, block_out_channels: int = 768, num_res_blocks: int = 3, downsample: bool = False, upsample: bool = False, block_num_heads: int = 12, num_hidden_layers: int = 22, num_attention_heads: int = 16, attention_dropout: float = 0.0, intermediate_size: int = 2816, layer_norm_eps: float = 1e-06, ln_elementwise_affine: bool = True, sample_size: int = 64)

Kaynak

forward[[diffusers.UVit2DModel.forward]]

forward(input_ids, encoder_hidden_states, pooled_text_emb, micro_conds, cross_attention_kwargs = None)

Kaynak

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ömlemeler (giriş koşullarından, örneğin istemlerden hesaplanan gömlemeler).

pooled_text_emb (torch.Tensor) : Ek koşullandırma için kullanılan havuzlanmış metin gömme değerleri.

micro_conds (torch.Tensor) : pooled_text_emb ile gömülüp birleştirilen mikro-konumlama değerleri.

cross_attention_kwargs (dict, isteğe bağlı) : Belirtilirse AttentionProcessor'a iletilen bir kwargs sözlüğü.

Dönüş: torch.Tensor

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

set_default_attn_processor[[diffusers.UVit2DModel.set_default_attn_processor]]

set_default_attn_processor()

Kaynak

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

UVit2DConvEmbed[[diffusers.models.unets.uvit_2d.UVit2DConvEmbed]]

diffusers.models.unets.uvit_2d.UVit2DConvEmbed[[diffusers.models.unets.uvit_2d.UVit2DConvEmbed]]

diffusers.models.unets.uvit_2d.UVit2DConvEmbed(in_channels, block_out_channels, vocab_size, elementwise_affine, eps, bias)

Kaynak

UVitBlock[[diffusers.models.unets.uvit_2d.UVitBlock]]

diffusers.models.unets.uvit_2d.UVitBlock[[diffusers.models.unets.uvit_2d.UVitBlock]]

diffusers.models.unets.uvit_2d.UVitBlock(channels, num_res_blocks: int, hidden_size, hidden_dropout, ln_elementwise_affine, layer_norm_eps, use_bias, block_num_heads, attention_dropout, downsample: bool, upsample: bool)

Kaynak

ConvNextBlock[[diffusers.models.unets.uvit_2d.ConvNextBlock]]

diffusers.models.unets.uvit_2d.ConvNextBlock[[diffusers.models.unets.uvit_2d.ConvNextBlock]]

diffusers.models.unets.uvit_2d.ConvNextBlock(channels, layer_norm_eps, ln_elementwise_affine, use_bias, hidden_dropout, hidden_size, res_ffn_factor = 4)

Kaynak

ConvMlmLayer[[diffusers.models.unets.uvit_2d.ConvMlmLayer]]

diffusers.models.unets.uvit_2d.ConvMlmLayer[[diffusers.models.unets.uvit_2d.ConvMlmLayer]]

diffusers.models.unets.uvit_2d.ConvMlmLayer(block_out_channels: int, in_channels: int, use_bias: bool, ln_elementwise_affine: bool, layer_norm_eps: float, codebook_size: int)

Kaynak

Xet Storage Details

Size:
6.04 kB
·
Xet hash:
048c9e834ac8259b938e8074ed3c11e8b5c6ba0e9738828cd5ff2c2f2d36366a

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.