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. Đâ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. Xem trang AnyFlowPipeline để 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 thay thế.

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]]

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

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ố gg 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.

Để 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]]

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

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.

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.