# SD3 Dönüştürücü Modeli

[Stable Diffusion 3](https://hf.co/papers/2403.03206)'te tanıtılan Transformer modeli. Yeniliği, MMDiT transformer bloğunda yatar.

## 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 = (), qk_norm: str | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L79)

**Parametreler:**

sample_size (`int`, varsayılan `128`) : Latentlerin genişlik/yüksekliği. Bu, pozisyon gömme sayısını öğrenmek için kullanıldığından eğitim sırasında sabittir.

patch_size (`int`, varsayılan `2`) : Girdi verisini küçük yamalar (patch) haline getirmek için kullanılan yama boyutu.

in_channels (`int`, varsayılan `16`) : Girdideki gizli kanal sayısı.

num_layers (`int`, varsayılan `18`) : Kullanılacak transformer bloğu katman sayısı.

attention_head_dim (`int`, varsayılan `64`) : Her baştaki kanal sayısı.

num_attention_heads (`int`, varsayılan `18`) : Çok başlı dikkat için kullanılacak baş sayısı.

joint_attention_dim (`int`, varsayılan `4096`) : Ortak metin-görsel dikkati için kullanılacak gömme boyutu.

caption_projection_dim (`int`, varsayılan `1152`) : Başlık gömme vektörlerinin gömme boyutu.

pooled_projection_dim (`int`, varsayılan `2048`) : Havuzlanmış metin projeksiyonlarının gömme boyutu.

out_channels (`int`, varsayılan `16`) : Çıktıdaki gizli kanal sayısı.

pos_embed_max_size (`int`, varsayılan `96`) : Konumsal gömme (positional embeddings) için en yüksek gizli (latent) yükseklik/genişlik.

dual_attention_layers (`tuple[int, ...]`, varsayılan `()`) : Kullanılacak çift akışlı dönüştürücü bloklarının sayısı.

qk_norm (`str`, *isteğe bağlı*, varsayılan `None`) : Dikkat katmanında sorgu ve anahtar için kullanılacak normalizasyon. `None` ise normalizasyon kullanılmaz.

[Stable Diffusion 3](https://huggingface.co/papers/2403.03206)'te tanıtılan Transformer modeli.

#### enable_forward_chunking[[diffusers.SD3Transformer2DModel.enable_forward_chunking]]

```python
enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L175)

**Parametreler:**

chunk_size (`int`, *opsiyonel*) : Feed-forward katmanlarının parça boyutu. Belirtilmezse, feed-forward katmanı `dim` boyutlu her tensör üzerinde ayrı ayrı çalıştırılır.

dim (`int`, *isteğe bağlı*, varsayılan `0`) : Feed-forward hesaplamanın parçalanacağı boyut. dim=0 (batch) veya dim=1 (sequence length) arasında seçim yapın.

Dikkat işleyicisini [feed forward chunking](https://huggingface.co/blog/reformer#2-chunked-feed-forward-layers) kullanacak şekilde ayarlar.

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

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L248)

**Parametreler:**

hidden_states (`torch.Tensor`, şekli `(batch size, channel, height, width)`) : Girdi `hidden_states`.

encoder_hidden_states (`torch.Tensor`, şekli `(batch size, sequence_len, embed_dims)`) : Kullanılacak koşullu gömlemeler (giriş koşullarından, örneğin istemlerden hesaplanan gömlemeler).

pooled_projections (`torch.Tensor`, şekli `(batch_size, projection_dim)`) : Girdi koşullarının gömülme değerlerinden yansıtılan gömülme değerleri.

timestep (`torch.LongTensor`) : Gürültü azaltma adımını belirtmek için kullanılır.

block_controlnet_hidden_states (`list` of `torch.Tensor`) : Belirtilirse, transformer bloklarının artıklarına eklenen tensörlerin listesi.

joint_attention_kwargs (`dict`, *isteğe bağlı*) : Belirtilirse, [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içinde `self.processor` altında tanımlanan `AttentionProcessor`'a iletilen bir kwargs sözlüğü.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine `~models.transformer_2d.Transformer2DModelOutput` döndürülüp döndürülmediğini belirtir.

skip_layers (`list` of `int`, *opsiyonel*) : İleri geçiş sırasında atlanacak katman indekslerinin listesi.

**Dönüş:**

`return_dict` True ise, `~models.transformer_2d.Transformer2DModelOutput` döndürülür, aksi takdirde ilk öğesi örnek tensörü olan bir `tuple` döndürülür.

[SD3Transformer2DModel](/docs/diffusers/main/tr/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel) ileri yöntemi.

#### fuse_qkv_projections[[diffusers.SD3Transformer2DModel.fuse_qkv_projections]]

```python
fuse_qkv_projections()
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L217)

Füzyonlu QKV projeksiyonlarını etkinleştirir. Kendi dikkat (self-attention) modülleri için tüm projeksiyon matrisleri (yani sorgu, anahtar, değer) füzyonlanır. Çapraz dikkat (cross-attention) modülleri için anahtar ve değer projeksiyon matrisleri füzyonlanır.

> [!WARNING] > Bu API 🧪 deneyseldir.

#### unfuse_qkv_projections[[diffusers.SD3Transformer2DModel.unfuse_qkv_projections]]

```python
unfuse_qkv_projections()
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L239)

Etkinleştirilmişse birleşik QKV projeksiyonunu devre dışı bırakır.

> [!WARNING] > Bu API 🧪 deneyseldir.

