Diffusers documentation
EasyAnimateTransformer3DModel
EasyAnimateTransformer3DModel
Một mô hình Diffusion Transformer cho dữ liệu 3D từ EasyAnimate đã được giới thiệu bởi Alibaba PAI.
Mô hình có thể được tải bằng đoạn mã sau.
from diffusers import EasyAnimateTransformer3DModel
transformer = EasyAnimateTransformer3DModel.from_pretrained("alibaba-pai/EasyAnimateV5.1-12b-zh", subfolder="transformer", dtype=torch.float16).to("cuda") # or "mps", "xpu", "cpu"EasyAnimateTransformer3DModel
lớp diffusers.EasyAnimateTransformer3DModel
< source >( num_attention_heads: int = 48attention_head_dim: int = 64in_channels: int | None = Noneout_channels: int | None = Nonepatch_size: int | None = Nonesample_width: int = 90sample_height: int = 60activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'freq_shift: int = 0num_layers: int = 48mmdit_layers: int = 48dropout: float = 0.0time_embed_dim: int = 512add_norm_text_encoder: bool = Falsetext_embed_dim: int = 3584text_embed_dim_t5: int = Nonenorm_eps: float = 1e-05norm_elementwise_affine: bool = Trueflip_sin_to_cos: bool = Truetime_position_encoding_type: str = '3d_rope'after_norm = Falseresize_inpaint_mask_directly: bool = Trueenable_text_attention_mask: bool = Trueadd_noise_in_inpaint_model: bool = True )
Tham số
- num_attention_heads (
int, mặc định là48) — 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à64) — 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, tùy chọn, mặc định là16) — Số lượng kênh trong đầu ra. - patch_size (
int, mặc định là2) — Kích thước của các patch được sử dụng trong lớp nhúng patch. - sample_width (
int, mặc định là90) — Chiều rộng của các latents đầu vào. - sample_height (
int, mặc định là60) — Chiều cao của các latents đầu vào. - activation_fn (
str, mặc định là"gelu-approximate") — Hàm kích hoạt được sử dụng trong mạng truyền thẳng. - timestep_activation_fn (
str, mặc định là"silu") — Hàm kích hoạt được sử dụng khi tạo các nhúng bước thời gian (timestep embeddings). - num_layers (
int, mặc định là30) — Số lượng lớp khối Transformer cần sử dụng. - mmdit_layers (
int, mặc định là1000) — Số lượng lớp của các khối Multi Modal Transformer cần sử dụng. - dropout (
float, mặc định là0.0) — Xác suất dropout cần sử dụng. - time_embed_dim (
int, mặc định là512) — Kích thước đầu ra của các embedding bước thời gian. - 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. - norm_eps (
float, mặc định là1e-5) — Giá trị epsilon được sử dụng trong các lớp chuẩn hóa. - norm_elementwise_affine (
bool, mặc định làTrue) — Có sử dụng affine theo từng phần tử trong các lớp chuẩn hóa hay không. - flip_sin_to_cos (
bool, mặc định làTrue) — Có nên đảo sin thành cos trong time embedding hay không. - time_position_encoding_type (
str, mặc định là3d_rope) — Loại mã hóa vị trí thời gian. - after_norm (
bool, mặc định làFalse) — Cờ để áp dụng chuẩn hóa sau đó. - resize_inpaint_mask_directly (
bool, mặc định làTrue) — Cờ để resize trực tiếp inpaint mask. - enable_text_attention_mask (
bool, mặc định làTrue) — Cờ để bật text attention mask. - add_noise_in_inpaint_model (
bool, mặc định làFalse) — Cờ để thêm nhiễu vào mô hình inpaint.
Một mô hình Transformer cho dữ liệu dạng video trong EasyAnimate.
forward
< source >( hidden_states: Tensortimestep: Tensortimestep_cond: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_hidden_states_t5: typing.Optional[torch.Tensor] = Noneinpaint_latents: typing.Optional[torch.Tensor] = Nonecontrol_latents: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )
Tham số
- hidden_states (
torch.Tensorcó hình dạng(batch_size, channels, num_frames, height, width)) —hidden_statesđầu vào. - timestep (
torch.LongTensor) — Dùng để chỉ bước khử nhiễu. - timestep_cond (
torch.Tensor, optional) — Các embedding điều kiện cho timestep. Nếu được cung cấp, các embedding này sẽ được cộng với các mẫu đã đi qua lớpself.time_embeddingđể thu được các embedding timestep cuối cùng. - encoder_hidden_states (
torch.Tensor, tùy chọn) — 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_t5 (
torch.Tensor, tùy chọn) — Các embedding điều kiện bổ sung được tính toán từ bộ mã hóa văn bản T5. - inpaint_latents (
torch.Tensor, tùy chọn) — Các latents được nối vớihidden_statescho các biến thể inpainting của mô hình. - control_latents (
torch.Tensor, tùy chọn) — Các latents được nối vớihidden_statescho các biến thể điều khiển của mô hình. - 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 EasyAnimateTransformer3DModel.
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.