# ChronoEditTransformer3DModel

Một mô hình Diffusion Transformer cho dữ liệu dạng video 3D từ [ChronoEdit: Towards Temporal Reasoning for Image Editing and World Simulation](https://huggingface.co/papers/2510.04290) của NVIDIA và Đại học Toronto, do Jay Zhangjie Wu, Xuanchi Ren, Tianchang Shen, Tianshi Cao, Kai He, Yifan Lu, Ruiyuan Gao, Enze Xie, Shiyi Lan, Jose M. Alvarez, Jun Gao, Sanja Fidler, Zian Wang, Huan Ling thực hiện.

> **Tóm tắt:** ChronoEdit định hình lại việc chỉnh sửa ảnh như một tác vụ tạo video, sử dụng ảnh đầu vào và ảnh đã chỉnh sửa làm khung đầu/cuối để tận dụng các mô hình video được huấn luyện trước với tính nhất quán theo thời gian. Một giai đoạn suy luận theo thời gian đưa vào các token suy luận để đảm bảo các chỉnh sửa hợp lý về mặt vật lý và trực quan hóa quỹ đạo chỉnh sửa.

Mô hình có thể được tải bằng đoạn mã sau.

```python
from diffusers import ChronoEditTransformer3DModel

transformer = ChronoEditTransformer3DModel.from_pretrained("nvidia/ChronoEdit-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)
```

## ChronoEditTransformer3DModel[[diffusers.ChronoEditTransformer3DModel]]

#### diffusers.ChronoEditTransformer3DModel[[diffusers.ChronoEditTransformer3DModel]]

```python
diffusers.ChronoEditTransformer3DModel(patch_size: tuple[int] = (1, 2, 2), num_attention_heads: int = 40, attention_head_dim: int = 128, in_channels: int = 16, out_channels: int = 16, text_dim: int = 4096, freq_dim: int = 256, ffn_dim: int = 13824, num_layers: int = 40, cross_attn_norm: bool = True, qk_norm: str | None = 'rms_norm_across_heads', eps: float = 1e-06, image_dim: int | None = None, added_kv_proj_dim: int | None = None, rope_max_seq_len: int = 1024, pos_embed_seq_len: int | None = None, rope_temporal_skip_len: int = 8)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_chronoedit.py#L523)

**Tham số:**

patch_size (`tuple[int]`, mặc định là `(1, 2, 2)`) : Kích thước patch 3D cho nhúng video (t_patch, h_patch, w_patch).

num_attention_heads (`int`, mặc định là `40`) : Độ dài cố định cho các vector nhúng văn bản.

attention_head_dim (`int`, mặc định là `128`) : Số lượng kênh trong mỗi head.

in_channels (`int`, mặc định là `16`) : Số lượng kênh trong đầu vào.

out_channels (`int`, mặc định là `16`) : Số lượng kênh trong đầu ra.

text_dim (`int`, mặc định là `512`) : Kích thước đầu vào cho nhúng văn bản.

freq_dim (`int`, mặc định là `256`) : Kích thước cho các nhúng thời gian hình sin.

ffn_dim (`int`, mặc định là `13824`) : Kích thước chiều trung gian trong mạng feed-forward.

num_layers (`int`, mặc định là `40`) : Số lượng lớp khối transformer cần sử dụng.

window_size (`tuple[int]`, mặc định là `(-1, -1)`) : Kích thước cửa sổ cho chú ý cục bộ (-1 chỉ ra chú ý toàn cục).

cross_attn_norm (`bool`, mặc định là `True`) : Bật chuẩn hóa cross-attention.

qk_norm (`bool`, mặc định là `True`) : Bật chuẩn hóa truy vấn/chìa khóa.

eps (`float`, mặc định là `1e-6`) : Giá trị epsilon cho các lớp chuẩn hóa.

add_img_emb (`bool`, mặc định là `False`) : Có sử dụng img_emb hay không.

added_kv_proj_dim (`int`, *tuỳ chọn*, mặc định là `None`) : Số lượng kênh được sử dụng cho các phép chiếu key và value được thêm vào. Nếu là `None`, sẽ không sử dụng phép chiếu.

Một mô hình Transformer cho dữ liệu dạng video được sử dụng trong mô hình ChronoEdit.

#### forward[[diffusers.ChronoEditTransformer3DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: LongTensor, encoder_hidden_states: Tensor, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_chronoedit.py#L644)

**Tham số:**

hidden_states (`torch.Tensor` có hình dạng `(batch_size, num_channels, num_frames, height, width)`) : `hidden_states` đầu vào.

timestep (`torch.LongTensor`) : Dùng để chỉ bước khử nhiễu.

encoder_hidden_states (`torch.Tensor` có shape `(batch_size, sequence_len, embed_dims)`) : Các embeddings điều kiện (embeddings được tính từ các điều kiện đầu vào như prompts) cần sử dụng.

encoder_hidden_states_image (`torch.Tensor`, *tùy chọn*) : Nhúng ảnh điều kiện cho việc tạo ảnh có điều kiện.

return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một `~models.transformer_2d.Transformer2DModelOutput` thay vì một tuple thông thường hay không.

attention_kwargs (`dict`, *tùy chọn*) : Một từ điển kwargs mà nếu được chỉ định sẽ được truyền đến `AttentionProcessor` như đã định nghĩa dưới `self.processor` trong [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

**Trả về:**

Nếu `return_dict` là True, một `~models.transformer_2d.Transformer2DModelOutput` sẽ được trả về, ngược lại một `tuple` trong đó phần tử đầu tiên là tensor mẫu.

Phương thức forward của [ChronoEditTransformer3DModel](/docs/diffusers/v0.43.0/vi/api/models/chronoedit_transformer_3d#diffusers.ChronoEditTransformer3DModel).

## Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

#### diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

```python
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/modeling_outputs.py#L21)

**Tham số:**

sample (`torch.Tensor` có shape `(batch_size, num_channels, height, width)` hoặc `(batch size, num_vector_embeds - 1, num_latent_pixels)` nếu [Transformer2DModel](/docs/diffusers/v0.43.0/vi/api/models/transformer2d#diffusers.Transformer2DModel) là discrete) : Đầu ra của hidden states được điều kiện bởi đầu vào `encoder_hidden_states`. Nếu là discrete, trả về các phân phối xác suất cho các latent pixels chưa bị nhiễu.

Đầu ra của [Transformer2DModel](/docs/diffusers/v0.43.0/vi/api/models/transformer2d#diffusers.Transformer2DModel).

