Buckets:

hf-doc-build/doc / diffusers /main /tr /api /models /anyflow_transformer3d.md
mishig's picture
|
download
raw
6.23 kB
# 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_{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.

Xet Storage Details

Size:
6.23 kB
·
Xet hash:
5a29bfc8a0c7956207f7f16c10eac348f066aeac795a3ce42698069f4ff40575

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.