Diffusers documentation
LTX2VideoTransformer3DModel
LTX2VideoTransformer3DModel
Un modèle Diffusion Transformer pour des données 3D de LTX a été introduit par Lightricks.
Le modèle peut être chargé à l'aide du fragment de code suivant.
from diffusers import LTX2VideoTransformer3DModel
transformer = LTX2VideoTransformer3DModel.from_pretrained("Lightricks/LTX-2", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu"LTX2VideoTransformer3DModel
classe diffusers.LTX2VideoTransformer3DModel
< source >( in_channels: int = 128out_channels: int | None = 128patch_size: int = 1patch_size_t: int = 1num_attention_heads: int = 32attention_head_dim: int = 128cross_attention_dim: int = 4096vae_scale_factors: tuple = (8, 32, 32)pos_embed_max_pos: int = 20base_height: int = 2048base_width: int = 2048gated_attn: bool = Falsecross_attn_mod: bool = Falseaudio_in_channels: int = 128audio_out_channels: int | None = 128audio_patch_size: int = 1audio_patch_size_t: int = 1audio_num_attention_heads: int = 32audio_attention_head_dim: int = 64audio_cross_attention_dim: int = 2048audio_scale_factor: int = 4audio_pos_embed_max_pos: int = 20audio_sampling_rate: int = 16000audio_hop_length: int = 160audio_gated_attn: bool = Falseaudio_cross_attn_mod: bool = Falsenum_layers: int = 48activation_fn: str = 'gelu-approximate'qk_norm: str = 'rms_norm_across_heads'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06caption_channels: int = 3840attention_bias: bool = Trueattention_out_bias: bool = Truerope_theta: float = 10000.0rope_double_precision: bool = Truecausal_offset: int = 1timestep_scale_multiplier: int = 1000cross_attn_timestep_scale_multiplier: int = 1000rope_type: str = 'interleaved'use_prompt_embeddings = Trueperturbed_attn: bool = Falseff_bias: bool = Trueaudio_ff_bias: bool = Trueuse_prompt_adaln_single: bool = Trueuse_keyframes_abs_pos_embedding: bool = False )
Paramètres
- in_channels (
int, par défaut128) — Le nombre de canaux dans l'entrée. - out_channels (
int, par défaut128) — Le nombre de canaux dans la sortie. - patch_size (
int, par défaut1) — La taille des patches spatiaux à utiliser dans la couche d'encodage de patches. - patch_size_t (
int, par défaut1) — La taille des patches temporels à utiliser dans la couche d'incorporation de patches. - num_attention_heads (
int, par défaut32) — Le nombre de têtes à utiliser pour l'attention multi-têtes. - attention_head_dim (
int, par défaut64) — Le nombre de canaux dans chaque tête. - cross_attention_dim (
int, par défaut2048) — Le nombre de canaux pour les têtes d'attention croisée. - num_layers (
int, par défaut28) — Le nombre de blocs Transformer à utiliser. - activation_fn (
str, par défaut"gelu-approximate") — Fonction d'activation à utiliser dans le réseau de neurones à propagation avant. - qk_norm (
str, par défaut"rms_norm_across_heads") — La couche de normalisation à utiliser. - ff_bias (
bool, par défautTrue) — Indique si les couches linéaires de la couche feed-forward de la vidéo incluent un terme de biais.Falsepour LTX-2.5. - audio_ff_bias (
bool, par défautTrue) — Indique si les couches linéaires de la couche feed-forward audio incluent un terme de biais. - use_prompt_adaln_single (
bool, par défautTrue) — Indique si la modulation des clés/valeurs de l’attention croisée du prompt dépend de l’étape temporelle. SiFalse, une table fixe par couche est utilisée à la place, ce qui permet de mettre en cache les valeurs des clés/valeurs de l’attention croisée entre les étapes de débruitage pour un prompt donné. - use_keyframes_abs_pos_embedding (
bool, par défautFalse) — Indique s'il faut stocker un embedding de position absolue appris de forme(1, inner_dim)pour les jetons de keyframes générés (LTX-2.5). SiTrue, les jetons sélectionnés parvideo_keyframes_maskreçoivent cet embedding. L'argument est facultatif ; son omission laisse le chemin de propagation avant distillé inchangé.
Un modèle Transformer pour des données de type vidéo utilisé dans LTX.
forward
< source >( hidden_states: Tensoraudio_hidden_states: Tensorencoder_hidden_states: Tensoraudio_encoder_hidden_states: Tensortimestep: LongTensoraudio_timestep: typing.Optional[torch.LongTensor] = Nonesigma: typing.Optional[torch.Tensor] = Noneaudio_sigma: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Noneaudio_encoder_attention_mask: typing.Optional[torch.Tensor] = Nonenum_frames: int | None = Noneheight: int | None = Nonewidth: int | None = Nonefps: float = 24.0audio_num_frames: int | None = Nonevideo_coords: typing.Optional[torch.Tensor] = Noneaudio_coords: typing.Optional[torch.Tensor] = Noneisolate_modalities: bool = Falsespatio_temporal_guidance_blocks: list[int] | None = Noneperturbation_mask: typing.Optional[torch.Tensor] = Noneuse_cross_timestep: bool = Falseattention_kwargs: dict[str, typing.Any] | None = Nonevideo_self_attention_mask: typing.Optional[torch.Tensor] = Nonevideo_keyframes_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → AudioVisualModelOutput or tuple
Paramètres
- hidden_states (
torch.Tensor) — Latents vidéo patchifiés en entrée de forme(batch_size, num_video_tokens, in_channels). - audio_hidden_states (
torch.Tensor) — Latents audio patchifiés en entrée de forme(batch_size, num_audio_tokens, audio_in_channels). - encoder_hidden_states (
torch.Tensor) — Embeddings de texte de la vidéo d'entrée de forme(batch_size, text_seq_len, self.config.caption_channels). - audio_encoder_hidden_states (
torch.Tensor) — Embeddings d'entrée audio de forme(batch_size, text_seq_len, self.config.caption_channels). - timestep (
torch.Tensor) — Pas de temps d'entrée de forme(batch_size, num_video_tokens). Ils doivent déjà être mis à l'échelle parself.config.timestep_scale_multiplier. - audio_timestep (
torch.Tensor, facultatif) — Pas de temps d’entrée de forme(batch_size,)ou(batch_size, num_audio_tokens)pour les paramètres de modulation audio. N’est utilisé que par certains pipelines, comme le pipeline I2V. - sigma (
torch.Tensor, facultatif) — Pas de temps d'entrée mis à l'échelle de forme (batch_size,). Utilisé pour la modulation de l'attention croisée du prompt vidéo dans des modèles tels que LTX-2.3. - audio_sigma (
torch.Tensor, facultatif) — Pas de temps d’entrée mis à l’échelle de forme (batch_size,). Utilisé pour la modulation de l’attention croisée des prompts audio dans des modèles tels que LTX-2.3. Sisigmaest fourni mais queaudio_sigmane l’est pas,audio_sigmasera défini à la valeur desigmafournie. - encoder_attention_mask (
torch.Tensor, facultatif) — Masque d'attention textuel multiplicatif facultatif de forme(batch_size, text_seq_len). - audio_encoder_attention_mask (
torch.Tensor, facultatif) — Masque d'attention textuel multiplicatif facultatif de forme(batch_size, text_seq_len)pour la modélisation audio. - num_frames (
int, facultatif) — Le nombre de trames vidéo latentes. Utilisé lors du calcul des coordonnées vidéo pour RoPE. - height (
int, facultatif) — Hauteur de la vidéo latente. Utilisée lors du calcul des coordonnées vidéo pour RoPE. - width (
int, facultatif) — La largeur de la vidéo latente. Utilisée lors du calcul des coordonnées vidéo pour RoPE. - fps — (
float, facultatif, valeur par défaut24.0) : Le nombre de images par seconde souhaité pour la vidéo générée. Utilisé lors du calcul des coordonnées vidéo pour RoPE. - audio_num_frames — (
int, facultatif) : Le nombre de trames audio latentes. Utilisé lors du calcul des coordonnées audio pour RoPE. - video_coords (
torch.Tensor, facultatif) — Les coordonnées vidéo à utiliser lors du calcul des embeddings positionnels rotatifs (RoPE) de forme(batch_size, 3, num_video_tokens, 2). Si non fourni, elles seront calculées à l'intérieur deforward. - audio_coords (
torch.Tensor, facultatif) — Les coordonnées audio à utiliser lors du calcul des embeddings positionnels rotatifs (RoPE) de forme(batch_size, 1, num_audio_tokens, 2). Si non fourni, elles seront calculées à l'intérieur deforward. - isolate_modalities (
bool, facultatif, valeur par défautFalse) — Indique s'il faut isoler chaque modalité en désactivant l'attention croisée inter-modalités (audio-vers-vidéo et vidéo-vers-audio) (pour tous les blocs). À utiliser pour le guidage par modalité dans LTX-2.3. - spatio_temporal_guidance_blocks (
list[int], facultatif, valeur par défautNone) — Indices des blocs du transformer auxquels appliquer le guidage spatio-temporel (STG), qui contourne les opérations d'auto-attention en utilisant simplement les valeurs plutôt que l'opération complète d'attention par produit scalaire normalisé (SDPA). SiNoneou vide, le STG ne sera appliqué à aucun bloc. - perturbation_mask (
torch.Tensor, facultatif) — Masque de perturbation pour le STG de forme(batch_size,)ou(batch_size, 1, 1). Doit être 0 aux éléments du lot où le STG doit être appliqué et 1 ailleurs. Si le STG est utilisé mais queperturbation_maskn'est pas fourni, le STG (perturbation) sera appliqué par défaut à tous les éléments du lot. - use_cross_timestep (
boolfacultatif, par défautFalse) — Indique s'il faut utiliser la sigma de la modalité croisée (l'audio est la modalité croisée de la vidéo, et inversement) lors du calcul des paramètres de modulation de l'attention croisée.Truecorrespond au comportement plus récent (par ex. LTX-2.3) ;Falsecorrespond au comportement hérité de LTX-2.0. - attention_kwargs (
dict[str, Any], facultatif) — Dictionnaire facultatif d'arguments nommés à passer au processeur d'attention. - video_self_attention_mask (
torch.Tensor, facultatif) — Masque de self-attention multiplicatif facultatif de forme(batch_size, num_video_tokens, num_video_tokens)appliqué à la self-attention vidéo dans chaque bloc transformer. Les valeurs sont comprises dans[0, 1], où1signifie une attention complète et0signifie masqué. Utilisé par exemple par le pipeline IC-LoRA pour contrôler l'intensité de l'attention entre les tokens bruités et les tokens de référence ajoutés. La self-attention audio n'est pas affectée. - video_keyframes_mask (
torch.Tensor, facultatif) — Marqueur facultatif par jeton de forme(batch_size, num_video_tokens, 1), non nul pour les jetons vidéo dont le cadre latent encode un seul cadre de pixels. Ces jetons reçoiventkeyframes_abs_pos_embedding. Ignoré lorsque le modèle a été construit sansuse_keyframes_abs_pos_embedding. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner une sortie structurée de type dictionnaire de typeAudioVisualModelOutputou un tuple.
Retourne
AudioVisualModelOutput ou tuple
Si return_dict est True, renvoie une sortie structurée de type AudioVisualModelOutput, sinon un
tuple est renvoyé dont le premier élément est la séquence de patches latents vidéo débruités et le second
élément est la séquence de patches latents audio débruités.
Passage avant pour le transformateur vidéo audiovisuel LTX-2.0.