Diffusers documentation
PixArtTransformer2DModel
PixArtTransformer2DModel
Model Transformer untuk data seperti gambar dari PixArt-Alpha dan PixArt-Sigma.
PixArtTransformer2DModel
kelas diffusers.PixArtTransformer2DModel
< source >( num_attention_heads: int = 16attention_head_dim: int = 72in_channels: int = 4out_channels: int | None = 8num_layers: int = 28dropout: float = 0.0norm_num_groups: int = 32cross_attention_dim: int | None = 1152attention_bias: bool = Truesample_size: int = 128patch_size: int = 2activation_fn: str = 'gelu-approximate'num_embeds_ada_norm: int | None = 1000upcast_attention: bool = Falsenorm_type: str = 'ada_norm_single'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06interpolation_scale: int | None = Noneuse_additional_conditions: bool | None = Nonecaption_channels: int | None = Noneattention_type: str | None = 'default' )
Parameter
- num_attention_heads (int, opsional, default 16) — Jumlah head yang digunakan untuk multi-head attention.
- attention_head_dim (int, opsional, default 72) — Jumlah channel di setiap head.
- in_channels (int, defaultnya 4) — Jumlah channel pada input.
- out_channels (int, opsional) — Jumlah channel pada output. Tentukan parameter ini jika jumlah channel output berbeda dari input.
- num_layers (int, opsional, default 28) — Jumlah lapisan blok Transformer yang digunakan.
- dropout (float, opsional, default 0.0) — Probabilitas dropout yang digunakan di dalam blok Transformer.
- norm_num_groups (int, opsional, default 32) — Jumlah grup untuk normalisasi grup di dalam blok Transformer.
- cross_attention_dim (int, opsional) — Dimensi untuk lapisan cross-attention, biasanya sesuai dengan dimensi tersembunyi encoder.
- attention_bias (bool, opsional, default True) — Mengonfigurasi apakah perhatian pada blok Transformer harus memuat parameter bias.
- sample_size (int, defaultnya 128) — Lebar dari gambar laten. Parameter ini tetap selama pelatihan.
- patch_size (int, defaultnya 2) — Ukuran patch yang diproses oleh model, relevan untuk arsitektur yang bekerja pada data non-berurutan.
- activation_fn (str, opsional, default “gelu-approximate”) — Fungsi aktivasi yang digunakan dalam jaringan feed-forward di dalam blok Transformer.
- num_embeds_ada_norm (int, opsional, default 1000) — Jumlah embedding untuk AdaLayerNorm, yang tetap selama pelatihan dan memengaruhi jumlah langkah denoising maksimum selama inferensi.
- upcast_attention (bool, opsional, default False) — Jika true, menaikkan dimensi mekanisme perhatian untuk potensi peningkatan kinerja.
- norm_type (str, opsional, default “ada_norm_zero”) — Menentukan jenis normalisasi yang digunakan, dapat berupa ‘ada_norm_zero’.
- norm_elementwise_affine (bool, opsional, default False) — Jika true, mengaktifkan parameter afine per elemen di lapisan normalisasi.
- norm_eps (float, opsional, default 1e-6) — Konstanta kecil yang ditambahkan ke penyebut pada lapisan normalisasi untuk mencegah pembagian dengan nol.
- interpolation_scale (int, opsional) — Faktor skala yang digunakan saat melakukan interpolasi pada position embeddings.
- use_additional_conditions (bool, opsional) — Jika kami menggunakan kondisi tambahan sebagai input.
- attention_type (str, opsional, default “default”) — Jenis mekanisme perhatian yang akan digunakan.
- caption_channels (int, opsional, default None) — Jumlah channel yang digunakan untuk memproyeksikan embedding caption.
- use_linear_projection (bool, opsional, default False) — Argumen yang tidak lagi didukung. Akan dihapus pada versi mendatang.
- num_vector_embeds (bool, opsional, default False) — Argumen yang tidak lagi didukung. Akan dihapus pada versi mendatang.
Model Transformer 2D yang diperkenalkan dalam keluarga model PixArt (https://huggingface.co/papers/2310.00426, https://huggingface.co/papers/2403.04692).
forward
< source >( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneadded_cond_kwargs: dict = Nonecross_attention_kwargs: dict = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )
Parameter
- hidden_states (
torch.FloatTensordengan bentuk(batch size, channel, height, width)) —hidden_statesmasukan. - encoder_hidden_states (
torch.FloatTensordengan bentuk(batch size, sequence len, embed dims), opsional) — Embedding kondisional untuk lapisan cross attention. Jika tidak diberikan, cross-attention secara default menggunakan self-attention. - timestep (
torch.LongTensor, opsional) — Digunakan untuk menunjukkan langkah denoising. Timestep opsional yang diterapkan sebagai embedding diAdaLayerNorm. - added_cond_kwargs — (
dict[str, Any], opsional): Kondisi tambahan yang akan digunakan sebagai input. - cross_attention_kwargs (
dict[str, Any], opsional) — Kamus kwargs yang jika ditentukan akan diteruskan keAttentionProcessorseperti yang didefinisikan di bawahself.processordalam diffusers.models.attention_processor. - attention_mask (
torch.Tensor, opsional) — Mask attention dengan bentuk(batch, key_tokens)diterapkan padaencoder_hidden_states. Jika1, mask dipertahankan, sedangkan jika0, mask dibuang. Mask akan dikonversi menjadi bias, yang menambahkan nilai negatif besar ke skor attention yang sesuai dengan token “buang”. - encoder_attention_mask (
torch.Tensor, opsional) — Mask cross-attention yang diterapkan padaencoder_hidden_states. Dua format didukung:- Mask
(batch, sequence_length)True = simpan, False = buang. - Bias
(batch, 1, sequence_length)0 = pertahankan, -10000 = buang.
Jika
ndim == 2: akan diinterpretasikan sebagai mask, kemudian dikonversi menjadi bias yang konsisten dengan format di atas. Bias ini akan ditambahkan ke skor cross-attention. - Mask
- return_dict (
bool, opsional, defaultTrue) — Apakah akan mengembalikan UNet2DConditionOutput alih-alih tuple biasa.
Metode forward dari PixArtTransformer2DModel.
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 prosesor perhatian kustom dan mengatur implementasi perhatian default.
Aman untuk langsung menggunakan AttnProcessor() karena PixArt tidak memiliki prosesor perhatian eksotis apa pun di model default.
Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.
> API ini 🧪 bersifat eksperimental.