Diffusers documentation

SanaWMTransformer3DModel

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

SanaWMTransformer3DModel

Kamera kontrollü görüntüden video üretimi için 3B Boyutlu Difüzyon Transformer'ı (1.6B parametre), SanaWMPipeline'ın 1. aşama örnekleyicisi olarak kullanılır. Transformer şunları birleştirir:

  • çift yönlü GDN-Triton doğrusal-dikkat ana dalı (derinlik 20, gizli 2240, 20 baş),
  • istenen yörünge için bir ışın haritası + Plücker temsilini tüketen bir UCPE (Unified Camera Pose Embedding) kamera kontrol dalı ve
  • her softmax_every_n katmanda enjekte edilen Wan tarzı 3D döner konum gömme ve periyodik softmax-dikkat blokları.

Model şu şekilde yüklenebilir:

import torch
from diffusers import SanaWMTransformer3DModel

transformer = SanaWMTransformer3DModel.from_pretrained(
    "Efficient-Large-Model/SANA-WM_bidirectional-diffusers",
    subfolder="transformer",
    torch_dtype=torch.bfloat16,
)

SanaWMTransformer3DModel

sınıf diffusers.SanaWMTransformer3DModel

< >

( in_channels: int = 128num_layers: int = 20hidden_size: int = 2240num_attention_heads: int = 20patch_size: tuple[int, int, int] = (1, 1, 1)softmax_every_n: int = 4linear_head_dim: int = 112ffn_type: str = 'GLUMBConvTemp't_kernel_size: int = 3conv_kernel_size: int = 4k_conv_only: bool = Truepos_embed_type: str = 'wan_rope'qk_norm: bool = Truecross_norm: bool = Truey_norm: bool = Truecam_attn_compress: int = 1init_cam_from_base: bool = Trueuse_chunk_plucker_post_attn: bool = Truechunk_plucker_channels: int = 48chunk_plucker_post_attn_blocks: int = 20fp32_attention: bool = Trueimage_size: int = 720caption_channels: int = 2304mlp_ratio: float = 3.0mlp_acts: tuple = ('silu', 'silu', None)use_pe: bool = Truelearn_sigma: bool = Falsepred_sigma: bool = Falsemixed_precision: str = 'bf16' )

Parametreler

  • in_channels (int, varsayılan 128) — VAE gizli kanalları (LTX-2).
  • softmax_every_n (int, varsayılan 4) — Her N bloktan birinde softmax dikkat bloğu kullanın.
  • linear_head_dim (int, varsayılan 112) — GDN baş boyutu.
  • ffn_type (str, varsayılan "GLUMBConvTemp") — FFN.
  • t_kernel_size (int, varsayılan 3) — Zamanlama konvolüsyon çekirdeği.
  • conv_kernel_size (int, varsayılan 4) — Dikkat içindeki uzamsal konvolüsyon çekirdeği.
  • k_conv_only (bool, varsayılan olarak True) — Conv yalnızca K üzerinde uygulanır.
  • pos_embed_type (str, varsayılan "wan_rope") — Konum gömme.
  • qk_norm (bool, varsayılan True) — Q/K üzerinde RMSNorm.
  • cross_norm (bool, varsayılan True) — Çapraz dikkat K'si üzerinde RMSNorm.
  • y_norm (bool, varsayılan True) — Metin gömcelerine attention_y_norm uygulayın.
  • init_cam_from_base (bool, varsayılan True) — Kullanılmıyor; kamera dalı checkpoint'ten yüklenir. Yayınlanan config.json dosyalarının yüklenmesi için korunur.
  • use_chunk_plucker_post_attn (bool, varsayılan olarak True). —
  • chunk_plucker_channels (int, varsayılan 48) — 6 dims * temporal_stride 8.
  • chunk_plucker_post_attn_blocks (int, varsayılan 20) — Tüm bloklar.
  • fp32_attention (bool, varsayılan olarak True) — Kullanılmıyor; attention her zaman fp32'de çalışır. Yayımlanan config.json dosyalarının yüklenmesi için korunur.
  • image_size (int, varsayılan 720) — Nominal görüntü boyutu.
  • caption_channels (int, varsayılan 2304) — Gemma-2 gizli boyutu.

