Buckets:

hf-doc-build/doc / diffusers /main /id /api /models /sd3_transformer2d.md
mishig's picture
|
download
raw
6.11 kB
# Model Transformer SD3
Model Transformer yang diperkenalkan dalam [Stable Diffusion 3](https://hf.co/papers/2403.03206). Kebaruannya terletak pada blok transformer MMDiT.
## SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]
#### diffusers.SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]
```python
diffusers.SD3Transformer2DModel(sample_size: int = 128, patch_size: int = 2, in_channels: int = 16, num_layers: int = 18, attention_head_dim: int = 64, num_attention_heads: int = 18, joint_attention_dim: int = 4096, caption_projection_dim: int = 1152, pooled_projection_dim: int = 2048, out_channels: int = 16, pos_embed_max_size: int = 96, dual_attention_layers: tuple[int, ...] = (), qk_norm: str | None = None)
```
[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L79)
**Parameter:**
sample_size (`int`, defaultnya `128`) : Lebar/tinggi dari latents. Ini tetap selama pelatihan karena digunakan untuk mempelajari sejumlah position embeddings.
patch_size (`int`, defaultnya `2`) : Ukuran patch untuk mengubah data input menjadi patch kecil.
in_channels (`int`, defaultnya `16`) : Jumlah kanal laten pada input.
num_layers (`int`, defaultnya `18`) : Jumlah lapisan blok transformer yang akan digunakan.
attention_head_dim (`int`, defaultnya `64`) : Jumlah channel di setiap head.
num_attention_heads (`int`, defaultnya `18`) : Jumlah kepala yang digunakan untuk multi-head attention.
joint_attention_dim (`int`, defaultnya `4096`) : Dimensi embedding yang digunakan untuk perhatian gabungan teks-gambar.
caption_projection_dim (`int`, defaultnya `1152`) : Dimensi embedding dari caption embeddings.
pooled_projection_dim (`int`, defaultnya `2048`) : Dimensi embedding dari proyeksi teks yang dipooling.
out_channels (`int`, defaultnya `16`) : Jumlah kanal laten dalam output.
pos_embed_max_size (`int`, defaultnya `96`) : Tinggi/lebar maksimum laten dari positional embeddings.
dual_attention_layers (`tuple[int, ...]`, defaultnya `()`) : Jumlah blok transformer dual-stream yang akan digunakan.
qk_norm (`str`, *opsional*, defaultnya `None`) : Normalisasi yang digunakan untuk query dan key di lapisan perhatian. Jika `None`, normalisasi tidak digunakan.
Model Transformer yang diperkenalkan dalam [Stable Diffusion 3](https://huggingface.co/papers/2403.03206).
#### enable_forward_chunking[[diffusers.SD3Transformer2DModel.enable_forward_chunking]]
```python
enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)
```
[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L175)
**Parameter:**
chunk_size (`int`, *opsional*) : Ukuran chunk dari lapisan feed-forward. Jika tidak ditentukan, lapisan feed-forward akan dijalankan secara individual untuk setiap tensor dengan dim=`dim`.
dim (`int`, *opsional*, defaultnya `0`) : Dimensi di mana komputasi feed-forward harus di-chunk. Pilih antara dim=0 (batch) atau dim=1 (panjang sekuens).
Menetapkan prosesor perhatian untuk menggunakan [feed forward chunking](https://huggingface.co/blog/reformer#2-chunked-feed-forward-layers).
#### forward[[diffusers.SD3Transformer2DModel.forward]]
```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, pooled_projections: Tensor = None, timestep: LongTensor = None, block_controlnet_hidden_states: list = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, skip_layers: list[int] | None = None)
```
[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L248)
**Parameter:**
hidden_states (`torch.Tensor` dengan bentuk `(batch size, channel, height, width)`) : Input `hidden_states`.
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.
pooled_projections (`torch.Tensor` dengan bentuk `(batch_size, projection_dim)`) : Embeddings yang diproyeksikan dari embeddings kondisi input.
timestep (`torch.LongTensor`) : Digunakan untuk menunjukkan langkah denoising.
block_controlnet_hidden_states (`list` dari `torch.Tensor`) : Daftar tensor yang, jika ditentukan, akan ditambahkan ke residual blok transformer.
joint_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).
return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~models.transformer_2d.Transformer2DModelOutput` alih-alih tuple biasa.
skip_layers (`list` dari `int`, *opsional*) : Daftar indeks layer yang akan dilewati selama forward pass.
**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 [SD3Transformer2DModel](/docs/diffusers/main/id/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel).
#### fuse_qkv_projections[[diffusers.SD3Transformer2DModel.fuse_qkv_projections]]
```python
fuse_qkv_projections()
```
[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L217)
Mengaktifkan proyeksi QKV yang digabungkan. Untuk modul self-attention, semua matriks proyeksi (yaitu, query, key, value) digabungkan. Untuk modul cross-attention, matriks proyeksi key dan value digabungkan.
> [!WARNING] > API ini 🧪 eksperimental.
#### unfuse_qkv_projections[[diffusers.SD3Transformer2DModel.unfuse_qkv_projections]]
```python
unfuse_qkv_projections()
```
[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L239)
Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.
> [!WARNING] > API ini 🧪 eksperimental.

Xet Storage Details

Size:
6.11 kB
·
Xet hash:
15c3e959c60b74c8f8ea1bfe36ed9ac696c5dd843ec5cc2272d81c1c8032ffff

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.