# AnyFlowTransformer3DModel

[`AnyFlowPipeline`](../pipelines/anyflow#diffusers.AnyFlowPipeline) tarafından kullanılan çift yönlü 3B Transformer. Yapısal olarak tek bir değişikliğe sahip olan v0.35.1 Wan2.1 omurgasıdır: timestep gömme (embedder) ``AnyFlowDualTimestepTextImageEmbedding`` ile değiştirilmiştir, böylece her ileri (forward) çağrısı hem kaynak timestep ``t`` hem de hedef timestep ``r`` üzerinde koşullanır. Bu, [AnyFlow](https://huggingface.co/papers/2605.13724) makalesinde tanıtılan $\Phi_{r\leftarrow t}$ akış haritasını öğrenmek için gereken gömmedir. Makale, yazarlar ve yayınlanan checkpoint'ler için [`AnyFlowPipeline`](../pipelines/anyflow) sayfasına bakın.

Parça bazlı otoregresif (FAR nedensel) üretim için bunun yerine [`AnyFlowFARTransformer3DModel`](anyflow_far_transformer3d) kullanın.

```python
from diffusers import AnyFlowTransformer3DModel

# Bidirectional AnyFlow checkpoint (T2V):
transformer = AnyFlowTransformer3DModel.from_pretrained(
    "nvidia/AnyFlow-Wan2.1-T2V-1.3B-Diffusers", subfolder="transformer"
)
```

## AnyFlowTransformer3DModel[[diffusers.AnyFlowTransformer3DModel]]

#### diffusers.AnyFlowTransformer3DModel[[diffusers.AnyFlowTransformer3DModel]]

```python
diffusers.AnyFlowTransformer3DModel(patch_size: typing.Tuple[int] = (1, 2, 2), num_attention_heads: int = 40, attention_head_dim: int = 128, in_channels: int = 16, out_channels: int = 16, text_dim: int = 4096, freq_dim: int = 256, ffn_dim: int = 13824, num_layers: int = 40, cross_attn_norm: bool = True, eps: float = 1e-06, image_dim: typing.Optional[int] = None, rope_max_seq_len: int = 1024, gate_value: float = 0.25, deltatime_type: str = 'r')
```

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

**Parametreler:**

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

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

attention_head_dim (*int*, varsayılan *128*) : Her baştaki kanal sayısı.

in_channels (*int*, varsayılan *16*) : Girdi latentindeki kanal sayısı.

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

text_dim (*int*, varsayılan *4096*) : Metin gömme (UMT5) için giriş boyutu.

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

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

num_layers (*int*, varsayılan *40*) : Transformer bloklarının 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.

image_dim (*Optional[int]*, *opsiyonel*, varsayılan *None*) : I2V koşullandırma için gömme boyutu (*1280* orijinal Wan2.1-I2V modeli için).

rope_max_seq_len (*int*, varsayılan *1024*) : Döner konum frekanslarını önceden hesaplamak için kullanılan maksimum dizi uzunluğu.

gate_value (*float*, varsayılan *0.25*) : Kaynak-adım ve delta-adım gömme değerleri arasındaki karıştırma kapısı (AnyFlow makalesinin \\(g\\) parametresi, 1. aşama damıtma sırasında 0.25 olarak sabitlenmiştir).

deltatime_type (*str*, varsayılan *'r'*) : `"r"` (delta hedef zaman adımıdır) veya `"t-r"` (delta mutlak aralıktır).

AnyFlow akış haritası örneklemesi için çift yönlü 3D Transformer.

Mimari, v0.35.1 Wan2.1 3D DiT omurgasıdır ve tek yapısal değişiklik şudur: timestep gömmeleyicisi (timestep embedder), her ileri çağrının hem kaynak timestep `t` hem de hedef timestep `r` üzerinde koşullanmasını sağlamak üzere `AnyFlowDualTimestepTextImageEmbedding` ile değiştirilmiştir. Bu, [AnyFlow](https://huggingface.co/papers/2605.13724)'da tanıtılan \\(\Phi_&amp;lcub;r\leftarrow t}\\) akış haritasını öğrenmek için gereken gömmedir.

Parça bazlı otoregresif (FAR nedensel) üretim için bunun yerine `AnyFlowFARTransformer3DModel` kullanın; bu varyant, aynı omurga üzerine FAR nedensel blok maskesi ve sıkıştırılmış çerçeve yama gömme ekler.

#### forward[[diffusers.AnyFlowTransformer3DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: Tensor, r_timestep: Tensor, encoder_hidden_states: Tensor, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, return_dict: bool = True)
```

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

**Parametreler:**

hidden_states (*torch.Tensor*, şekli *(batch_size, num_frames, num_channels, height, width)*) : Girdi video latantları.

timestep (*torch.Tensor*) : Kaynak (daha gürültülü) akış haritası zaman adımı *t*.

r_timestep (*torch.Tensor*) : Hedef (daha temiz) akış haritası zaman adımı *r*; akış haritası adımının varış noktasını tanımlar.

encoder_hidden_states (*torch.Tensor*, şekli *(batch_size, sequence_len, embed_dims)*) : Metin koşullu gömme değerleri.

encoder_hidden_states_image (*torch.Tensor*, *opsiyonel*) : Görüntü koşullandırma gömme değerleri; sağlandığında metin jetonlarından önce birleştirilir.

attention_kwargs (*dict*, *opsiyonel*) : [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içinde *self.processor* altında tanımlanan *AttentionProcessor*'ye iletilen Kwargs.

return_dict (*bool*, *opsiyonel*, varsayılan *True*) : Düz bir tuple yerine [*~models.transformer_2d.Transformer2DModelOutput*] döndürülüp döndürülmemesi.

**Dönüş:**

[*~models.transformer_2d.Transformer2DModelOutput*] *return_dict* True ise, aksi halde ilk öğesi tahmini hız tensörü olan bir *tuple*.

Çift yönlü akış haritası ileri geçişi. `hidden_states`, `(B, F, C, H, W)` (kare başına latentler) olarak yerleştirilir. Girdi, standart `patch_embedding` (çekirdek = adım = `patch_size`) ile parçalanır ve elde edilen düz token dizisi üzerinde küresel çift yönlü öz-dikkat ile gürültüden arındırılır.

