# WanAnimate2Transformer3DModel

Alibaba Wan Team tarafından [Wan-Animate-2](https://github.com/Wan-Video/Wan2.2)'de kullanılan, 3D video benzeri veriler için bir Diffusion Transformer modeli. Bir karakter görselini, sürücü videonun hareketiyle bir bağlam içi referans mekanizması aracılığıyla canlandırır: her segment önce, her katmanın referans K/V değerlerini önbelleğe alan bir referans geçişi (`kv_cache_mode="extract"`) çalıştırır, ardından gürültü giderme geçişleri (`kv_cache_mode="cached"`) bir esnek `BlockMask` üzerinden üretim jetonları ve önbelleğe alınmış referans jetonları üzerinde ortak olarak dikkat uygular.

Model, aşağıdaki kod parçasıyla yüklenebilir.

```python
from diffusers import WanAnimate2Transformer3DModel

transformer = WanAnimate2Transformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-2-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)
```

## WanAnimate2Transformer3DModel[[diffusers.WanAnimate2Transformer3DModel]]

#### diffusers.WanAnimate2Transformer3DModel[[diffusers.WanAnimate2Transformer3DModel]]

```python
diffusers.WanAnimate2Transformer3DModel(patch_size: tuple = (1, 2, 2), text_len: int = 512, in_dim: int = 36, dim: int = 5120, ffn_dim: int = 13824, freq_dim: int = 256, text_dim: int = 4096, out_dim: int = 16, num_heads: int = 40, num_layers: int = 40, cross_attn_norm: bool = True, eps: float = 1e-06, use_img_emb: bool = True, refer_offset_t: int = 1, refer_offset_h: int = 0, refer_offset_w: int = -1, refer_stride: int = 1)
```

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

**Parametreler:**

patch_size (*tuple[int]*, varsayılan *(1, 2, 2)*) : Video gömme için 3B yama boyutları (t_patch, h_patch, w_patch).

text_len (*int*, varsayılan *512*) : Metin gömme (embedding) için sabit uzunluk.

in_dim (*int*, varsayılan *36*) : Girdideki kanal sayısı (2 * latent_channels + 4 maske kanalı için).

dim (*int*, varsayılan *5120*) : Transformer'daki kanal sayısı.

ffn_dim (*int*, varsayılan *13824*) : İleri beslemeli ağdaki ara boyut.

freq_dim (*int*, varsayılan *256*) : Sinüzoidal zaman gömme boyutu.

text_dim (*int*, varsayılan *4096*) : Metin gömme girdi boyutu.

out_dim (*int*, varsayılan *16*) : Çıktıdaki kanal sayısı.

num_heads (*int*, varsayılan *40*) : Dikkat başlarının sayısı.

num_layers (*int*, varsayılan *40*) : Kullanılacak transformer bloğu katman sayısı.

cross_attn_norm (*bool*, varsayılan *True*) : Çapraz dikkat normalizasyonunu etkinleştirir.

eps (*float*, varsayılan *1e-6*) : Normalizasyon katmanları için epsilon değeri.

use_img_emb (*bool*, varsayılan *True*) : CLIP gömme görselini kullanıp kullanmayacağı.

refer_offset_t (*int*, varsayılan *1*) : Referansın zaman boyutu için RoPE ofseti.

refer_offset_h (*int*, varsayılan *0*) : Referansın yükseklik boyutu için RoPE ofseti.

refer_offset_w (*int*, varsayılan *-1*) : Referansın genişlik boyutu için RoPE ofseti. -1, üretim ızgarası boyutunun kullanılacağı anlamına gelir.

refer_stride (*int*, varsayılan *1*) : Referans üzerinde RoPE uygulaması için adım (stride).

Wan-Animate-2 modelinde kullanılan, video benzeri veriler için bir Transformer modeli.

Wan-Animate-2, KV önbelleği ile bağlam içi dikkat mekanizması kullanır: bir referans video önce kodlanır (`kv_cache_mode="extract"`) ve [*WanAnimate2KVCache*] doldurulur, ardından her gürültü azaltma adımı (`kv_cache_mode="cached"`), üretim jetonları ile önbelleğe alınmış referans K/V üzerinde, esnek bir `BlockMask` aracılığıyla ortak olarak dikkat uygular. Bu nedenle üretim öz-dikkati yalnızca `flex` dikkat arka ucunda çalışır; modeldeki diğer tüm dikkat mekanizmaları herhangi bir arka uçta çalışır.

#### forward[[diffusers.WanAnimate2Transformer3DModel.forward]]

```python
forward(hidden_states: list, timestep: Tensor, encoder_hidden_states: list, condition_latents: list, kv_cache: WanAnimate2KVCache, kv_cache_mode: str, seq_len: int, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, offset_grid_sizes: typing.Optional[torch.Tensor] = None, reference_grid_sizes: typing.Optional[torch.Tensor] = None, origin_len: int | None = None, origin_area: list[int] | None = None, is_uncondtion: bool = False, return_dict: bool = True)
```

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

**Parametreler:**

hidden_states (`list[torch.Tensor]`) : Bu geçiş için latentler — `kv_cache_mode="extract"` durumunda referans latentler, `kv_cache_mode="cached"` durumunda gürültülü üretim latentleri.

timestep (`torch.Tensor`) : Gürültü azaltma zaman adımı. `kv_cache_mode="extract"` altında yok sayılır; bu mod sabit bir zaman adımı olan 1'i kullanır.

encoder_hidden_states (`list[torch.Tensor]`) : Bu geçiş için metin gömme değerleri.

condition_latents (`list[torch.Tensor]`) : Patch embedding'den önce `hidden_states`'e birleştirilen koşullama latentleri.

kv_cache (`WanAnimate2KVCache`) : `kv_cache_mode="extract"` altında yazılır, `"cached"` altında okunur.

kv_cache_mode (`str`) : `"extract"` referans geçişini çalıştırır ve `kv_cache` alanını doldurur; `"cached"` önbelleğe alınmış referans token'larına karşı bir gürültü azaltma adımı çalıştırır.

seq_len (`int`) : Yama gömme (patch embedding) sonrasında her örneğin sahip olması gereken token sayısı.

encoder_hidden_states_image (`torch.Tensor`, *isteğe bağlı*) : Model `use_img_emb` ile yapılandırıldığında kullanılan CLIP gömme görselleri.

offset_grid_sizes (`torch.Tensor`, *isteğe bağlı*) : Referans latentlerin yama ızgarası, -1 olarak ayarlanmış herhangi bir `refer_offset_*` değerini çözmek için kullanılır. `kv_cache_mode="extract"` altında zorunludur; `"cached"` altında ise aynı ızgarayı `reference_grid_sizes` tanımlar ve bunun yerine kullanılır.

reference_grid_sizes (`torch.Tensor`, *isteğe bağlı*) : Referans rotary gömmelemeler için kullanılan referans latentlerin yama ızgarası. `kv_cache_mode="cached"` altında zorunludur.

origin_len (`int`, *isteğe bağlı*) : Bağlam içi blok maskesinin oluşturulduğu tam videonun kare sayısı. `kv_cache_mode="cached"` altında zorunludur.

origin_area (`list[int]`, *isteğe bağlı*) : Tam videonun `[height, width]` uzamsal boyutu, bağlam içi blok maskesi bunun üzerinde oluşturulur. `kv_cache_mode="cached"` altında zorunludur.

is_uncondtion (`bool`, *isteğe bağlı*) : Bu, classifier-free guidance'ın koşulsuz dalı mı?

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine `~models.transformer_2d.Transformer2DModelOutput` döndürülüp döndürülmemesi.

**Dönüş:** [Transformer2DModelOutput](/docs/diffusers/main/tr/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) veya `tuple(list[torch.Tensor])`

Her giriş latent için tahmin edilen örnek, yamalanmamış; `return_dict` `False` ise düz bir tuple.

## 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)
```

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

**Parametreler:**

sample (`torch.Tensor`, şekli `(batch_size, num_channels, height, width)` veya [Transformer2DModel](/docs/diffusers/main/tr/api/models/transformer2d#diffusers.Transformer2DModel) ayrık (discrete) ise `(batch size, num_vector_embeds - 1, num_latent_pixels)`) : `encoder_hidden_states` girdisine koşullu gizli durum (hidden states) çıktısı. Ayrık (discrete) ise, gürültüsü olmayan (unnoised) gizli (latent) pikseller için olasılık dağılımlarını döndürür.

[Transformer2DModel](/docs/diffusers/main/tr/api/models/transformer2d#diffusers.Transformer2DModel)'nin çıktısı.

