Buckets:
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 논문에서 파라미터로, 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.