Diffusers documentation
Model Transformer SD3
Model Transformer SD3
Model Transformer yang diperkenalkan dalam Stable Diffusion 3. Kebaruannya terletak pada blok transformer MMDiT.
SD3Transformer2DModel
kelas diffusers.SD3Transformer2DModel
< source >( 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, defaultnya128) — Lebar/tinggi dari latents. Ini tetap selama pelatihan karena digunakan untuk mempelajari sejumlah position embeddings. - patch_size (
int, defaultnya2) — Ukuran patch untuk mengubah data input menjadi patch kecil. - in_channels (
int, defaultnya16) — Jumlah kanal laten pada input. - num_layers (
int, defaultnya18) — Jumlah lapisan blok transformer yang akan digunakan. - attention_head_dim (
int, defaultnya64) — Jumlah saluran di setiap head. - num_attention_heads (
int, defaultnya18) — Jumlah head yang digunakan untuk multi-head attention. - joint_attention_dim (
int, defaultnya4096) — Dimensi embedding yang digunakan untuk perhatian gabungan teks-gambar. - caption_projection_dim (
int, defaultnya1152) — Dimensi embedding dari embedding caption. - pooled_projection_dim (
int, defaultnya2048) — Dimensi embedding dari proyeksi teks yang dipooling. - out_channels (
int, defaultnya16) — Jumlah kanal laten pada output. - pos_embed_max_size (
int, defaultnya96) — 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, defaultNone) — Normalisasi yang digunakan untuk query dan key di lapisan attention. JikaNone, normalisasi tidak digunakan.
Model Transformer yang diperkenalkan dalam Stable Diffusion 3.
enable_forward_chunking
< source >( 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, default0) — 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
< source >( 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.Tensordengan bentuk(batch size, channel, height, width)) —hidden_statesmasukan. - encoder_hidden_states (
torch.Tensordengan bentuk(batch size, sequence_len, embed_dims)) — Embedding kondisional (embedding yang dihitung dari kondisi input seperti prompt) yang akan digunakan. - pooled_projections (
torch.Tensordengan bentuk(batch_size, projection_dim)) — Embedding yang diproyeksikan dari embedding kondisi input. - timestep (
torch.LongTensor) — Digunakan untuk menunjukkan langkah denoising. - block_controlnet_hidden_states (
listoftorch.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 keAttentionProcessorseperti yang didefinisikan di bawahself.processordalam diffusers.models.attention_processor. - return_dict (
bool, opsional, defaultTrue) — Apakah akan mengembalikan~models.transformer_2d.Transformer2DModelOutputalih-alih tuple biasa. - skip_layers (
listdariint, opsional) — Daftar indeks layer yang akan dilewati selama forward pass.
Metode forward dari SD3Transformer2DModel.
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.
Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.
> API ini 🧪 bersifat eksperimental.