Buckets:

hf-doc-build/doc / diffusers /main /pt /api /models /prior_transformer.md
mishig's picture
|
download
raw
7.95 kB

PriorTransformer

O Prior Transformer foi originalmente introduzido em Hierarchical Text-Conditional Image Generation with CLIP Latents por Ramesh et al. Ele é usado para prever embeddings de imagem do CLIP a partir de embeddings de texto do CLIP; os embeddings de imagem são previstos por meio de um processo de difusão de desruido.

O resumo do artigo é:

Modelos contrastivos como o CLIP demonstraram ser capazes de aprender representações robustas de imagens que capturam tanto a semântica quanto o estilo. Para aproveitar essas representações na geração de imagens, propomos um modelo de duas etapas: um prior que gera um embedding de imagem do CLIP dado um texto de legenda, e um decodificador que gera uma imagem condicionada ao embedding de imagem. Mostramos que a geração explícita de representações de imagem melhora a diversidade das imagens com perda mínima em fotorrealismo e similaridade com a legenda. Nossos decodificadores condicionados a representações de imagem também podem produzir variações de uma imagem que preservam tanto a semântica quanto o estilo, enquanto variam os detalhes não essenciais ausentes da representação de imagem. Além disso, o espaço de embedding conjunto do CLIP permite manipulações de imagem guiadas por linguagem de forma zero-shot. Usamos modelos de difusão para o decodificador e experimentamos com modelos autoregressivos e de difusão para o prior, constatando que os últimos são computacionalmente mais eficientes e produzem amostras de maior qualidade.

PriorTransformer[[diffusers.PriorTransformer]]

diffusers.PriorTransformer[[diffusers.PriorTransformer]]

diffusers.PriorTransformer(num_attention_heads: int = 32, attention_head_dim: int = 64, num_layers: int = 20, embedding_dim: int = 768, num_embeddings = 77, additional_embeddings = 4, dropout: float = 0.0, time_embed_act_fn: str = 'silu', norm_in_type: str | None = None, embedding_proj_norm_type: str | None = None, encoder_hid_proj_type: str | None = 'linear', added_emb_type: str | None = 'prd', time_embed_dim: int | None = None, embedding_proj_dim: int | None = None, clip_embed_dim: int | None = None)

Fonte

Parâmetros:

num_attention_heads (int, opcional, padrão 32) : O número de cabeças a serem usadas para a atenção multi-cabeça.

attention_head_dim (int, opcional, padrão 64) : O número de canais em cada head.

num_layers (int, opcional, padrão 20) : O número de blocos de Transformer a serem usados.

embedding_dim (int, opcional, padrão 768) : A dimensão da entrada do modelo hidden_states

num_embeddings (int, opcional, padrão 77) : O número de embeddings da entrada do modelo hidden_states

additional_embeddings (int, opcional, padrão 4) : O número de tokens adicionais anexados aos hidden_states projetados. O comprimento real dos hidden_states utilizados é num_embeddings + additional_embeddings.

dropout (float, opcional, padrão 0.0) : A probabilidade de dropout a ser utilizada.

time_embed_act_fn (str, opcional, padrão 'silu') : A função de ativação a ser usada para criar incorporações de passo de tempo.

norm_in_type (str, opcional, padrão None) : A camada de normalização a ser aplicada nos estados ocultos antes de passá-los para os blocos Transformer. Defina como None se a normalização não for necessária.

embedding_proj_norm_type (str, opcional, padrão None) : A camada de normalização a ser aplicada na entrada proj_embedding. Defina como None se a normalização não for necessária.

encoder_hid_proj_type (str, opcional, padrão linear) : A camada de projeção a ser aplicada na entrada encoder_hidden_states. Defina como None se encoder_hidden_states for None.

added_emb_type (str, opcional, padrão prd) : Embutimentos adicionais para condicionar o modelo. Escolha entre prd ou None. Se escolher prd, será adicionado no início um token indicando o produto escalar (quantizado) entre o embutimento de texto e o embutimento de imagem, conforme proposto no paper unclip https://huggingface.co/papers/2204.06125 Se for None, nenhum embutimento adicional será adicionado no início.

time_embed_dim (int, *optional*, defaults to None) : The dimension of timestep embeddings. If None, will be set to num_attention_heads * attention_head_dim`

embedding_proj_dim (int, opcional, padrão None) : A dimensão de proj_embedding. Se None, será definida como embedding_dim.

clip_embed_dim (int, opcional, padrão None) : A dimensão da saída. Se None, será definida como embedding_dim.

Um modelo Transformer A Prior.

forward[[diffusers.PriorTransformer.forward]]

forward(hidden_states, timestep: typing.Union[torch.Tensor, float, int], proj_embedding: Tensor, encoder_hidden_states: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.BoolTensor] = None, return_dict: bool = True)

Fonte

Parâmetros:

hidden_states (torch.Tensor de forma (batch_size, embedding_dim)) : Os embeddings de imagem atualmente previstos.

timestep (torch.LongTensor) : Etapa atual de remoção de ruído.

proj_embedding (torch.Tensor de forma (batch_size, embedding_dim)) : Vetor de incorporação projetado no qual o processo de remoção de ruído é condicionado.

encoder_hidden_states (torch.Tensor de forma (batch_size, num_embeddings, embedding_dim)) : Estados ocultos dos embeddings de texto nos quais o processo de desruido é condicionado.

attention_mask (torch.BoolTensor de forma (batch_size, num_embeddings)) : Máscara de texto para os embeddings de texto.

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

Retorna: PriorTransformerOutput ou tuple

Se return_dict for True, um PriorTransformerOutput é retornado; caso contrário, uma tupla é retornada, em que o primeiro elemento é o tensor da amostra.

O método forward do PriorTransformer.

set_default_attn_processor[[diffusers.PriorTransformer.set_default_attn_processor]]

set_default_attn_processor()

Fonte

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

PriorTransformerOutput[[diffusers.models.transformers.prior_transformer.PriorTransformerOutput]]

diffusers.models.transformers.prior_transformer.PriorTransformerOutput[[diffusers.models.transformers.prior_transformer.PriorTransformerOutput]]

diffusers.models.transformers.prior_transformer.PriorTransformerOutput(predicted_image_embedding: Tensor)

Fonte

Parâmetros:

predicted_image_embedding (torch.Tensor de forma (batch_size, embedding_dim)) : O embedding de imagem CLIP previsto, condicionado na entrada de embedding de texto CLIP.

A saída de PriorTransformer.

Xet Storage Details

Size:
7.95 kB
·
Xet hash:
14040da5e9d925155f1a6d12274a602161dff99934595ccd19e20971bc4e4ca6

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.