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

U-ViT 모델은 Vision Transformer(ViT) 기반의 UNet입니다. 이 모델은 ViT의 요소(시간, 조건, 노이즈 이미지의 패치와 같은 모든 입력을 토큰으로 취급)와 UNet의 요소(얕은 층과 깊은 층 사이의 긴 스킵 연결)를 결합합니다. 스킵 연결은 픽셀 수준의 특징을 예측하는 데 중요합니다. 이미지 품질을 개선하기 위해 최종 출력 전에 추가적인 3x3 컨볼루션 블록이 적용됩니다.

해당 논문의 초록은 다음과 같습니다:

현재 고해상도 이미지의 픽셀 공간에 diffusion 모델을 적용하는 것은 어렵습니다. 대신 기존 접근법은 저차원 공간에서의 diffusion(latent diffusion)에 초점을 맞추거나, cascade라고 불리는 여러 단계의 super-resolution 생성 레벨을 사용합니다. 이러한 접근법의 단점은 diffusion 프레임워크에 추가적인 복잡성을 더한다는 것입니다. 이 논문은 모델을 최대한 단순하게 유지하면서 고해상도 이미지에 대한 denoising diffusion을 개선하는 것을 목표로 합니다. 이 논문의 핵심 연구 질문은 다음과 같습니다. 표준 denoising diffusion 모델을 고해상도 이미지로 학습하면서도 이러한 대안적 접근법과 동등한 성능을 얻을 수 있는 방법은 무엇인가? 네 가지 주요 발견은 다음과 같습니다. 1) 노이즈 스케줄은 고해상도 이미지에 맞게 조정되어야 하며, 2) 아키텍처의 특정 부분만 확장하는 것으로 충분하고, 3) dropout은 아키텍처의 특정 위치에 추가되어야 하며, 4) downsampling은 고해상도 feature map을 피하는 효과적인 전략입니다. 이러한 단순하면서도 효과적인 기법들을 결합하여, ImageNet에서 sampling modifier를 사용하지 않는 diffusion 모델 중 이미지 생성 분야에서 state-of-the-art 성능을 달성했습니다.

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) — 마스크된 잠재 이미지 토큰의 토큰 ID이며, 모양은 (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, 선택 사항) — 지정된 경우 AttentionProcessor에 전달되는 kwargs 사전입니다.

반환값

torch.Tensor

각 이미지 토큰에 대한 코드북의 로짓으로, 모양은 (batch_size, codebook_size, height, width)입니다.

set_default_attn_processor

< >

( )

커스텀 어텐션 프로세서를 비활성화하고 기본 어텐션 구현을 설정합니다.

UVit2DConvEmbed

class 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