Diffusers documentation

Modelo Transformer SD3

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

Modelo Transformer SD3

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

SD3Transformer2DModel

classe diffusers.SD3Transformer2DModel

< >

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

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 camadas de blocos de transformador a serem usadas.
  • attention_head_dim (int, padrão 64) — O número de canais em cada cabeça.
  • 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 dos embeddings 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 query e a key na camada de atenção. Se None, nenhuma normalização é usada.

O modelo Transformer introduzido no Stable Diffusion 3.

enable_forward_chunking

< >

( chunk_size: int | None = Nonedim: int = 0 )

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 chunking de feed forward.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneblock_controlnet_hidden_states: list = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueskip_layers: list[int] | None = None )

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)) — Incorporações condicionais (incorporações calculadas a partir das condições de entrada, como prompts) a serem usadas.
  • pooled_projections (torch.Tensor de forma (batch_size, projection_dim)) — Projeções de embeddings a partir dos embeddings das condições de entrada.
  • timestep (torch.LongTensor) — Usado para indicar o passo de desruido.
  • block_controlnet_hidden_states (list de torch.Tensor) — Uma lista de tensores que, se especificada, é adicionada aos resíduos dos blocos do transformer.
  • joint_attention_kwargs (dict, opcional) — Um dicionário de kwargs que, se especificado, é passado ao AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.
  • skip_layers (list de int, opcional) — Uma lista de índices de camadas a serem ignoradas durante a passagem para frente.

O método forward do SD3Transformer2DModel.

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.

unfuse_qkv_projections

< >

( )

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

> Esta API é 🧪 experimental.

Update on GitHub