Diffusers documentation
PixArtTransformer2DModel
PixArtTransformer2DModel
Um modelo Transformer para dados semelhantes a imagens do PixArt-Alpha e do PixArt-Sigma.
PixArtTransformer2DModel
classe diffusers.PixArtTransformer2DModel
< source >( 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
< source >( 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.FloatTensorde forma(batch size, channel, height, width)) —hidden_statesde entrada. - encoder_hidden_states (
torch.FloatTensorde 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 emAdaLayerNorm. - 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 oAttentionProcessorconforme definido emself.processorem diffusers.models.attention_processor. - attention_mask (
torch.Tensor, opcional) — Uma máscara de atenção de forma(batch, key_tokens)é aplicada aencoder_hidden_states. Se1, a máscara é mantida; caso contrário, se0, 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 aencoder_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. - Máscara
- return_dict (
bool, opcional, padrãoTrue) — Se deve ou não retornar um UNet2DConditionOutput em vez de uma tupla simples.
O método forward do PixArtTransformer2DModel.
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.
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.
Desativa a projeção QKV fundida, se estiver habilitada.
> Esta API é 🧪 experimental.