Diffusers documentation

AnyFlowTransformer3DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AnyFlowTransformer3DModel

Transformer 3D hai chiều được sử dụng bởi AnyFlowPipeline. Đây là backbone Wan2.1 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, để 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 Φr←t\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

lớp diffusers.AnyFlowTransformer3DModel

< >

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

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ố lượng 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 đầu vào cho các vector 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) — Chiều dài tối đa của chuỗi được sử dụng để tính trước các tần số vị trí quay (rotary position frequencies).
  • gate_value (float, defaults to 0.25) — Mixing gate between source-timestep and delta-timestep embeddings (the AnyFlow paper’s{@html "ggg"} parameter, fixed at 0.25 in stage-1 distillation).
  • 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 thời gian tuyệt đối).

Transformer 3D hai chiều cho lấy mẫu flow-map của AnyFlow.

Kiến trúc là backbone Wan2.1 3D DiT phiên bản v0.35.1 với một thay đổi cấu trúc: bộ nhúng timestep được thay thế bằng AnyFlowDualTimestepTextImageEmbedding để mỗi lần gọi forward đều điều kiện hóa trên cả timestep nguồn t và timestep đích r. Đây là phép nhúng cần thiết để học bản đồ dòng chảyΦr←t\Phi_{r\leftarrow t} được giới thiệu trong AnyFlow.

Để tạo tự hồi quy theo 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

< >

( hidden_states: Tensortimestep: Tensorr_timestep: Tensorencoder_hidden_states: Tensorencoder_hidden_states_image: typing.Optional[torch.Tensor] = Noneattention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonereturn_dict: bool = True )

Tham số

  • hidden_states (torch.Tensor có hình dạng (batch_size, num_frames, num_channels, height, width)) — Các 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 r của flow-map đích (sạch hơn); 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 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ề [~models.transformer_2d.Transformer2DModelOutput] thay vì một tuple thông thường hay không.

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 hai chiều toàn cục trên chuỗi token phẳng thu được.

Update on GitHub