Diffusers documentation
UVit2DModel
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
< 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
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 avecpooled_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).
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
< source >( in_channelsblock_out_channelsvocab_sizeelementwise_affineepsbias )
UVitBlock
classe diffusers.models.unets.uvit_2d.UVitBlock
< source >( channelsnum_res_blocks: inthidden_sizehidden_dropoutln_elementwise_affinelayer_norm_epsuse_biasblock_num_headsattention_dropoutdownsample: boolupsample: bool )
ConvNextBlock
classe diffusers.models.unets.uvit_2d.ConvNextBlock
< source >( channelslayer_norm_epsln_elementwise_affineuse_biashidden_dropouthidden_sizeres_ffn_factor = 4 )
ConvMlmLayer
classe diffusers.models.unets.uvit_2d.ConvMlmLayer
< source >( block_out_channels: intin_channels: intuse_bias: boolln_elementwise_affine: boollayer_norm_eps: floatcodebook_size: int )