Diffusers documentation

PixArtTransformer2DModel

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

PixArtTransformer2DModel

Model Transformer untuk data seperti gambar dari PixArt-Alpha dan PixArt-Sigma.

PixArtTransformer2DModel

kelas diffusers.PixArtTransformer2DModel

< >

( 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

< >

( 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.FloatTensor dengan bentuk (batch size, channel, height, width)) — hidden_states masukan.
  • encoder_hidden_states (torch.FloatTensor dengan 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 di AdaLayerNorm.
  • 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 ke AttentionProcessor seperti yang didefinisikan di bawah self.processor dalam diffusers.models.attention_processor.
  • attention_mask ( torch.Tensor, opsional) — Mask attention dengan bentuk (batch, key_tokens) diterapkan pada encoder_hidden_states. Jika 1, mask dipertahankan, sedangkan jika 0, 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 pada encoder_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.

  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan UNet2DConditionOutput alih-alih tuple biasa.

Metode forward dari PixArtTransformer2DModel.

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.

set_default_attn_processor

< >

( )

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.

unfuse_qkv_projections

< >

( )

Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.

> API ini 🧪 bersifat eksperimental.

Update on GitHub