# ChronoEditTransformer3DModel

Model Diffusion Transformer untuk data video 3D dari [ChronoEdit: Towards Temporal Reasoning for Image Editing and World Simulation](https://huggingface.co/papers/2510.04290) dari NVIDIA dan University of Toronto, oleh 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.

> **TL;DR:** ChronoEdit membingkai ulang pengeditan gambar sebagai tugas generasi video, menggunakan gambar input dan gambar yang telah diedit sebagai bingkai awal/akhir untuk memanfaatkan model video pralatih dengan konsistensi temporal. Tahap penalaran temporal memperkenalkan token penalaran untuk memastikan edit yang secara fisika masuk akal dan memvisualisasikan lintasan pengeditan.

Model dapat dimuat dengan potongan kode berikut.

```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)
```

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

**Parameter:**

patch_size (`tuple[int]`, defaultnya `(1, 2, 2)`) : dimensi patch 3D untuk embedding video (t_patch, h_patch, w_patch).

num_attention_heads (`int`, defaultnya `40`) : Panjang tetap untuk embedding teks.

attention_head_dim (`int`, defaultnya `128`) : Jumlah channel di setiap head.

in_channels (`int`, defaultnya `16`) : Jumlah channel pada input.

out_channels (`int`, defaultnya `16`) : Jumlah channel pada output.

text_dim (`int`, defaultnya `512`) : Dimensi input untuk embedding teks.

freq_dim (`int`, defaultnya `256`) : Dimensi untuk penanaman waktu sinusoidal.

ffn_dim (`int`, defaultnya `13824`) : Dimensi perantara dalam jaringan feed-forward.

num_layers (`int`, defaultnya `40`) : Jumlah lapisan blok transformer yang akan digunakan.

window_size (`tuple[int]`, defaultnya `(-1, -1)`) : Ukuran jendela untuk perhatian lokal (-1 menunjukkan perhatian global).

cross_attn_norm (`bool`, defaultnya `True`) : Aktifkan normalisasi cross-attention.

qk_norm (`bool`, defaultnya `True`) : Aktifkan normalisasi query/key.

eps (`float`, defaultnya `1e-6`) : Nilai epsilon untuk lapisan normalisasi.

add_img_emb (`bool`, defaultnya `False`) : Apakah akan menggunakan img_emb.

added_kv_proj_dim (`int`, *opsional*, defaultnya `None`) : Jumlah channel yang digunakan untuk proyeksi key dan value yang ditambahkan. Jika `None`, tidak ada proyeksi yang digunakan.

Model Transformer untuk data mirip video yang digunakan dalam model 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)
```

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

**Parameter:**

hidden_states (`torch.Tensor` dengan bentuk `(batch_size, num_channels, num_frames, height, width)`) : Input `hidden_states`.

timestep (`torch.LongTensor`) : Digunakan untuk menunjukkan langkah denoising.

encoder_hidden_states (`torch.Tensor` dengan bentuk `(batch_size, sequence_len, embed_dims)`) : Embedding kondisional (embedding yang dihitung dari kondisi input seperti prompt) yang akan digunakan.

encoder_hidden_states_image (`torch.Tensor`, *opsional*) : Embedding gambar kondisional untuk generasi yang dikondisikan oleh gambar.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~models.transformer_2d.Transformer2DModelOutput` alih-alih tuple biasa.

attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang jika ditentukan akan diteruskan ke `AttentionProcessor` seperti yang didefinisikan di bawah `self.processor` dalam [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

**Mengembalikan:**

Jika `return_dict` bernilai True, sebuah `~models.transformer_2d.Transformer2DModelOutput` akan dikembalikan, selain itu sebuah `tuple` di mana elemen pertama adalah tensor sampel.

Metode forward dari [ChronoEditTransformer3DModel](/docs/diffusers/v0.43.0/id/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)
```

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

**Parameter:**

sample (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)` atau `(batch size, num_vector_embeds - 1, num_latent_pixels)` jika [Transformer2DModel](/docs/diffusers/v0.43.0/id/api/models/transformer2d#diffusers.Transformer2DModel) bersifat diskrit) : Output hidden states yang dikondisikan pada input `encoder_hidden_states`. Jika diskrit, mengembalikan distribusi probabilitas untuk piksel laten yang tidak berisik.

Output dari [Transformer2DModel](/docs/diffusers/v0.43.0/id/api/models/transformer2d#diffusers.Transformer2DModel).

