# Lumina2Transformer2DModel

Un modèle Diffusion Transformer pour des données vidéo 3D a été introduit dans [Lumina Image 2.0](https://huggingface.co/Alpha-VLLM/Lumina-Image-2.0) par Alpha-VLLM.

Le modèle peut être chargé à l'aide du fragment de code suivant.

```python
from diffusers import Lumina2Transformer2DModel

transformer = Lumina2Transformer2DModel.from_pretrained("Alpha-VLLM/Lumina-Image-2.0", subfolder="transformer", dtype=torch.bfloat16)
```

## Lumina2Transformer2DModel[[diffusers.Lumina2Transformer2DModel]]

#### diffusers.Lumina2Transformer2DModel[[diffusers.Lumina2Transformer2DModel]]

```python
diffusers.Lumina2Transformer2DModel(sample_size: int = 128, patch_size: int = 2, in_channels: int = 16, out_channels: int | None = None, hidden_size: int = 2304, num_layers: int = 26, num_refiner_layers: int = 2, num_attention_heads: int = 24, num_kv_heads: int = 8, multiple_of: int = 256, ffn_dim_multiplier: float | None = None, norm_eps: float = 1e-05, scaling_factor: float = 1.0, axes_dim_rope: tuple[int, int, int] = (32, 32, 32), axes_lens: tuple[int, int, int] = (300, 512, 512), cap_feat_dim: int = 1024)
```

[Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_lumina2.py#L327)

**Paramètres :**

sample_size (`int`) : La largeur des images latentes. Cette valeur est fixe pendant l'entraînement, car elle est utilisée pour apprendre un nombre d'embeddings de position.

patch_size (`int`, *facultatif*, (`int`, *facultatif*, valeur par défaut 2) : La taille de chaque patch dans l'image. Ce paramètre définit la résolution des patches fournis au modèle.

in_channels (`int`, *facultatif*, valeur par défaut 4) : Le nombre de canaux d'entrée pour le modèle. Généralement, cela correspond au nombre de canaux des images d'entrée.

hidden_size (`int`, *facultatif*, valeur par défaut 4096) : La dimensionnalité des couches cachées du modèle. Ce paramètre détermine la largeur des représentations cachées du modèle.

num_layers (`int`, *facultatif*, par défaut 32) : Le nombre de couches dans le modèle. Cela définit la profondeur du réseau de neurones.

num_attention_heads (`int`, *facultatif*, valeur par défaut 32) : Le nombre de têtes d'attention dans chaque couche d'attention. Ce paramètre spécifie le nombre de mécanismes d'attention distincts utilisés.

num_kv_heads (`int`, *facultatif*, valeur par défaut 8) : Le nombre de têtes de clé-valeur dans le mécanisme d'attention, s'il diffère du nombre de têtes d'attention. Si None, il est défini sur num_attention_heads.

multiple_of (`int`, *facultatif*, valeur par défaut 256) : Un facteur dont la taille cachée doit être un multiple. Cela peut aider à optimiser certaines configurations matérielles.

ffn_dim_multiplier (`float`, *facultatif*) : Un multiplicateur pour la dimensionnalité du réseau feed-forward. Si None, il utilise une valeur par défaut basée sur la configuration du modèle.

norm_eps (`float`, *facultatif*, par défaut 1e-5) : Une petite valeur ajoutée au dénominateur pour la stabilité numérique dans les couches de normalisation.

scaling_factor (`float`, *facultatif*, valeur par défaut 1.0) : Un facteur d'échelle appliqué à certains paramètres ou couches du modèle. Il peut être utilisé pour ajuster l'échelle globale des opérations du modèle.

Lumina2NextDiT : modèle de diffusion avec un squelette Transformer.

#### forward[[diffusers.Lumina2Transformer2DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: Tensor, encoder_hidden_states: Tensor, encoder_attention_mask: Tensor, 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_lumina2.py#L460)

**Paramètres :**

hidden_states (`torch.Tensor` de forme `(batch_size, in_channels, height, width)`) : `hidden_states` en entrée.

timestep (`torch.LongTensor`) : Utilisé pour indiquer l'étape de débruitage.

encoder_hidden_states (`torch.Tensor` de forme `(batch_size, sequence_len, embed_dims)`) : Embeddings conditionnels (embeddings calculés à partir des conditions d'entrée telles que les prompts) à utiliser.

encoder_attention_mask (`torch.Tensor`) : Masque appliqué à `encoder_hidden_states` lors de l'attention.

attention_kwargs (`dict`, *facultatif*) : Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'`AttentionProcessor` tel que défini sous `self.processor` dans [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

return_dict (`bool`, *facultatif*, par défaut `True`) : Indique s'il faut retourner un `~models.transformer_2d.Transformer2DModelOutput` plutôt qu'un simple tuple.

**Retourne :**

Si `return_dict` est True, un `~models.transformer_2d.Transformer2DModelOutput` est renvoyé, sinon un `tuple` dont le premier élément est le tenseur d'échantillon.

La méthode forward du [Lumina2Transformer2DModel](/docs/diffusers/main/fr/api/models/lumina2_transformer2d#diffusers.Lumina2Transformer2DModel).

## Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

#### diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

```python
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
```

[Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L21)

**Paramètres :**

sample (`torch.Tensor` de forme `(batch_size, num_channels, height, width)` ou `(batch size, num_vector_embeds - 1, num_latent_pixels)` si [Transformer2DModel](/docs/diffusers/main/fr/api/models/transformer2d#diffusers.Transformer2DModel) est discret) : Les états cachés en sortie, conditionnés par l'entrée `encoder_hidden_states`. Si discret, renvoie les distributions de probabilité pour les pixels latents non bruités.

La sortie de [Transformer2DModel](/docs/diffusers/main/fr/api/models/transformer2d#diffusers.Transformer2DModel).

