Diffusers documentation
Ideogram4Transformer2DModel
Ideogram4Transformer2DModel
Un transformer pour des données de type image provenant de Ideogram 4.
Ideogram4Transformer2DModel
classe diffusers.Ideogram4Transformer2DModel
< source >( 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 estattention_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
< source >( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorposition_ids: Tensorsegment_ids: Tensorindicator: Tensorattention_kwargs: dict | None = Nonereturn_dict: bool = True )
Paramètres
- hidden_states (
torch.Tensorde 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.Tensorde 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.Tensorde 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.Tensorde forme(batch_size, sequence_length, 3)) — coordonnées(t, h, w)consommées par le RoPE multi-axes. - segment_ids (
torch.Tensorde forme(batch_size, sequence_length)) — Identifiant d'échantillon par jeton au sein d'un lot compacté. Les positions partageant le mêmesegment_idse font mutuellement attention. - indicator (
torch.Tensorde forme(batch_size, sequence_length)) — Rôle par jeton :LLM_TOKEN_INDICATOR(texte) ouOUTPUT_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éfautTrue) — 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.