# KandinskyS2VTransformer3DModel

Diffusion Transformer (DiT) của Kandinsky S2V 1.0, được điều kiện bởi một khung hình tham chiếu và một bản ghi âm thanh.

## KandinskyS2VTransformer3DModel[[diffusers.KandinskyS2VTransformer3DModel]]

#### diffusers.KandinskyS2VTransformer3DModel[[diffusers.KandinskyS2VTransformer3DModel]]

```python
diffusers.KandinskyS2VTransformer3DModel(in_visual_dim: int = 16, out_visual_dim: int = 16, in_text_dim: int = 3584, in_text_dim2: int = 768, in_audio_dim: int = 3584, time_dim: int = 512, patch_size: tuple[int, int, int] = (1, 2, 2), frame_buckets: tuple[int, int, int] = (2, 4, 24), enable_framepack: bool = True, index_rope_ref_image: int = 40, patch_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 = 1792, ff_dim: int = 7168, num_text_blocks: int = 2, num_audio_blocks: int = 2, num_visual_blocks: int = 32, axes_dims: tuple[int, int, int] = (16, 24, 24), audio_inject_layers: tuple[int, ...] = (), text_rope_max_pos: int = 4096)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_kandinsky_s2v.py#L487)

Biến đổi khuếch tán từ giọng nói sang video.

Tên tham số khớp với các checkpoint huấn luyện, do đó một tệp *.safetensors* đã chuyển đổi sẽ được nạp mà không cần ánh xạ lại khóa. Suy luận có kích thước lô là 1: chuỗi được đóng gói và chú ý chéo giọng nói được căn chỉnh theo khung, nên *forward* nhận một trục lô đầu có kích thước 1 và nén nó lại.

Dòng thị giác là một chuỗi đóng gói `[memory | ref | visual]`:

- `memory` — ngữ cảnh FramePack từ khối trước đó ở mức giảm mẫu thời gian 4x / 2x / 1x, được đặt ở các vị trí RoPE thời gian âm;
- `ref` — hệ quy chiếu tham chiếu, được cố định tại chỉ số RoPE theo thời gian `index_rope_ref_image`;
- `visual` — latent nhiễu đang được khử nhiễu.

`memory` và `ref` sạch, nên chúng được điều biến với `t = 0` trong khi `visual` sử dụng bước thời gian thực; điều biến giữ cả hai hàng và một chỉ số chọn theo từng token.

#### forward[[diffusers.KandinskyS2VTransformer3DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor, audio_hidden_states: Tensor, reference_hidden_states: Tensor, memory_hidden_states: tuple[Tensor, Tensor, Tensor], timestep: Tensor, pooled_projections: Tensor, visual_rope_pos: list[Tensor], reference_rope_pos: list[Tensor], memory_rope_pos: tuple[list[Tensor], list[Tensor], list[Tensor]], text_rope_pos: Tensor, audio_rope_pos: Tensor, scale_factor: tuple[float, float, float] = (1.0, 1.0, 1.0), return_dict: bool = True)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_kandinsky_s2v.py#L632)

**Tham số:**

hidden_states : latent nhiễu, `(1, T, H, W, C)`.

encoder_hidden_states : text embeddings, `(1, S_text, in_text_dim)`.

audio_hidden_states : đặc trưng giọng nói, `(1, S_audio, in_audio_dim)`.

reference_hidden_states : khung tham chiếu tiềm ẩn, `(1, 1, H, W, C)`.

memory_hidden_states : Bộ nhớ FramePack ở 4x / 2x / 1x, mỗi `(1, T_i, H_i, W_i, C)`.

timestep : bước thời gian hiện tại, `(1,)`.

pooled_projections : embedding văn bản CLIP đã gộp, `(1, in_text_dim2)`.

visual_rope_pos : vị trí RoPE theo từng trục của latent nhiễu.

reference_rope_pos : vị trí RoPE theo từng trục của hệ quy chiếu.

memory_rope_pos : vị trí RoPE theo từng trục của mỗi tỷ lệ bộ nhớ FramePack.

text_rope_pos : 1-D RoPE positions của các token văn bản.

audio_rope_pos : khung tiềm năng mà mỗi token giọng nói thuộc về.

scale_factor : Thang đo RoPE theo từng trục, được đặt bởi thùng phân giải.

return_dict : trả về một `Transformer2DModelOutput` thay vì một tuple.

**Trả về:** [*~models.modeling_outputs.Transformer2DModelOutput*] hoặc *tuple*

tốc độ dự đoán, có hình dạng giống như `hidden_states`.

Loại bỏ nhiễu một khối.

Batch size phải là 1: chuỗi được đóng gói và cross-attention của giọng nói được căn chỉnh theo từng khung hình.

