Diffusers documentation

Ideogram4Transformer2DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Ideogram4Transformer2DModel

Un transformer para datos de tipo imagen de Ideogram 4.

Ideogram4Transformer2DModel

clase diffusers.Ideogram4Transformer2DModel

< >

( in_channels: int = 128num_layers: int = 34attention_head_dim: int = 256num_attention_heads: int = 18intermediate_size: int = 12288adaln_dim: int = 512llm_features_dim: int = 53248rope_theta: int = 5000000mrope_section: tuple[int, int, int] = (24, 20, 20)norm_eps: float = 1e-05 )

Parámetros

  • in_channels (int, por defecto 128) — Número de canales latentes después de la patchification (ae_channels * patch_size ** 2).
  • num_layers (int, por defecto 34) — Número de bloques de transformer.
  • attention_head_dim (int, por defecto 256) — Dimensión de cada cabeza de atención; el tamaño oculto total es attention_head_dim * num_attention_heads.
  • num_attention_heads (int, por defecto 18) — Número de cabezas de atención.
  • intermediate_size (int, por defecto 12288) — Tamaño oculto de la red feed-forward utilizado por el MLP SwiGLU dentro de cada bloque.
  • adaln_dim (int, por defecto 512) — Dimensionalidad del vector de condicionamiento consumido por las modulaciones AdaLN.
  • llm_features_dim (int, valor predeterminado 53248) — Dimensionalidad de las características de texto por token que se introducen en el modelo (típicamente, una concatenación de estados ocultos de varias capas del codificador de texto).
  • rope_theta (int, por defecto 5_000_000) — Base utilizada por la incrustación de posición rotatoria multi-eje.
  • mrope_section (tuple[int, int, int], por defecto (24, 20, 20)) — Número de frecuencias asignadas a cada uno de los ejes (t, h, w) de MRoPE.
  • norm_eps (float, por defecto 1e-5) — Epsilon utilizado por los módulos RMSNorm dentro de los bloques del transformer.

El backbone de transformer de flow-matching utilizado por el pipeline de Ideogram 4.

El transformer opera sobre una secuencia empaquetada única que contiene tanto tokens de condicionamiento de texto (producidos por un codificador de texto multimodal) como latentes de imagen parcheados. Indicadores por token distinguen los dos roles, y una máscara de atención diagonal por bloques derivada de segment_ids restringe cada muestra para que solo atienda a sí misma dentro de un lote empaquetado.

forward

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorposition_ids: Tensorsegment_ids: Tensorindicator: Tensorattention_kwargs: dict | None = Nonereturn_dict: bool = True )

Parámetros

  • hidden_states (torch.Tensor de forma (batch_size, sequence_length, in_channels)) — Secuencia empaquetada de tokens de imagen ruidosa y parcheada. Las posiciones que no son de imagen se enmascaran internamente.
  • timestep (torch.Tensor de forma (batch_size,) o (batch_size, sequence_length)) — Tiempo de flow-matching en [0, 1] (0 es ruido puro, 1 es datos limpios).
  • encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_length, llm_features_dim)) — Características de condicionamiento de texto por token. Las posiciones no de texto se enmascaran internamente.
  • position_ids (torch.Tensor de forma (batch_size, sequence_length, 3)) — coordenadas (t, h, w) consumidas por el RoPE multi-eje.
  • segment_ids (torch.Tensor de forma (batch_size, sequence_length)) — Identificador de muestra por token dentro de un lote empaquetado. Las posiciones que comparten un segment_id atienden entre sí.
  • indicator (torch.Tensor de forma (batch_size, sequence_length)) — Rol por token: LLM_TOKEN_INDICATOR (texto) o OUTPUT_IMAGE_INDICATOR (imagen).
  • attention_kwargs (dict, opcional) — Un diccionario de kwargs que se pasa al procesador de atención. Una entrada "scale" escala los pesos de LoRA (cuando el backend PEFT está activo).
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un Transformer2DModelOutput en lugar de una tupla simple.

Predice la velocidad de flow-matching para las posiciones de tokens de imagen de la secuencia empaquetada.

Update on GitHub