Buckets:

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

Modelo Transformer SD3

O modelo Transformer introduzido no Stable Diffusion 3. Sua novidade reside no bloco de transformer MMDiT.

SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]

diffusers.SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]

diffusers.SD3Transformer2DModel(sample_size: int = 128, patch_size: int = 2, in_channels: int = 16, num_layers: int = 18, attention_head_dim: int = 64, num_attention_heads: int = 18, joint_attention_dim: int = 4096, caption_projection_dim: int = 1152, pooled_projection_dim: int = 2048, out_channels: int = 16, pos_embed_max_size: int = 96, dual_attention_layers: tuple[int, ...] = (), qk_norm: str | None = None)

Fonte

Parâmetros:

sample_size (int, padrão 128) : A largura/altura dos latentes. Isso é fixo durante o treinamento, pois é usado para aprender um número de embeddings de posição.

patch_size (int, padrão 2) : Tamanho do patch para dividir os dados de entrada em pequenos patches.

in_channels (int, padrão 16) : O número de canais latentes na entrada.

num_layers (int, padrão 18) : O número de blocos de transformadores a serem usados.

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

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

joint_attention_dim (int, padrão 4096) : A dimensão de incorporação a ser usada para a atenção conjunta de texto e imagem.

caption_projection_dim (int, padrão 1152) : A dimensão de incorporação das incorporações de legenda.

pooled_projection_dim (int, padrão 2048) : A dimensão de incorporação das projeções de texto agrupadas.

out_channels (int, padrão 16) : O número de canais latentes na saída.

pos_embed_max_size (int, padrão 96) : A altura/largura máxima latente dos embeddings posicionais.

dual_attention_layers (tuple[int, ...], padrão ()) : O número de blocos de transformador de fluxo duplo a serem usados.

qk_norm (str, opcional, padrão None) : A normalização a ser usada para a consulta e a chave na camada de atenção. Se None, nenhuma normalização é usada.

O modelo Transformer introduzido no Stable Diffusion 3.

enable_forward_chunking[[diffusers.SD3Transformer2DModel.enable_forward_chunking]]

enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)

Fonte

Parâmetros:

chunk_size (int, opcional) : O tamanho do bloco das camadas feed-forward. Se não for especificado, a camada feed-forward será executada individualmente sobre cada tensor com dim=dim.

dim (int, opcional, padrão 0) : A dimensão sobre a qual o cálculo feed-forward deve ser dividido em blocos. Escolha entre dim=0 (lote) ou dim=1 (comprimento da sequência).

Define o processador de atenção para usar feed forward chunking.

forward[[diffusers.SD3Transformer2DModel.forward]]

forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, pooled_projections: Tensor = None, timestep: LongTensor = None, block_controlnet_hidden_states: list = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, skip_layers: list[int] | None = None)

Fonte

Parâmetros:

hidden_states (torch.Tensor de forma (batch size, channel, height, width)) : hidden_states de entrada.

encoder_hidden_states (torch.Tensor de forma (batch size, sequence_len, embed_dims)) : Embeddings condicionais (embeddings calculados a partir das condições de entrada, como prompts) a serem usados.

pooled_projections (torch.Tensor de forma (batch_size, projection_dim)) : Embebimentos projetados a partir dos embebimentos das condições de entrada.

timestep (torch.LongTensor) : Usado para indicar o passo de desruidamento.

block_controlnet_hidden_states (list de torch.Tensor) : Uma lista de tensores que, se especificada, é adicionada aos resíduos dos blocos de transformer.

joint_attention_kwargs (dict, opcional) : Um dicionário de kwargs que, se especificado, é passado para o AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.

return_dict (bool, opcional, padrão True) : Indica se deve retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.

skip_layers (list de int, opcional) : Uma lista de índices de camadas para ignorar durante a passagem para frente.

Retorna:

Se return_dict for True, um ~models.transformer_2d.Transformer2DModelOutput é retornado; caso contrário, uma tuple onde o primeiro elemento é o tensor da amostra.

O método forward do SD3Transformer2DModel.

fuse_qkv_projections[[diffusers.SD3Transformer2DModel.fuse_qkv_projections]]

fuse_qkv_projections()

Fonte

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.

unfuse_qkv_projections[[diffusers.SD3Transformer2DModel.unfuse_qkv_projections]]

unfuse_qkv_projections()

Fonte

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

> Esta API é 🧪 experimental.

Xet Storage Details

Size:
6.29 kB
·
Xet hash:
2c0bc09877909e9d7efb91695d8ca177e4b0140c1a04804b25709155dcaa650b

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