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 pour des données de type image provenant de Ideogram 4.

Ideogram4Transformer2DModel

classe 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 )

Paramètres

  • in_channels (int, par défaut 128) — Nombre de canaux latents après patchification (ae_channels * patch_size ** 2).
  • num_layers (int, par défaut 34) — Nombre de blocs de transformer.
  • attention_head_dim (int, par défaut 256) — Dimension de chaque tête d'attention ; la taille cachée totale est attention_head_dim * num_attention_heads.
  • num_attention_heads (int, par défaut 18) — Nombre de têtes d'attention.
  • intermediate_size (int, par défaut 12288) — Taille cachée du réseau de neurones en avant utilisée par le MLP SwiGLU à l'intérieur de chaque bloc.
  • adaln_dim (int, par défaut 512) — Dimension du vecteur de conditionnement consommé par les modulations AdaLN.
  • llm_features_dim (int, par défaut 53248) — Dimensionnalité des fonctionnalités textuelles par jeton fournies au modèle (généralement une concaténation des états cachés de plusieurs couches de l'encodeur de texte).
  • rope_theta (int, par défaut 5_000_000) — Base utilisée par l'incorporation de position rotative multi-axes.
  • mrope_section (tuple[int, int, int], par défaut (24, 20, 20)) — Nombre de fréquences allouées à chacun des axes (t, h, w) de MRoPE.
  • norm_eps (float, par défaut 1e-5) — Epsilon utilisé par les modules RMSNorm à l'intérieur des blocs de transformeur.

Le backbone transformer de flow-matching utilisé par le pipeline Ideogram 4.

Le transformateur opère sur une séquence unique empaquetée contenant à la fois des jetons de conditionnement textuel (produits par un encodeur textuel multimodal) et les latents d’image patchifiés. Des indicateurs par jeton distinguent les deux rôles, et un masque d’attention en blocs diagonaux dérivé de segment_ids restreint chaque échantillon à n’attendre que lui-même au sein d’un lot empaqueté.

forward

< >

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

Paramètres

  • hidden_states (torch.Tensor de forme (batch_size, sequence_length, in_channels)) — Séquence compacte de jetons d'image bruités et patchifiés. Les positions non-image sont masquées en interne.
  • timestep (torch.Tensor de forme (batch_size,) ou (batch_size, sequence_length)) — Temps de flow-matching dans [0, 1] (0 est du bruit pur, 1 est des données propres).
  • encoder_hidden_states (torch.Tensor de forme (batch_size, sequence_length, llm_features_dim)) — Fonctions de conditionnement textuel par jeton. Les positions non textuelles sont masquées en interne.
  • position_ids (torch.Tensor de forme (batch_size, sequence_length, 3)) — coordonnées (t, h, w) consommées par le RoPE multi-axes.
  • segment_ids (torch.Tensor de forme (batch_size, sequence_length)) — Identifiant d'échantillon par jeton au sein d'un lot compacté. Les positions partageant le même segment_id se font mutuellement attention.
  • indicator (torch.Tensor de forme (batch_size, sequence_length)) — Rôle par jeton : LLM_TOKEN_INDICATOR (texte) ou OUTPUT_IMAGE_INDICATOR (image).
  • attention_kwargs (dict, facultatif) — Dictionnaire de kwargs transmis au processeur d'attention. Une entrée "scale" met à l'échelle les poids LoRA (lorsque le backend PEFT est actif).
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un Transformer2DModelOutput plutôt qu'un simple tuple.

Prédire la vitesse de flow-matching pour les positions des jetons d’image de la séquence compactée.

Update on GitHub