# MiniMaxH3Transformer3DModel

MiniMax tarafından [MiniMax-H3](https://huggingface.co/MiniMaxAI/MiniMax-H3)'te tanıtılan, video ve sesin birlikte üretilmesi için kullanılan bir Diffusion Transformer modeli.

MiniMax-H3, metin koşullandırma, koşullandırma görüntüsü ve video satırları, ses satırları ve hedef video satırlarını aynı anda barındıran **tek bir paketlenmiş 1-B dizinin** üzerinde tek bir blok yığını çalıştırır. Dikkat, bu dizinin üzerinde tam öz-dikkat olduğundan, çapraz dikkat ve modallık başına blok ağırlıkları yoktur. Modallığa özgü davranış yalnızca iki giriş yama projeksiyonundan, AdaLN modülasyon parametrelerini seçen satır başına modallık etiketinden ve iki çıktı başından gelir.

Paketli yerleşimi oluşturma, çağıranın görevidir; bu nedenle forward imzası, latents'ten ayrı olarak yerleşimi alır: `(t, h, w)` konum ızgarası, satır başına modalite etiketleri, satır başına timestep indeksleri ve video, ses ve metin satırlarına adres veren üç indeks tensörü. [MiniMaxH3Blocks](/docs/diffusers/main/tr/api/pipelines/minimax_h3#diffusers.MiniMaxH3Blocks) ve `MiniMaxH3Ref2VABlocks` tüm bunları oluşturur.

Dolgu satırları taşıyan bir yerleşim (etiket `-1`), bu satırların bir Boole maskesi tarafından kendi dikkat belgelerinde tutulması nedeniyle maskeli bir dikkat arka ucuna ihtiyaç duyar; dolgusuz bir dizi maske gerektirmez ve tüm arka uçları kullanılabilir durumda tutar.

Tek bir depo, hem yayınlanan kontrol noktası bölümlerini içerir; bu nedenle görevi seçen alt klasördür: metin ve anahtar kare görevleri için `transformer/`, omni-reference görevi için `transformer_ref/`.

```python
import torch
from diffusers import MiniMaxH3Transformer3DModel

transformer = MiniMaxH3Transformer3DModel.from_pretrained(
    "MiniMaxAI/MiniMax-H3", subfolder="transformer", dtype=torch.bfloat16
).to("cuda")  # or "mps", "xpu", "cpu"
```

Checkpoint karma hassasiyete sahiptir: iki giriş yama projeksiyonu, timestep MLP ve iki çıktı başı float32 iken blok yığını bfloat16'dır. `from_pretrained`, `_keep_in_fp32_modules` sayesinde bu yerleşimi korur; bu nedenle `dtype=torch.bfloat16` parametresini iletin ve float32 modüllerin yerleştirilmesini sağlayın, modelin ardından `.to(torch.bfloat16)` ile dönüştürülmesine izin vermeyin.

## MiniMaxH3Transformer3DModel[[diffusers.MiniMaxH3Transformer3DModel]]

#### diffusers.MiniMaxH3Transformer3DModel[[diffusers.MiniMaxH3Transformer3DModel]]

```python
diffusers.MiniMaxH3Transformer3DModel(num_attention_heads: int = 56, attention_head_dim: int = 128, hidden_size: int = 5376, num_layers: int = 50, num_refiner_layers: int = 2, ffn_dim: int = 14336, in_channels: int = 24, audio_in_channels: int = 32, patch_size: tuple = (1, 2, 2), text_dim: int = 5120, freq_dim: int = 256, time_embed_hidden_dim: int = 5376, time_embed_dim: int = 2688, rope_freq_dim: int = 16, rope_theta: float = 10000.0, norm_eps: float = 1e-05, qk_norm_eps: float = 1e-05, final_norm_eps: float = 1e-05)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_minimax_h3.py#L379)

**Parametreler:**

num_attention_heads (`int`, varsayılan `56`) : Çok başlı dikkat için kullanılacak baş sayısı.

attention_head_dim (`int`, varsayılan `128`) : Her dikkat başlığındaki kanal sayısı. Not: MiniMax-H3'te `num_attention_heads * attention_head_dim`, `hidden_size`'ten *büyüktür*.

hidden_size (`int`, varsayılan `5376`) : Paketlenmiş dizinin (artık akışının) kanal sayısı.

num_layers (`int`, varsayılan `50`) : Transformer bloklarının sayısı.

num_refiner_layers (`int`, varsayılan `2`) : Projelendirilmiş metin akışına uygulanan token iyileştirme bloklarının sayısı.

ffn_dim (`int`, varsayılan `14336`) : SwiGLU ileri besleme katmanlarının iç boyutu.

in_channels (`int`, varsayılan `24`) : Video latentlerinin kanal sayısı.

audio_in_channels (`int`, varsayılan `32`) : Ses latentlerinin kanal sayısı.

patch_size (`tuple[int, int, int]`, varsayılan `(1, 2, 2)`) : Video latentlerini satırlara paketlemek için kullanılan `(t, h, w)` yaması.

text_dim (`int`, varsayılan `5120`) : Metin kodlayıcısının ürettiği metin koşullandırmasının kanal sayısı.

freq_dim (`int`, varsayılan `256`) : Sinüsoidal zaman adımı gömme boyutu. Zaman adımları `[0, 1]` aralığında ölçeklenmeden kullanılır.

time_embed_hidden_dim (`int`, varsayılan `5376`) : timestep MLP'nin iç boyutu.

time_embed_dim (`int`, varsayılan `2688`) : timestep MLP'nin çıktı boyutu, yani her AdaLN projeksiyonunun girdisi.

rope_freq_dim (`int`, varsayılan `16`) : Eksen başına dönerli frekans sayısı. `(t, h, w)` eksenleri bu uzunlukta tek bir `inv_freq` tamponunu paylaşır ve `attention_head_dim` kanallarının `2 * 3 * rope_freq_dim` tanesi döndürülür.

rope_theta (`float`, varsayılan `10000.0`) : `rope.inv_freq` tamponunun hesaplandığı döner frekans zamanlamasının tabanı.

norm_eps (`float`, varsayılan `1e-5`) : Dikkat öncesi ve ileri besleme öncesi normların epsilon değeri.

qk_norm_eps (`float`, varsayılan `1e-5`) : Baş başına sorgu/anahtar normlarının epsilon değeri.

final_norm_eps (`float`, varsayılan `1e-5`) : Token refiner çıktı normunun ve `norm_out`'un epsilon değeri.

MiniMax-H3'te tanıtılan, video + ses üretimi için ortak bir Transformer modeli.

MiniMax-H3, metin koşulunu, koşullandırma görüntü / video satırlarını, ses satırlarını ve hedef video satırlarını içeren **tek bir paketlenmiş 1-B dizinin** üzerinde tek bir blok yığını çalıştırır. Dikkat, bu dizinin üzerinde tam öz-dikkattir; çapraz dikkat ve modalite başına blok ağırlıkları yoktur. Modaliteye özgü davranış yalnızca iki giriş yama projeksiyonundan, satır başına AdaLN modalite etiketinden ve iki çıktı başından gelir.

Çağıran, paketli yerleşimi oluşturmaktan sorumludur: video latentlerini patchify etmek, satırları sıralamak ve `(t, h, w)` konum ızgarasını, satır başına modalite etiketlerini ve satır başına timestep indekslerini üretmek. Dizi herhangi bir dolgu içermez — referans uygulama, FlashAttention için 64'ün katına doldurur ve kuyruğu `cu_seqlens = [0, used, S]` ile ayırır, ancak bu portun buna bir kullanım alanı yoktur — bu nedenle dikkat, maskesiz olarak tek bir belge üzerinde çalışır ve tüm dikkat arka uçları kullanılabilir kalır.

Batch ekseni saf bir replikasyon eksenidir: yapısal argümanlar (`timestep`, `timestep_indices`, `token_tags`, `position_ids` ve üç indeks tensörü) her batch öğesinin paylaştığı tek bir paketlenmiş düzeni tanımlar ve her öğe tek bir dikkat belgesidir.

#### forward[[diffusers.MiniMaxH3Transformer3DModel.forward]]

```python
forward(hidden_states: Tensor, audio_hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: Tensor, timestep_indices: Tensor, token_tags: Tensor, position_ids: Tensor, video_indices: Tensor, audio_indices: Tensor, text_indices: Tensor, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_minimax_h3.py#L605)

**Parametreler:**

hidden_states (`torch.Tensor`, şekli `(batch_size, num_video_tokens, in_channels * prod(patch_size))`) : Patch'lenmiş video latent satırları — koşullama satırları ve hedef satırları — paketlenmiş dizide göründükleri sıraya göre, yani `video_indices` ile eşleşecek şekilde.

audio_hidden_states (`torch.Tensor`, şekli `(batch_size, num_audio_tokens, audio_in_channels)`) : `audio_indices` ile eşleşecek şekilde sıralanmış ses latent satırları.

encoder_hidden_states (`torch.Tensor`, şekli `(batch_size, num_text_tokens, text_dim)`) : `text_indices` ile eşleşecek şekilde sıralanmış metin koşullandırma.

timestep (`torch.Tensor`, şekli `(num_timesteps,)`) : Paketlenmiş dizide bulunan *ayrı* zaman adımı değerleri, `[0, 1]` aralığında ve ölçeklenmemiş. Tek bir ileri geçiş, farklı gürültü seviyelerindeki satırları (hedef video, hedef ses, koşullama satırları) işler.

timestep_indices (`torch.Tensor`, şekli `(seq_len,)`) : Paketlenmiş dizinin her satırı için, `timestep` içindeki zaman adımı indeksi.

token_tags (`torch.Tensor`, şekli `(seq_len,)`) : Paketlenmiş dizinin her satırı için, o satırın modalitesi: `0` video, `1` metin, `2` ses.

position_ids (`torch.Tensor`, şekli `(seq_len, 3)`) : Paketlenmiş dizinin her satırının `(t, h, w)` döner koordinatları.

video_indices (`torch.Tensor`, şekli `(num_video_tokens,)`) : Paketlenmiş dizideki video satırlarının konumları.

audio_indices (`torch.Tensor`, şekli `(num_audio_tokens,)`) : Paketlenmiş dizideki ses satırlarının konumları.

text_indices (`torch.Tensor`, şekli `(num_text_tokens,)`) : Paketlenmiş dizideki metin satırlarının konumları.

attention_kwargs (`dict`, *isteğe bağlı*) : Belirtilirse, LoRA katmanlarına uygulanan bir `scale` girdisi taşıyabilen bir kwargs sözlüğü.

return_dict (`bool`, varsayılan `True`) : Düz bir tuple yerine `MiniMaxH3TransformerOutput` döndürülüp döndürülmemesi.

**Dönüş:** `MiniMaxH3TransformerOutput` veya `tuple`

`video_indices` ve `audio_indices` satır sırasına göre, `(batch_size, num_video_tokens, in_channels * prod(patch_size))` biçiminde video hızı ve `(batch_size, num_audio_tokens, audio_in_channels)` biçiminde ses hızı.

## MiniMaxH3TransformerOutput[[diffusers.models.transformers.transformer_minimax_h3.MiniMaxH3TransformerOutput]]

#### diffusers.models.transformers.transformer_minimax_h3.MiniMaxH3TransformerOutput[[diffusers.models.transformers.transformer_minimax_h3.MiniMaxH3TransformerOutput]]

```python
diffusers.models.transformers.transformer_minimax_h3.MiniMaxH3TransformerOutput(sample: Tensor, audio_sample: typing.Optional[torch.Tensor] = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_minimax_h3.py#L42)

**Parametreler:**

sample (`torch.Tensor`, şekli `(batch_size, num_video_tokens, in_channels * prod(patch_size))`) : `video_indices` ile işaretlenen satırlar için video hız tahmini, aynı sırada. Koşullandırma satırları maskelenmeden döndürülür — zamanlayıcı adımından önce bunları maskelemek çağırıcının sorumluluğundadır.

audio_sample (`torch.Tensor`, şekli `(batch_size, num_audio_tokens, audio_in_channels)`, varsayılan değeri `None`) : `audio_indices` tarafından işaretlenen satırlar için, aynı sırayla ses hız tahmini. `forward` bunu her zaman doldurur; yalnızca, alanlarının düz bir sözlüğünden yeniden oluşturulabilmesi için varsayılan olarak `None` değerine sahiptir. Bu, accelerate offload kancalarının bir `BaseOutput` nesnesini girdi cihazına geri taşıma biçimidir.

[MiniMaxH3Transformer3DModel](/docs/diffusers/main/tr/api/models/minimax_h3_transformer3d#diffusers.MiniMaxH3Transformer3DModel)'in çıktısı.

