Buckets:

hf-doc-build/doc / diffusers /main /ko /api /models /anyflow_transformer3d.md
mishig's picture
|
download
raw
6.22 kB

AnyFlowTransformer3DModel

AnyFlowPipeline에서 사용하는 양방향 3D Transformer입니다. v0.35.1 Wan2.1 백본을 기반으로 하나의 구조적 변경 사항이 적용되어 있습니다. timestep embedder가 AnyFlowDualTimestepTextImageEmbedding으로 대체되어, 모든 forward 호출이 소스 timestep t와 대상 timestep r 모두에 조건부 정보를 부여합니다. 이는 AnyFlow에서 도입된 flow map $\Phi_{r\leftarrow t}$를 학습하는 데 필요한 임베딩입니다. 논문, 저자 및 공개된 체크포인트에 대한 정보는 AnyFlowPipeline 페이지를 참고하세요.

차unk 단위 자기회귀(FAR causal) 생성의 경우, AnyFlowFARTransformer3DModel을 대신 사용하세요.

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')

소스

매개변수:

patch_size (Tuple[int], 기본값 (1, 2, 2)) : 비디오 임베딩을 위한 3D 패치 차원 (t_patch, h_patch, w_patch).

num_attention_heads (int, 기본값 40) : 어텐션 헤드 수.

attention_head_dim (int, 기본값 128) : 각 헤드(head)의 채널 수.

in_channels (int, 기본값 16) : 입력 latent의 채널 수입니다.

out_channels (int, 기본값 16) : 출력 latent의 채널 수입니다.

text_dim (int, 기본값 4096) : 텍스트 임베딩(UMT5)의 입력 차원

freq_dim (int, 기본값 256) : 사인 시간 임베딩의 차원.

ffn_dim (int, 기본값 13824) : 피드포워드 네트워크의 중간 차원.

num_layers (int, 기본값 40) : Transformer 블록의 수.

cross_attn_norm (bool, 기본값 True) : cross-attention 정규화를 활성화합니다.

eps (float, 기본값 1e-6) : 정규화 레이어에 사용되는 Epsilon 값입니다.

image_dim (Optional[int], 선택 사항, 기본값 None) : I2V 조건화에 사용되는 이미지 임베딩 차원 (원본 Wan2.1-I2V 모델의 경우 1280).

rope_max_seq_len (int, 기본값 1024) : 회전 위치 주파수를 사전 계산하는 데 사용되는 최대 시퀀스 길이입니다.

gate_value (float, 기본값 0.25) : source-timestep 임베딩과 delta-timestep 임베딩 사이의 혼합 게이트 (AnyFlow 논문에서 gg 파라미터로, stage-1 증류에서 0.25로 고정됨).

deltatime_type (str, 기본값 'r') : "r"(delta가 대상 timestep임) 또는 "t-r"(delta가 절대 간격임).

AnyFlow 플로우 맵 샘플링을 위한 양방향 3D Transformer.

아키텍처는 v0.35.1 Wan2.1 3D DiT 백본이며, 하나의 구조적 변경 사항이 있습니다. 타임스텝 임베더가 AnyFlowDualTimestepTextImageEmbedding으로 대체되어, 모든 포워드 호출이 소스 타임스텝 t과 타겟 타임스텝 r 모두에 조건부화됩니다. 이는 AnyFlow에서 도입된 플로우 맵 \Phi_{r\leftarrow t}을 학습하는 데 필요한 임베딩입니다.

차unk 단위 자기회귀(FAR causal) 생성을 사용하려면 AnyFlowFARTransformer3DModel을 대신 사용하세요. 해당 변형은 동일한 백본 위에 FAR causal 블록 마스크와 압축 프레임 패치 임베딩을 추가합니다.

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)

소스

매개변수:

hidden_states (torch.Tensor, shape (batch_size, num_frames, num_channels, height, width)) : 입력 비디오 latents.

timestep (torch.Tensor) : 소스(노이즈가 더 많은) flow-map timestep t.

r_timestep (torch.Tensor) : 대상(더 깨끗한) flow-map timestep r; flow-map 단계의 목적지를 정의합니다.

encoder_hidden_states (torch.Tensor, shape (batch_size, sequence_len, embed_dims)) : 텍스트 조건 임베딩.

encoder_hidden_states_image (torch.Tensor, 선택) : 이미지 조건 임베딩입니다. 제공되면 텍스트 토큰 앞에 연결됩니다.

attention_kwargs (dict, optional) : diffusers.models.attention_processor의 self.processor에서 정의된 AttentionProcessor로 전달되는 Kwargs입니다.

return_dict (bool, optional, 기본값 True) : 일반 튜플 대신 [~models.transformer_2d.Transformer2DModelOutput]를 반환할지 여부.

반환값:

[~models.transformer_2d.Transformer2DModelOutput] return_dict가 True인 경우, 아니면 첫 번째 요소가 예측된 속도 텐서인 tuple

양방향 flow-map forward pass. hidden_states는 (B, F, C, H, W)로 배치됩니다(프레임별 latents). 입력은 표준 patch_embedding(kernel = stride = patch_size)로 patchify되며, 생성된 평탄화 토큰 시퀀스에 대해 전역 양방향 self-attention으로 denoise됩니다.

Xet Storage Details

Size:
6.22 kB
·
Xet hash:
f2da8a42231ea5cc339899ab0c172a0634e8058f8d5bc04d2f2eaaa1d6c2f48e

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