Diffusers documentation
KandinskyS2VTransformer3DModel
KandinskyS2VTransformer3DModel
Le Diffusion Transformer (DiT) de Kandinsky S2V 1.0, conditionné par une image de référence et une piste audio.
KandinskyS2VTransformer3DModel
classe diffusers.KandinskyS2VTransformer3DModel
< source >( in_visual_dim: int = 16out_visual_dim: int = 16in_text_dim: int = 3584in_text_dim2: int = 768in_audio_dim: int = 3584time_dim: int = 512patch_size: tuple[int, int, int] = (1, 2, 2)frame_buckets: tuple[int, int, int] = (2, 4, 24)enable_framepack: bool = Trueindex_rope_ref_image: int = 40patch_proj1x_coef: tuple[int, int, int] = (1, 1, 1)patch_proj2x_coef: tuple[int, int, int] = (2, 2, 2)patch_proj4x_coef: tuple[int, int, int] = (4, 4, 4)model_dim: int = 1792ff_dim: int = 7168num_text_blocks: int = 2num_audio_blocks: int = 2num_visual_blocks: int = 32axes_dims: tuple[int, int, int] = (16, 24, 24)audio_inject_layers: tuple[int, ...] = ()text_rope_max_pos: int = 4096 )
Transformeur de diffusion pour la conversion de la parole en vidéo.
Les noms des paramètres correspondent aux points de contrôle d’entraînement, de sorte qu’un fichier .safetensors converti se charge sans remappage des clés. L’inférence est effectuée avec une taille de lot de 1 : la séquence est compactée et l’attention croisée avec la parole est alignée sur les trames, de sorte que forward prend un axe de lot de tête de taille 1 et le supprime.
Le flux visuel est une séquence compacte [memory | ref | visual] :
memory— contexte FramePack du bloc précédent avec un sous-échantillonnage temporel 4x / 2x / 1x, placé aux positions temporelles RoPE négatives ;ref— le repère de référence, fixé à l'index temporel RoPEindex_rope_ref_image;visual— le latent bruité en cours de débruitage.
memory et ref sont propres, ils sont donc modulés avec t = 0 tandis que visual utilise le pas de temps réel ; la modulation contient les deux lignes et un index sélectionne par jeton.
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensoraudio_hidden_states: Tensorreference_hidden_states: Tensormemory_hidden_states: tuple[Tensor, Tensor, Tensor]timestep: Tensorpooled_projections: Tensorvisual_rope_pos: list[Tensor]reference_rope_pos: list[Tensor]memory_rope_pos: tuple[list[Tensor], list[Tensor], list[Tensor]]text_rope_pos: Tensoraudio_rope_pos: Tensorscale_factor: tuple[float, float, float] = (1.0, 1.0, 1.0)return_dict: bool = True ) → [~models.modeling_outputs.Transformer2DModelOutput] or tuple
Paramètres
- hidden_states — latent bruité,
(1, T, H, W, C). - encoder_hidden_states — embeddings de texte,
(1, S_text, in_text_dim). - audio_hidden_states — caractéristiques vocales,
(1, S_audio, in_audio_dim). - reference_hidden_states — latent de la référence,
(1, 1, H, W, C). - memory_hidden_states — Mémoire FramePack à 4x / 2x / 1x, chacune de forme
(1, T_i, H_i, W_i, C). - timestep — pas de temps actuel,
(1,). - pooled_projections — embedding de texte CLIP agrégé,
(1, in_text_dim2). - visual_rope_pos — positions RoPE par axe du latent bruité.
- reference_rope_pos — positions RoPE par axe du repère de référence.
- memory_rope_pos — positions RoPE par axe de chaque échelle de mémoire FramePack.
- text_rope_pos — positions RoPE 1-D des jetons de texte.
- audio_rope_pos — cadre latent auquel chaque jeton de parole appartient.
- scale_factor — facteur d'échelle RoPE par axe, défini par le seau de résolution.
- return_dict — renvoie un
Transformer2DModelOutputau lieu d'un tuple.
Retourne
[~models.modeling_outputs.Transformer2DModelOutput] ou tuple
la vitesse prédite, de forme
hidden_states.
Dénuiser un bloc.
La taille du lot doit être 1 : la séquence est compactée et l'attention croisée vocale est alignée sur les trames.