Diffusers documentation
EasyAnimateTransformer3DModel
EasyAnimateTransformer3DModel
Un modelo Diffusion Transformer para datos 3D de EasyAnimate fue introducido por Alibaba PAI.
El modelo se puede cargar con el siguiente fragmento de código.
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
clase 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 )
Parámetros
- num_attention_heads (
int, por defecto48) — El número de cabezas a utilizar para la atención multi-cabeza. - attention_head_dim (
int, por defecto64) — El número de canales en cada cabeza. - in_channels (
int, por defecto16) — El número de canales en la entrada. - out_channels (
int, opcional, valor predeterminado16) — El número de canales en la salida. - patch_size (
int, por defecto2) — El tamaño de los parches a utilizar en la capa de incrustación de parches. - sample_width (
int, por defecto90) — El ancho de los latentes de entrada. - sample_height (
int, por defecto60) — La altura de los latentes de entrada. - activation_fn (
str, por defecto"gelu-approximate") — Función de activación a utilizar en la red feed-forward. - timestep_activation_fn (
str, por defecto"silu") — Función de activación a utilizar al generar las incrustaciones de paso temporal. - num_layers (
int, por defecto30) — El número de capas de bloques Transformer a utilizar. - mmdit_layers (
int, por defecto1000) — El número de capas de bloques Multi Modal Transformer a utilizar. - dropout (
float, por defecto0.0) — La probabilidad de dropout a utilizar. - time_embed_dim (
int, por defecto512) — Dimensión de salida de las incrustaciones de paso de tiempo. - text_embed_dim (
int, por defecto4096) — Dimensión de entrada de las incrustaciones de texto del codificador de texto. - norm_eps (
float, por defecto1e-5) — El valor de epsilon a utilizar en las capas de normalización. - norm_elementwise_affine (
bool, por defectoTrue) — Si se debe usar afinidad por elemento en las capas de normalización. - flip_sin_to_cos (
bool, por defectoTrue) — Si se debe cambiar el sin por el cos en la incrustación temporal. - time_position_encoding_type (
str, por defecto3d_rope) — Tipo de codificación de posición temporal. - after_norm (
bool, por defectoFalse) — Bandera para aplicar la normalización después. - resize_inpaint_mask_directly (
bool, por defectoTrue) — Bandera para redimensionar directamente la máscara de inpaint. - enable_text_attention_mask (
bool, por defectoTrue) — Bandera para habilitar la máscara de atención de texto. - add_noise_in_inpaint_model (
bool, por defectoFalse) — Bandera para añadir ruido en el modelo de inpaint.
Un modelo Transformer para datos tipo video en 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 )
Parámetros
- hidden_states (
torch.Tensorde forma(batch_size, channels, num_frames, height, width)) — Entradahidden_states. - timestep (
torch.LongTensor) — Se utiliza para indicar el paso de desruido. - timestep_cond (
torch.Tensor, opcional) — Incrustaciones condicionales para el paso de tiempo. Si se proporcionan, las incrustaciones se sumarán con las muestras pasadas a través de la capaself.time_embeddingpara obtener las incrustaciones finales del paso de tiempo. - encoder_hidden_states (
torch.Tensor, opcional) — Embeddings condicionales (embeddings calculados a partir de las condiciones de entrada, como los prompts) a utilizar. - encoder_hidden_states_t5 (
torch.Tensor, opcional) — Incrustaciones condicionales adicionales calculadas a partir de un codificador de texto T5. - inpaint_latents (
torch.Tensor, opcional) — Latentes concatenados ahidden_statespara las variantes de inpainting del modelo. - control_latents (
torch.Tensor, opcional) — Latentes concatenados ahidden_statespara las variantes de control del modelo. - return_dict (
bool, opcional, valor predeterminadoTrue) — Indica si se debe devolver un~models.transformer_2d.Transformer2DModelOutputen lugar de una tupla simple.
El método forward de EasyAnimateTransformer3DModel.
Transformer2DModelOutput
clase diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parámetros
- sample (
torch.Tensorde forma(batch_size, num_channels, height, width)o(batch size, num_vector_embeds - 1, num_latent_pixels)si Transformer2DModel es discreto) — La salida de estados ocultos condicionada a la entradaencoder_hidden_states. Si es discreto, devuelve distribuciones de probabilidad para los píxeles latentes sin ruido.
La salida de Transformer2DModel.