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.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

UVit2DModel

Модель U-ViT представляет собой UNet на основе vision transformer (ViT). Эта модель объединяет элементы ViT (рассматривает все входные данные, такие как время, условия и зашумленные патчи изображения, в качестве токенов) и UNet (длинные skip-соединения между поверхностными и глубокими слоями). Skip-соединение важно для предсказания пиксельных признаков. Перед финальным выводом применяется дополнительный свёрточный блок 3x3 для улучшения качества изображения.

Аннотация из статьи:

В настоящее время применение диффузионных моделей в пиксельном пространстве изображений высокого разрешения затруднено. Вместо этого существующие подходы фокусируются на диффузии в пространствах меньшей размерности (латентная диффузия) или используют несколько уровней супер-разрешения генерации, называемых каскадами. Недостатком этих подходов является добавление дополнительной сложности в диффузионный фреймворк. Данная статья направлена на улучшение денуайзинговой диффузии для изображений высокого разрешения при сохранении максимально простой модели. Статья сосредоточена на исследовательском вопросе: как обучить стандартные модели денуайзинговой диффузии на изображениях высокого разрешения и при этом получить производительность, сопоставимую с альтернативными подходами? Четыре основных вывода: 1) расписание шума должно быть скорректировано для изображений высокого разрешения, 2) достаточно масштабировать только определённую часть архитектуры, 3) dropout следует добавлять в конкретных местах архитектуры, и 4) даунсемплинг является эффективной стратегией для избежания карт признаков высокого разрешения. Сочетая эти простые, но эффективные техники, мы достигли наилучших результатов в генерации изображений среди диффузионных моделей без модификаторов выборки на ImageNet.

UVit2DModel

класс 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

Параметры

  • input_ids (torch.LongTensor) — Идентификаторы токенов замаскированных латентных изображений, с формой (batch_size, height, width).
  • encoder_hidden_states (torch.Tensor) — Условные эмбеддинги (эмбеддинги, вычисленные на основе входных условий, таких как промпты), которые следует использовать.
  • pooled_text_emb (torch.Tensor) — Средневзвешенные текстовые эмбеддинги, используемые для дополнительного обусловливания.
  • micro_conds (torch.Tensor) — Значения микроусловий, которые встраиваются и комбинируются с pooled_text_emb.
  • cross_attention_kwargs (dict, необязательный) — Словарь kwargs, который при указании передается в AttentionProcessor.

Возвращает

torch.Tensor

Логиты по кодовой книге для каждого токена изображения, с формой (batch_size, codebook_size, height, width).

set_default_attn_processor

< >

( )

Отключает пользовательские обработчики внимания и устанавливает реализацию внимания по умолчанию.

UVit2DConvEmbed

класс diffusers.models.unets.uvit_2d.UVit2DConvEmbed

< >

( in_channelsblock_out_channelsvocab_sizeelementwise_affineepsbias )

UVitBlock

класс diffusers.models.unets.uvit_2d.UVitBlock

< >

( channelsnum_res_blocks: inthidden_sizehidden_dropoutln_elementwise_affinelayer_norm_epsuse_biasblock_num_headsattention_dropoutdownsample: boolupsample: bool )

ConvNextBlock

класс diffusers.models.unets.uvit_2d.ConvNextBlock

< >

( channelslayer_norm_epsln_elementwise_affineuse_biashidden_dropouthidden_sizeres_ffn_factor = 4 )

ConvMlmLayer

класс 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