SANA-WM 1600M çift yönlü kamera kontrollü DiT.

Tek sınıf DiT (depth=20, hidden_size=2240, patch_size=(1,1,1), num_heads=20 — yani halka açık Efficient-Large-Model/SANA-WM_bidirectional sürümü). save_pretrained / from_pretrained, ConfigMixin sayesinde kutudan çıktığı gibi çalışır.

Her blok, her softmax_every_n-inci blok hariç olmak üzere, kamera koşullu (UCPE) dikkat mekanizmasını [BidirectionalGDNUCPESinglePathLiteLA] çalıştırır; bu istisna bloklar ise softmax karşılığını [_SoftmaxUCPESinglePathLiteLA] çalıştırır.

State-dict, bilinçli olarak kaldırılan pos_embed tamponu dışında, herkese açık sana checkpoint'i ile birebir aynıdır.

forward

< >

( hidden_states: torch.Tensortimestep: torch.Tensorencoder_hidden_states: torch.Tensorencoder_attention_mask: torch.Tensor | None = Nonemask: torch.Tensor | None = Nonereturn_dict: bool = Truedata_info: Optional[dict] = Nonecamera_conditions: torch.Tensor | None = Nonechunk_plucker: torch.Tensor | None = Nonecam_pos_embeds: Optional[dict] = Nonepos_embeds: torch.Tensor | None = Noneraymats: torch.Tensor | None = Noneframe_valid_mask: torch.Tensor | None = Nonechunk_size: int | None = None )

Parametreler

  • hidden_states — (B, C, T, H, W) latentleri.
  • timestep — (B, 1, T) kare başına difüzyon adımları (LTX stili).
  • encoder_hidden_states — (B, 1, L, D_caption) metin gömme değerleri.
  • encoder_attention_mask — (B, L) metin dikkat maskesi (diffusers sözleşmesi).
  • mask — encoder_attention_mask için, sana DiT’nin kwarg adıyla eşleşen bir takma adı. Her ikisi de geçirilirse mask önceliklidir.
  • return_dict — True ise (varsayılan), Transformer2DModelOutput döndürür; aksi halde tekli bir demet (sample,) döndürür.
  • data_info — Ek koşullandırma; data_info["image_vae_embeds"] mevcut olduğunda, latentlere kanal ekseni boyunca birleştirilir.
  • camera_conditions — kamera kontrolü (UCPE) dalını sürdüren (B, T, 20) ham kamera koşulları.
  • chunk_plucker — Plucker ışın gömüleri (B, C, T, H, W), model use_chunk_plucker_input / use_chunk_plucker_post_attn ile yapılandırıldığında kullanılır.
  • cam_pos_embeds — Yeniden hesaplamak yerine yeniden kullanılan, isteğe bağlı önceden hesaplanmış kamera konumsal gömme değerleri ("absmap" / "P" girdileri).
  • pos_embeds — İsteğe bağlı, önceden hesaplanmış döner konum gömme değerleri; None olduğunda latent şekilden oluşturulurlar.
  • raymats — İsteğe bağlı, önceden hesaplanmış UCPE ışın matrisleri (yalnızca cam_pos_embeds "P" taşımıyorsa kullanılır).
  • frame_valid_mask — İsteğe bağlı kare başına geçerlilik maskesi, şekli (B, 1, T, 1, 1), (B, 1, T) veya (B, T).
  • chunk_size — Bloklara iletilen parça uzunluğu geçersiz kılma; her bir bloğun yapılandırılmış chunk_size değerine geri düşer.

SANA-WM DiT'yi çalıştırın.

unpatchify

< >

( xpost_patch_num_framespost_patch_heightpost_patch_width )

x: (N, T, patch_size*2 C) imgs: (N, H, W, C)

Transformer2DModelOutput

sınıf diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parametreler

  • sample (torch.Tensor, şekli (batch_size, num_channels, height, width) veya Transformer2DModel ayrık (discrete) ise (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states girdisine koşullu gizli durum (hidden states) çıktısı. Ayrık (discrete) ise, gürültüsü kaldırılmış (unnoised) gizli (latent) pikseller için olasılık dağıtımlarını döndürür.

Transformer2DModel'nin çıktısı.

Update on GitHub