Buckets:

hf-doc-build/doc / diffusers /main /vi /api /models /anyflow_transformer3d.md
mishig's picture
|
download
raw
6.85 kB
# AnyFlowTransformer3DModel
Transformer 3D hai chiều được sử dụng bởi [`AnyFlowPipeline`](../pipelines/anyflow#diffusers.AnyFlowPipeline). Đây là backbone Wan2.1 phiên bản v0.35.1 với một thay đổi cấu trúc: bộ nhúng bước thời gian được thay thế bằng ``AnyFlowDualTimestepTextImageEmbedding``, do đó mỗi lần gọi forward đều điều kiện hóa trên cả bước thời gian nguồn ``t`` và bước thời gian đích ``r``. Đây là phép nhúng cần thiết để học bản đồ dòng chảy $\Phi_{r\leftarrow t}$ được giới thiệu trong [AnyFlow](https://huggingface.co/papers/2605.13724). Xem trang [`AnyFlowPipeline`](../pipelines/anyflow) để biết thêm về bài báo, tác giả và các checkpoint đã phát hành.
Để tạo nội dung tự hồi quy theo từng khối (FAR causal), hãy sử dụng [`AnyFlowFARTransformer3DModel`](anyflow_far_transformer3d) thay thế.
```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')
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_anyflow.py#L507)
**Tham số:**
patch_size (*Tuple[int]*, mặc định là *(1, 2, 2)*) : Kích thước patch 3D cho nhúng video (t_patch, h_patch, w_patch).
num_attention_heads (*int*, mặc định là *40*) : Số lượng đầu chú ý.
attention_head_dim (*int*, mặc định là *128*) : Số lượng kênh trong mỗi head.
in_channels (*int*, mặc định là *16*) : Số kênh trong latent đầu vào.
out_channels (*int*, mặc định là *16*) : Số lượng kênh trong latent đầu ra.
text_dim (*int*, mặc định là *4096*) : Kích thước chiều đầu vào cho nhúng văn bản (UMT5).
freq_dim (*int*, mặc định là *256*) : Kích thước cho các nhúng thời gian hình sin.
ffn_dim (*int*, mặc định là *13824*) : Kích thước chiều trung gian trong mạng feed-forward.
num_layers (*int*, mặc định là *40*) : Số lượng khối transformer.
cross_attn_norm (*bool*, mặc định là *True*) : Bật chuẩn hóa cross-attention.
eps (*float*, mặc định là *1e-6*) : Epsilon cho các lớp chuẩn hóa.
image_dim (*Optional[int]*, *optional*, mặc định là *None*) : Kích thước embedding ảnh cho điều kiện I2V (*1280* cho mô hình Wan2.1-I2V gốc).
rope_max_seq_len (*int*, mặc định là *1024*) : Độ dài chuỗi tối đa được sử dụng để tiền xử lý tần số vị trí quay (rotary position frequencies).
gate_value (*float*, mặc định là *0.25*) : Cổng trộn giữa các embedding của bước nguồn và bước delta (tham số \\(g\\) trong bài báo AnyFlow, được cố định ở 0.25 trong giai đoạn 1 của quá trình chưng cất).
deltatime_type (*str*, mặc định là *'r'*) : Hoặc là `"r"` (delta là bước thời gian đích) hoặc `"t-r"` (delta là khoảng tuyệt đối).
Transformer 3D hai chiều cho lấy mẫu flow-map của AnyFlow.
Kiến trúc là khung xương v0.35.1 Wan2.1 3D DiT với một thay đổi cấu trúc: bộ nhúng bước thời gian được thay thế bằng `AnyFlowDualTimestepTextImageEmbedding` để mỗi lần gọi forward đều điều kiện hóa trên cả bước thời gian nguồn `t` và bước thời gian đích `r`. Đây là phép nhúng cần thiết để học bản đồ dòng \\(\Phi_{r\leftarrow t}\\) được giới thiệu trong [AnyFlow](https://huggingface.co/papers/2605.13724).
Để tạo nội dung theo kiểu tự hồi quy từng khối (FAR causal), hãy dùng `AnyFlowFARTransformer3DModel` thay thế; biến thể này bổ sung khối mask nhân quả FAR và nhúng patch khung nén trên cùng một backbone.
#### 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)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_anyflow.py#L626)
**Tham số:**
hidden_states (*torch.Tensor* có hình dạng *(batch_size, num_frames, num_channels, height, width)*) : Latent của video đầu vào.
timestep (*torch.Tensor*) : Bước thời gian *t* của bản đồ luồng nguồn (nhiễu hơn).
r_timestep (*torch.Tensor*) : Bước thời gian (timestep) *r* của flow-map đích (cleaner); xác định điểm đến của bước flow-map.
encoder_hidden_states (*torch.Tensor* có hình dạng *(batch_size, sequence_len, embed_dims)*) : Các embedding điều kiện văn bản.
encoder_hidden_states_image (*torch.Tensor*, *optional*) : Các embedding điều kiện theo ảnh; được nối trước các token văn bản khi được cung cấp.
attention_kwargs (*dict*, *optional*) : Các tham số kwargs được chuyển tiếp đến *AttentionProcessor* như đã định nghĩa dưới *self.processor* trong [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
return_dict (*bool*, *optional*, mặc định là *True*) : Có nên trả về một [*~models.transformer_2d.Transformer2DModelOutput*] thay vì một tuple thông thường hay không.
**Trả về:**
[*~models.transformer_2d.Transformer2DModelOutput*] nếu *return_dict* là True, ngược lại là một *tuple* mà phần tử đầu tiên là tensor vận tốc dự đoán.
Lượt truyền tiến của flow-map hai chiều. `hidden_states` được bố trí theo `(B, F, C, H, W)` (latent theo từng khung hình). Đầu vào được chia thành các patch bằng `patch_embedding` chuẩn (kernel = stride = `patch_size`) và được khử nhiễu bằng self-attention toàn cục hai chiều trên chuỗi token phẳng thu được.

Xet Storage Details

Size:
6.85 kB
·
Xet hash:
a662fd372c89d434f7991abaafb20eec20cbecd116004b4d5af5e40c60c01c55

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