Diffusers documentation
KandinskyS2VTransformer3DModel
KandinskyS2VTransformer3DModel
El Diffusion Transformer (DiT) de Kandinsky S2V 1.0, condicionado por un fotograma de referencia y una pista de audio.
KandinskyS2VTransformer3DModel
clase 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 )
Transformador de difusión de voz a video.
Los nombres de los parámetros coinciden con los puntos de control de entrenamiento, por lo que un .safetensors convertido se carga sin remapeo de claves. La inferencia se realiza con un tamaño de lote de 1: la secuencia se empaqueta y la atención cruzada del habla se alinea por cuadro, por lo que forward toma un eje de lote inicial de 1 y lo comprime.
El flujo visual es una secuencia empaquetada [memory | ref | visual]:
memory— Contexto de FramePack del fragmento anterior con submuestreo temporal de 4x / 2x / 1x, colocado en posiciones temporales de RoPE negativas;ref— el marco de referencia, fijado al índice temporal de RoPEindex_rope_ref_image;visual— el latente ruidoso que se está desruidando.
memory y ref están limpios, por lo que se modulan con t = 0, mientras que visual utiliza el paso temporal real; la modulación contiene ambas filas y un índice selecciona por token.
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
Parámetros
- hidden_states — latente con ruido,
(1, T, H, W, C). - encoder_hidden_states — incrustaciones de texto,
(1, S_text, in_text_dim). - audio_hidden_states — características del habla,
(1, S_audio, in_audio_dim). - reference_hidden_states — latente del marco de referencia,
(1, 1, H, W, C). - memory_hidden_states — Memoria de FramePack a 4x / 2x / 1x, cada una
(1, T_i, H_i, W_i, C). - timestep — paso temporal actual,
(1,). - pooled_projections — embedding de texto CLIP agrupado,
(1, in_text_dim2). - visual_rope_pos — posiciones de RoPE por eje del latente con ruido.
- reference_rope_pos — posiciones de RoPE por eje del marco de referencia.
- memory_rope_pos — posiciones de RoPE por eje de cada escala de memoria de FramePack.
- text_rope_pos — posiciones RoPE de 1-D de los tokens de texto.
- audio_rope_pos — cuadro latente al que pertenece cada token de voz.
- scale_factor — Escala de RoPE por eje, definida por el cubo de resolución.
- return_dict — devuelve un
Transformer2DModelOutputen lugar de una tupla.
Devuelve
[~models.modeling_outputs.Transformer2DModelOutput] o tuple
la velocidad predicha, con la forma de
hidden_states.
Desruidar un fragmento.
El tamaño del lote debe ser 1: la secuencia está empaquetada y la atención cruzada del habla está alineada por cuadro.