Diffusers documentation

PixArtTransformer2DModel

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

PixArtTransformer2DModel

Um modelo Transformer para dados semelhantes a imagens do PixArt-Alpha e do PixArt-Sigma.

PixArtTransformer2DModel

classe diffusers.PixArtTransformer2DModel

< >

( num_attention_heads: int = 16attention_head_dim: int = 72in_channels: int = 4out_channels: int | None = 8num_layers: int = 28dropout: float = 0.0norm_num_groups: int = 32cross_attention_dim: int | None = 1152attention_bias: bool = Truesample_size: int = 128patch_size: int = 2activation_fn: str = 'gelu-approximate'num_embeds_ada_norm: int | None = 1000upcast_attention: bool = Falsenorm_type: str = 'ada_norm_single'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06interpolation_scale: int | None = Noneuse_additional_conditions: bool | None = Nonecaption_channels: int | None = Noneattention_type: str | None = 'default' )

Parâmetros

  • num_attention_heads (int, opcional, padrão 16) — O número de cabeças a serem usadas para a atenção multi-cabeça.
  • attention_head_dim (int, opcional, padrão 72) — O número de canais em cada head.
  • in_channels (int, padrão 4) — O número de canais na entrada.
  • out_channels (int, opcional) — O número de canais na saída. Especifique este parâmetro se o número de canais de saída for diferente do de entrada.
  • num_layers (int, opcional, padrão 28) — O número de blocos de camadas de Transformer a serem usados.
  • dropout (float, opcional, padrão 0.0) — A probabilidade de dropout a ser utilizada nos blocos do Transformer.
  • norm_num_groups (int, opcional, padrão 32) — Número de grupos para normalização de grupo dentro dos blocos Transformer.
  • cross_attention_dim (int, opcional) — A dimensionalidade das camadas de cross-attention, geralmente correspondente à dimensão oculta do codificador.
  • attention_bias (bool, opcional, padrão True) — Configura se a atenção dos blocos do Transformer deve conter um parâmetro de viés.
  • sample_size (int, padrão 128) — A largura das imagens latentes. Este parâmetro é fixo durante o treinamento.
  • patch_size (int, padrão 2) — Tamanho dos patches processados pelo modelo, relevante para arquiteturas que trabalham com dados não sequenciais.
  • activation_fn (str, opcional, padrão “gelu-approximate”) — Função de ativação a ser usada nas redes feed-forward dentro dos blocos Transformer.
  • num_embeds_ada_norm (int, opcional, padrão 1000) — Número de embeddings para AdaLayerNorm, fixo durante o treinamento e afeta o número máximo de etapas de desruidamento durante a inferência.
  • upcast_attention (bool, opcional, padrão False) — Se true, faz o upcast das dimensões do mecanismo de atenção para um desempenho potencialmente melhorado.
  • norm_type (str, opcional, padrão “ada_norm_zero”) — Especifica o tipo de normalização utilizado, pode ser ‘ada_norm_zero’.
  • norm_elementwise_affine (bool, opcional, padrão é False) — Se verdadeiro, habilita parâmetros afins por elemento nas camadas de normalização.
  • norm_eps (float, opcional, padrão 1e-6) — Uma pequena constante adicionada ao denominador em camadas de normalização para evitar divisão por zero.
  • interpolation_scale (int, opcional) — Fator de escala a ser usado durante a interpolação dos embeddings de posição.
  • use_additional_conditions (bool, opcional) — Se estamos usando condições adicionais como entradas.
  • attention_type (str, opcional, padrão “default”) — Tipo de mecanismo de atenção a ser utilizado.
  • caption_channels (int, opcional, padrão None) — Número de canais a serem usados para projetar os embeddings da legenda.
  • use_linear_projection (bool, opcional, padrão é False) — Argumento obsoleto. Será removido em uma versão futura.
  • num_vector_embeds (bool, opcional, padrão é False) — Argumento obsoleto. Será removido em uma versão futura.

Um modelo Transformer 2D, conforme introduzido na família de modelos PixArt (https://huggingface.co/papers/2310.00426, https://huggingface.co/papers/2403.04692).

forward

< >

( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneadded_cond_kwargs: dict = Nonecross_attention_kwargs: dict = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

Parâmetros

  • hidden_states (torch.FloatTensor de forma (batch size, channel, height, width)) — hidden_states de entrada.
  • encoder_hidden_states (torch.FloatTensor de forma (batch size, sequence len, embed dims), opcional) — Incorporações condicionais para a camada de atenção cruzada. Se não fornecidas, a atenção cruzada usa por padrão a autoatenção.
  • timestep (torch.LongTensor, opcional) — Usado para indicar o passo de desruido. Timestep opcional a ser aplicado como um embedding em AdaLayerNorm.
  • added_cond_kwargs — (dict[str, Any], opcional): Condições adicionais a serem usadas como entradas.
  • cross_attention_kwargs ( dict[str, Any], opcional) — Um dicionário de kwargs que, se especificado, é passado para o AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
  • attention_mask ( torch.Tensor, opcional) — Uma máscara de atenção de forma (batch, key_tokens) é aplicada a encoder_hidden_states. Se 1, a máscara é mantida; caso contrário, se 0, ela é descartada. A máscara será convertida em um viés, que adiciona grandes valores negativos às pontuações de atenção correspondentes aos tokens “descartados”.
  • encoder_attention_mask ( torch.Tensor, opcional) — Máscara de atenção cruzada aplicada a encoder_hidden_states. Dois formatos suportados:
    • Máscara (batch, sequence_length) True = manter, False = descartar.
    • Viés (batch, 1, sequence_length) 0 = manter, -10000 = descartar.

    Se ndim == 2: será interpretado como uma máscara e, em seguida, convertido em um viés consistente com o formato acima. Esse viés será adicionado às pontuações de atenção cruzada.

  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um UNet2DConditionOutput em vez de uma tupla simples.

O método forward do PixArtTransformer2DModel.

fuse_qkv_projections

< >

( )

Ativa as projeções QKV fundidas. Para os módulos de autoatenção, todas as matrizes de projeção (ou seja, query, key, value) são fundidas. Para os módulos de atenção cruzada, as matrizes de projeção de key e value são fundidas.

> Esta API é 🧪 experimental.

set_default_attn_processor

< >

( )

Desativa os processadores de atenção personalizados e define a implementação padrão de atenção.

É seguro usar apenas AttnProcessor(), pois o PixArt não possui processadores de atenção exóticos no modelo padrão.

unfuse_qkv_projections

< >

( )

Desativa a projeção QKV fundida, se estiver habilitada.

> Esta API é 🧪 experimental.

Update on GitHub