Diffusers documentation
HunyuanVideoTransformer3DModel
HunyuanVideoTransformer3DModel
Một mô hình Diffusion Transformer cho dữ liệu dạng video 3D đã được giới thiệu trong HunyuanVideo: A Systematic Framework For Large Video Generative Models của Tencent.
Mô hình có thể được tải bằng đoạn mã sau.
from diffusers import HunyuanVideoTransformer3DModel
transformer = HunyuanVideoTransformer3DModel.from_pretrained("hunyuanvideo-community/HunyuanVideo", subfolder="transformer", dtype=torch.bfloat16)HunyuanVideoTransformer3DModel
lớp diffusers.HunyuanVideoTransformer3DModel
< source >( in_channels: int = 16out_channels: int = 16num_attention_heads: int = 24attention_head_dim: int = 128num_layers: int = 20num_single_layers: int = 40num_refiner_layers: int = 2mlp_ratio: float = 4.0patch_size: int = 2patch_size_t: int = 1qk_norm: str = 'rms_norm'guidance_embeds: bool = Truetext_embed_dim: int = 4096pooled_projection_dim: int = 768rope_theta: float = 256.0rope_axes_dim: tuple[int, ...] = (16, 56, 56)image_condition_type: str | None = None )
Tham số
- 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. - num_attention_heads (
int, mặc định là24) — Số lượng đầu (heads) được sử dụng cho cơ chế chú ý đa đầu (multi-head attention). - attention_head_dim (
int, mặc định là128) — Số lượng kênh trong mỗi head. - num_layers (
int, mặc định là20) — Số lượng lớp của các khối dual-stream được sử dụng. - num_single_layers (
int, mặc định là40) — Số lượng lớp của các khối single-stream cần sử dụng. - num_refiner_layers (
int, mặc định là2) — Số lượng lớp của các khối refiner cần sử dụng. - mlp_ratio (
float, mặc định là4.0) — Tỷ lệ giữa kích thước lớp ẩn và kích thước đầu vào trong mạng feedforward. - patch_size (
int, mặc định là2) — Kích thước của các patch không gian được sử dụng trong lớp nhúng patch. - patch_size_t (
int, mặc định là1) — Kích thước của các patch thời gian (temporal patches) được sử dụng trong lớp nhúng patch (patch embedding layer). - qk_norm (
str, mặc định làrms_norm) — Phương pháp chuẩn hóa được sử dụng cho các phép chiếu query và key trong các lớp attention. - guidance_embeds (
bool, mặc định làTrue) — Có sử dụng guidance embeddings trong mô hình hay không. - text_embed_dim (
int, mặc định là4096) — Kích thước đầu vào của các vector nhúng văn bản từ bộ mã hóa văn bản. - pooled_projection_dim (
int, mặc định là768) — Kích thước của phép chiếu gộp (pooled projection) của các nhúng văn bản. - rope_theta (
float, mặc định là256.0) — Giá trị của theta được sử dụng trong lớp RoPE. - rope_axes_dim (
tuple[int], mặc định là(16, 56, 56)) — Các chiều của các trục được sử dụng trong lớp RoPE. - image_condition_type (
str, tùy chọn, mặc định làNone) — Loại điều kiện hình ảnh cần sử dụng. Nếu làNone, sẽ không sử dụng điều kiện hình ảnh. Nếu làlatent_concat, hình ảnh sẽ được nối vào luồng latent. Nếu làtoken_replace, hình ảnh sẽ được dùng để thay thế các token của khung hình đầu tiên trong luồng latent và áp dụng điều kiện.
Một mô hình Transformer cho dữ liệu dạng video được sử dụng trong HunyuanVideo.
forward
< source >( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorencoder_attention_mask: Tensorpooled_projections: Tensorguidance: Tensor = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )
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_attention_mask (
torch.Tensor) — Mặt nạ được áp dụng choencoder_hidden_statestrong quá trình chú ý. - pooled_projections (
torch.Tensorcó hình dạng(batch_size, projection_dim)) — Các embedding được chiếu từ các embedding của điều kiện đầu vào. - guidance (
torch.Tensor, tùy chọn) — Nhúng thang độ dẫn hướng được sử dụng cho các biến thể mô hình đã được chưng cất dẫn hướ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. - 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.
Phương thức forward của HunyuanVideoTransformer3DModel.
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.