Buckets:

hf-doc-build/doc / diffusers /main /fr /api /models /krea2_transformer2d.md
mishig's picture
|
download
raw
5.89 kB
# Krea2Transformer2DModel
Le transformateur de correspondance de flux MMDiT à flux unique utilisé par [Krea 2](https://github.com/krea-ai/krea-2).
## Krea2Transformer2DModel[[diffusers.Krea2Transformer2DModel]]
#### diffusers.Krea2Transformer2DModel[[diffusers.Krea2Transformer2DModel]]
```python
diffusers.Krea2Transformer2DModel(in_channels: int = 64, num_layers: int = 28, attention_head_dim: int = 128, num_attention_heads: int = 48, num_key_value_heads: int = 12, intermediate_size: int = 16384, timestep_embed_dim: int = 256, text_hidden_dim: int = 2560, num_text_layers: int = 12, text_num_attention_heads: int = 20, text_num_key_value_heads: int = 20, text_intermediate_size: int = 6912, num_layerwise_text_blocks: int = 2, num_refiner_text_blocks: int = 2, axes_dims_rope: tuple[int, int, int] = (32, 48, 48), rope_theta: float = 1000.0, norm_eps: float = 1e-05)
```
[Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_krea2.py#L339)
**Paramètres :**
in_channels (`int`, par défaut 64) : Nombre de canaux latents après patchification (`vae_channels * patch_size ** 2`).
num_layers (`int`, par défaut 28) : Nombre de blocs transformer.
attention_head_dim (`int`, par défaut 128) : 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 48) : Nombre de têtes de requête.
num_key_value_heads (`int`, par défaut 12) : Nombre de têtes clé/valeur pour l'attention à requêtes groupées.
intermediate_size (`int`, par défaut 16384) : Taille cachée du réseau de neurones à propagation avant (MLP) SwiGLU dans chaque bloc.
timestep_embed_dim (`int`, par défaut 256) : Largeur de l'encodage sinusoïdal du pas de temps avant son MLP.
text_hidden_dim (`int`, par défaut 2560) : Taille cachée de l'encodeur de texte dont les états cachés sont consommés.
num_text_layers (`int`, par défaut 12) : Nombre d'états cachés de l'encodeur de texte tapés et empilés par jeton.
text_num_attention_heads (`int`, par défaut 20) : Nombre de têtes de requête dans les blocs de fusion de texte.
text_num_key_value_heads (`int`, par défaut 20) : Nombre de têtes clé/valeur dans les blocs de fusion de texte.
text_intermediate_size (`int`, par défaut 6912) : Taille cachée du réseau de feed-forward du MLP SwiGLU à l'intérieur des blocs de fusion de texte.
num_layerwise_text_blocks (`int`, par défaut 2) : Nombre de blocs de fusion de texte appliqués sur l'axe des couches tapées (par jeton).
num_refiner_text_blocks (`int`, par défaut 2) : Nombre de blocs de fusion de texte appliqués sur la séquence de jetons.
axes_dims_rope (`tuple[int, int, int]`, par défaut `(32, 48, 48)`) : Répartition de la dimension des têtes sur les axes de position rotative (t, h, w).
rope_theta (`float`, par défaut 1000.0) : Base utilisée par l'incorporation de position rotative.
norm_eps (`float`, par défaut 1e-5) : Epsilon utilisé par tous les modules RMSNorm.
Le backbone de flow-matching MMDiT à flux unique utilisé par le pipeline Krea 2.
Le conditionnement par le texte est introduit sous forme d'une pile d'états cachés prélevés sur plusieurs couches d'un encodeur de texte multimodal. Un petit transformateur de fusion de texte réduit l'axe des couches et affine la séquence de jetons ; le résultat est concaténé avec les latents d'image patchifiés pour former une unique séquence `[text, image]` traitée par les blocs transformateur. L'horodatage conditionne chaque bloc via un vecteur de modulation partagé ainsi que des tables apprises par bloc.
#### forward[[diffusers.Krea2Transformer2DModel.forward]]
```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: Tensor, position_ids: Tensor, encoder_attention_mask: typing.Optional[torch.Tensor] = None, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
```
[Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_krea2.py#L456)
**Paramètres :**
hidden_states (`torch.Tensor` de forme `(batch_size, image_seq_len, in_channels)`) : Latents d'image bruités, empilés (patchifiés).
encoder_hidden_states (`torch.Tensor` de forme `(batch_size, text_seq_len, num_text_layers, text_hidden_dim)`) : Pile des états cachés de l'encodeur de texte tapés par jeton.
timestep (`torch.Tensor` de forme `(batch_size,)`) : Temps de flow-matching dans `[0, 1]` (1 est du bruit pur, 0 est des données propres).
position_ids (`torch.Tensor` de forme `(text_seq_len + image_seq_len, 3)`) : coordonnées rotatives `(t, h, w)` pour la séquence combinée. Les lignes de texte sont toutes nulles ; les lignes d’image contiennent les coordonnées de la grille latente.
encoder_attention_mask (`torch.Tensor` de forme `(batch_size, text_seq_len)`, *facultatif*) : Masque booléen indiquant les jetons de texte valides. Passez `None` lorsque tous les jetons de texte sont valides.
attention_kwargs (`dict`, *facultatif*) : Un dictionnaire de kwargs qui, lorsqu'il contient une entrée `scale`, définit l'échelle LoRA appliquée aux adaptateurs de ce transformateur pour la durée du passage avant.
return_dict (`bool`, *facultatif*, par défaut `True`) : Indique s'il faut retourner un [Transformer2DModelOutput](/docs/diffusers/main/fr/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) plutôt qu'un simple tuple.
**Retourne :**
[Transformer2DModelOutput](/docs/diffusers/main/fr/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) ou un `tuple` dont le premier élément est le tenseur de vélocité de forme `(batch_size, image_seq_len, in_channels)`.
Prédire la vitesse de flow-matching pour les jetons d'image.

Xet Storage Details

Size:
5.89 kB
·
Xet hash:
78166d0b4af90cfdece1cb8cdd198b2be04eba931dd6e7d5ea156f5fa127ef00

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.