# Lumina2Transformer2DModel

Um modelo Diffusion Transformer para dados de vídeo 3D foi introduzido em [Lumina Image 2.0](https://huggingface.co/Alpha-VLLM/Lumina-Image-2.0) pela Alpha-VLLM.

O modelo pode ser carregado com o seguinte trecho de código.

```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 = (32, 32, 32), axes_lens: tuple = (300, 512, 512), cap_feat_dim: int = 1024)
```

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

**Parâmetros:**

sample_size (`int`) : A largura das imagens latentes. Isso é fixo durante o treinamento, pois é usado para aprender um número de embeddings de posição.

patch_size (`int`, *opcional*, (`int`, *opcional*, padrão é 2) : O tamanho de cada patch na imagem. Este parâmetro define a resolução dos patches enviados ao modelo.

in_channels (`int`, *opcional*, padrão 4) : O número de canais de entrada para o modelo. Normalmente, isso corresponde ao número de canais nas imagens de entrada.

hidden_size (`int`, *opcional*, padrão 4096) : A dimensionalidade das camadas ocultas no modelo. Este parâmetro determina a largura das representações ocultas do modelo.

num_layers (`int`, *opcional*, padrão 32) : O número de camadas no modelo. Isso define a profundidade da rede neural.

num_attention_heads (`int`, *opcional*, padrão 32) : O número de cabeças de atenção em cada camada de atenção. Este parâmetro especifica quantos mecanismos de atenção separados são usados.

num_kv_heads (`int`, *opcional*, padrão 8) : O número de cabeças de chave-valor no mecanismo de atenção, se diferente do número de cabeças de atenção. Se for None, o padrão é num_attention_heads.

multiple_of (`int`, *opcional*, padrão 256) : Um fator pelo qual o tamanho oculto deve ser um múltiplo. Isso pode ajudar a otimizar certas configurações de hardware.

ffn_dim_multiplier (`float`, *opcional*) : Um multiplicador para a dimensionalidade da rede feed-forward. Se for None, usa um valor padrão com base na configuração do modelo.

norm_eps (`float`, *opcional*, padrão 1e-5) : Um valor pequeno adicionado ao denominador para estabilidade numérica nas camadas de normalização.

scaling_factor (`float`, *opcional*, padrão 1.0) : Um fator de escala aplicado a certos parâmetros ou camadas no modelo. Isso pode ser usado para ajustar a escala geral das operações do modelo.

Lumina2NextDiT: modelo de difusão com um backbone de 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)
```

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

**Parâmetros:**

hidden_states (`torch.Tensor` de forma `(batch_size, in_channels, height, width)`) : `hidden_states` de entrada.

timestep (`torch.LongTensor`) : Usado para indicar o passo de desruidamento.

encoder_hidden_states (`torch.Tensor` de forma `(batch_size, sequence_len, embed_dims)`) : Embeddings condicionais (embeddings calculados a partir das condições de entrada, como prompts) a serem usados.

encoder_attention_mask (`torch.Tensor`) : Máscara aplicada a `encoder_hidden_states` durante a atenção.

attention_kwargs (`dict`, *opcional*) : Um dicionário de kwargs que, se especificado, é passado para o `AttentionProcessor` conforme definido em `self.processor` em [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

return_dict (`bool`, *opcional*, padrão `True`) : Indica se deve retornar um `~models.transformer_2d.Transformer2DModelOutput` em vez de uma tupla simples.

**Retorna:**

Se `return_dict` for True, um `~models.transformer_2d.Transformer2DModelOutput` é retornado; caso contrário, uma `tuple` onde o primeiro elemento é o tensor da amostra.

O método forward do [Lumina2Transformer2DModel](/docs/diffusers/main/pt/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)
```

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

**Parâmetros:**

sample (`torch.Tensor` de forma `(batch_size, num_channels, height, width)` ou `(batch size, num_vector_embeds - 1, num_latent_pixels)` se [Transformer2DModel](/docs/diffusers/main/pt/api/models/transformer2d#diffusers.Transformer2DModel) for discreto) : A saída dos estados ocultos condicionada à entrada `encoder_hidden_states`. Se discreto, retorna distribuições de probabilidade para os pixels latentes sem ruído.

A saída de [Transformer2DModel](/docs/diffusers/main/pt/api/models/transformer2d#diffusers.Transformer2DModel).

