Diffusers documentation
WanTransformer3DModel
WanTransformer3DModel
Một mô hình Diffusion Transformer cho dữ liệu dạng video 3D đã được giới thiệu trong Wan 2.1 bởi Alibaba Wan Team.
Mô hình có thể được tải bằng đoạn mã sau.
from diffusers import WanTransformer3DModel
transformer = WanTransformer3DModel.from_pretrained("Wan-AI/Wan2.1-T2V-1.3B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)WanTransformer3DModel
lớp diffusers.WanTransformer3DModel
< source >( patch_size: 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 = Trueqk_norm: str | None = 'rms_norm_across_heads'eps: float = 1e-06image_dim: int | None = Noneadded_kv_proj_dim: int | None = Nonerope_max_seq_len: int = 1024pos_embed_seq_len: int | None = None )
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) — Độ dài cố định cho các vector nhúng văn bản. - 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 đầu vào. - out_channels (
int, mặc định là16) — Số lượng kênh trong đầu ra. - text_dim (
int, mặc định là512) — Kích thước đầu vào cho các vector nhúng văn bản. - 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 lớp của các khối transformer cần sử dụng. - window_size (
tuple[int], mặc định là(-1, -1)) — Kích thước cửa sổ cho chú ý cục bộ (-1 chỉ ra chú ý toàn cục). - cross_attn_norm (
bool, mặc định làTrue) — Bật chuẩn hóa cross-attention. - qk_norm (
bool, mặc định làTrue) — Bật chuẩn hóa query/key. - eps (
float, mặc định là1e-6) — Giá trị epsilon cho các lớp chuẩn hóa. - add_img_emb (
bool, mặc định làFalse) — Có sử dụng img_emb hay không. - added_kv_proj_dim (
int, tùy chọn, mặc định làNone) — Số lượng kênh được sử dụng cho các phép chiếu key và value được thêm vào. Nếu làNone, sẽ không sử dụng phép chiếu.
Một mô hình Transformer cho dữ liệu dạng video được sử dụng trong mô hình Wan.
forward
< source >( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorencoder_hidden_states_image: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = None )
Tham số
- hidden_states (
torch.Tensorcó hình dạng(batch_size, num_channels, num_frames, height, width)) —hidden_statesđầu vào. - timestep (
torch.LongTensor) — Dùng để chỉ bước khử nhiễu. - encoder_hidden_states (
torch.Tensorcó hình dạng(batch_size, sequence_len, embed_dims)) — Các embedding điều kiện (embedding được tính từ các điều kiện đầu vào như prompt) cần sử dụng. - encoder_hidden_states_image (
torch.Tensor, tùy chọn) — Nhúng ảnh điều kiện cho việc tạo ảnh có điều kiện. - return_dict (
bool, tùy chọn, mặc định làTrue) — Có nên trả về một~models.transformer_2d.Transformer2DModelOutputthay vì một tuple thông thường hay không. - attention_kwargs (
dict, tùy chọn) — Một từ điển kwargs, nếu được chỉ định, sẽ được truyền đếnAttentionProcessornhư đã định nghĩa dướiself.processortrong diffusers.models.attention_processor.
Phương thức forward của WanTransformer3DModel.
Transformer2DModelOutput
lớp diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Tham số
- sample (
torch.Tensorcó hình dạng(batch_size, num_channels, height, width)hoặc(batch size, num_vector_embeds - 1, num_latent_pixels)nếu Transformer2DModel là rời rạc) — Trạng thái ẩn đầu ra được điều kiện bởi đầu vàoencoder_hidden_states. Nếu là rời rạc, trả về các phân phối xác suất cho các pixel tiềm ẩn không nhiễu.
Đầu ra của Transformer2DModel.