Diffusers documentation

Model Transformer SD3

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Model Transformer SD3

Model Transformer yang diperkenalkan dalam Stable Diffusion 3. Kebaruannya terletak pada blok transformer MMDiT.

SD3Transformer2DModel

kelas diffusers.SD3Transformer2DModel

< >

( sample_size: int = 128patch_size: int = 2in_channels: int = 16num_layers: int = 18attention_head_dim: int = 64num_attention_heads: int = 18joint_attention_dim: int = 4096caption_projection_dim: int = 1152pooled_projection_dim: int = 2048out_channels: int = 16pos_embed_max_size: int = 96dual_attention_layers: tuple = ()qk_norm: str | None = None )

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 saluran di setiap head.
  • num_attention_heads (int, defaultnya 18) — Jumlah head 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 embedding caption.
  • pooled_projection_dim (int, defaultnya 2048) — Dimensi embedding dari proyeksi teks yang dipooling.
  • out_channels (int, defaultnya 16) — Jumlah kanal laten pada output.
  • pos_embed_max_size (int, defaultnya 96) — Tinggi/lebar laten maksimum dari positional embeddings.
  • dual_attention_layers (tuple[int, ...], defaultnya ()) — Jumlah blok transformer dual-stream yang akan digunakan.
  • qk_norm (str, opsional, default None) — Normalisasi yang digunakan untuk query dan key di lapisan attention. Jika None, normalisasi tidak digunakan.

Model Transformer yang diperkenalkan dalam Stable Diffusion 3.

enable_forward_chunking

< >

( chunk_size: int | None = Nonedim: int = 0 )

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, default 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 chunking feed forward.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneblock_controlnet_hidden_states: list = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueskip_layers: list[int] | None = None )

Parameter

  • hidden_states (torch.Tensor dengan bentuk (batch size, channel, height, width)) — hidden_states masukan.
  • 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)) — Embedding yang diproyeksikan dari embedding kondisi input.
  • timestep (torch.LongTensor) — Digunakan untuk menunjukkan langkah denoising.
  • block_controlnet_hidden_states (list of torch.Tensor) — Daftar tensor yang, jika ditentukan, akan ditambahkan ke residual dari 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.
  • return_dict (bool, opsional, default 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.

Metode forward dari SD3Transformer2DModel.

fuse_qkv_projections

< >

( )

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.

> API ini 🧪 bersifat eksperimental.

unfuse_qkv_projections

< >

( )

Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.

> API ini 🧪 bersifat eksperimental.

Update on GitHub