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

Le modèle U-ViT est un UNet basé sur un vision transformer (ViT). Ce modèle intègre des éléments du ViT (considère toutes les entrées, telles que le temps, les conditions et les patches d'image bruités, comme des tokens) et de l'UNet (connexions de saut longues entre les couches superficielles et profondes). La connexion de saut est importante pour la prédiction des caractéristiques au niveau des pixels. Un bloc convolutif 3x3 supplémentaire est appliqué avant la sortie finale pour améliorer la qualité de l'image.

L'abstract de l'article est :

Actuellement, l’application de modèles de diffusion dans l’espace pixel d’images haute résolution est difficile. Les approches existantes se concentrent plutôt sur la diffusion dans des espaces de plus faible dimension (diffusion latente) ou sur plusieurs niveaux de super-résolution de génération, appelés cascades. L’inconvénient est que ces approches ajoutent une complexité supplémentaire au cadre de diffusion. Cet article vise à améliorer la diffusion de débruitage pour les images haute résolution tout en gardant le modèle aussi simple que possible. L’article est centré sur la question de recherche suivante : comment entraîner des modèles de diffusion de débruitage standard sur des images haute résolution et obtenir tout de même des performances comparables à ces approches alternatives ? Les quatre principaux résultats sont : 1) le calendrier de bruit doit être ajusté pour les images haute résolution, 2) il suffit de mettre à l’échelle une partie particulière de l’architecture, 3) un dropout doit être ajouté à des emplacements spécifiques de l’architecture, et 4) le sous-échantillonnage est une stratégie efficace pour éviter les cartes de caractéristiques haute résolution. En combinant ces techniques simples mais efficaces, nous atteignons l’état de l’art en génération d’images parmi les modèles de diffusion, sans modificateurs d’échantillonnage, sur ImageNet.

UVit2DModel

classe 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

Paramètres

  • input_ids (torch.LongTensor) — Identifiants des jetons de l'image latente masquée, de forme (batch_size, height, width).
  • encoder_hidden_states (torch.Tensor) — Embeddings conditionnels (embeddings calculés à partir des conditions d’entrée telles que les prompts) à utiliser.
  • pooled_text_emb (torch.Tensor) — Embeddings de texte agrégés utilisés pour un conditionnement supplémentaire.
  • micro_conds (torch.Tensor) — Valeurs de micro-conditionnement qui sont intégrées et combinées avec pooled_text_emb.
  • cross_attention_kwargs (dict, facultatif) — Dictionnaire de kwargs qui, s'il est spécifié, est transmis à AttentionProcessor.

Retourne

torch.Tensor

Les logits sur le codebook pour chaque jeton d'image, de forme (batch_size, codebook_size, height, width).

set_default_attn_processor

< >

( )

Désactive les processeurs d'attention personnalisés et définit l'implémentation d'attention par défaut.

UVit2DConvEmbed

classe diffusers.models.unets.uvit_2d.UVit2DConvEmbed

< >

( in_channelsblock_out_channelsvocab_sizeelementwise_affineepsbias )

UVitBlock

classe diffusers.models.unets.uvit_2d.UVitBlock

< >

( channelsnum_res_blocks: inthidden_sizehidden_dropoutln_elementwise_affinelayer_norm_epsuse_biasblock_num_headsattention_dropoutdownsample: boolupsample: bool )

ConvNextBlock

classe diffusers.models.unets.uvit_2d.ConvNextBlock

< >

( channelslayer_norm_epsln_elementwise_affineuse_biashidden_dropouthidden_sizeres_ffn_factor = 4 )

ConvMlmLayer

classe 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