Diffusers documentation

Modelo Transformer de 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 de SD3

El modelo Transformer introducido en Stable Diffusion 3. Su novedad radica en el bloque de transformer MMDiT.

SD3Transformer2DModel

clase 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, por defecto 128) — El ancho/alto de los latentes. Esto se mantiene fijo durante el entrenamiento, ya que se utiliza para aprender un número de embeddings de posición.
  • patch_size (int, por defecto 2) — Tamaño del parche para dividir los datos de entrada en parches pequeños.
  • in_channels (int, por defecto 16) — El número de canales latentes en la entrada.
  • num_layers (int, por defecto 18) — El número de capas de bloques de transformador a utilizar.
  • attention_head_dim (int, por defecto 64) — El número de canales en cada cabeza.
  • num_attention_heads (int, por defecto 18) — El número de cabezas a utilizar para la atención multi-cabeza.
  • joint_attention_dim (int, por defecto 4096) — La dimensión de incrustación a utilizar para la atención conjunta de texto e imagen.
  • caption_projection_dim (int, por defecto 1152) — La dimensión de los embeddings de las descripciones.
  • pooled_projection_dim (int, por defecto 2048) — La dimensión de la incrustación de las proyecciones de texto agrupadas.
  • out_channels (int, por defecto 16) — El número de canales latentes en la salida.
  • pos_embed_max_size (int, por defecto 96) — La altura/ancho máximo latente de las incrustaciones posicionales.
  • dual_attention_layers (tuple[int, ...], por defecto ()) — El número de bloques de transformador de doble flujo a utilizar.
  • qk_norm (str, opcional, valor predeterminado None) — La normalización que se utilizará para la consulta y la clave en la capa de atención. Si es None, no se utiliza ninguna normalización.

El modelo Transformer introducido en Stable Diffusion 3.

enable_forward_chunking

< >

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

Parámetros

  • chunk_size (int, opcional) — El tamaño de bloque de las capas feed-forward. Si no se especifica, se ejecutará la capa feed-forward de forma individual sobre cada tensor con dim=dim.
  • dim (int, opcional, valor predeterminado 0) — La dimensión sobre la que se debe dividir en bloques el cálculo de la red feed-forward. Elija entre dim=0 (lote) o dim=1 (longitud de la secuencia).

Establece el procesador de atención para usar fragmentación de avance hacia adelante.

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)) — Estados ocultos de entrada hidden_states.
  • encoder_hidden_states (torch.Tensor de forma (batch size, sequence_len, embed_dims)) — Incrustaciones condicionales (incrustaciones calculadas a partir de las condiciones de entrada, como los prompts) que se deben utilizar.
  • pooled_projections (torch.Tensor de forma (batch_size, projection_dim)) — Incrustaciones proyectadas a partir de las incrustaciones de las condiciones de entrada.
  • timestep (torch.LongTensor) — Se utiliza para indicar el paso de desruido.
  • block_controlnet_hidden_states (list de torch.Tensor) — Una lista de tensores que, si se especifica, se suma a los residuos de los bloques del transformador.
  • joint_attention_kwargs (dict, opcional) — Un diccionario de kwargs que, si se especifica, se pasa al AttentionProcessor definido en self.processor dentro de diffusers.models.attention_processor.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ~models.transformer_2d.Transformer2DModelOutput en lugar de una tupla simple.
  • skip_layers (list de int, opcional) — Una lista de índices de capas que se omitirán durante la pasada hacia adelante.

El método forward de SD3Transformer2DModel.

fuse_qkv_projections

< >

( )

Habilita las proyecciones QKV fusionadas. Para los módulos de autoatención, todas las matrices de proyección (es decir, consulta, clave y valor) se fusionan. Para los módulos de atención cruzada, las matrices de proyección de clave y valor se fusionan.

> Esta API es 🧪 experimental.

unfuse_qkv_projections

< >

( )

Desactiva la proyección QKV fusionada si está habilitada.

> Esta API es 🧪 experimental.

Update on GitHub