Diffusers documentation

OmniGenTransformer2DModel

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

and get access to the augmented documentation experience

to get started

OmniGenTransformer2DModel

Model Transformer yang menerima instruksi multimodal untuk menghasilkan gambar untuk OmniGen.

Abstrak dari makalah tersebut adalah:

Kemunculan Large Language Models (LLMs) telah menyatukan tugas-tugas generasi bahasa dan merevolusi interaksi manusia-mesin. Namun, dalam ranah generasi gambar, model terpadu yang mampu menangani berbagai tugas dalam satu kerangka kerja masih belum banyak dieksplorasi. Dalam karya ini, kami memperkenalkan OmniGen, sebuah model difusi baru untuk generasi gambar terpadu. OmniGen dicirikan oleh fitur-fitur berikut: 1) Penyatuan: OmniGen tidak hanya menunjukkan kemampuan generasi teks-ke-gambar, tetapi juga secara inheren mendukung berbagai tugas turunan, seperti pengeditan gambar, generasi yang digerakkan oleh subjek, dan generasi kondisional visual. 2) Kesederhanaan: Arsitektur OmniGen sangat disederhanakan, menghilangkan kebutuhan akan plugin tambahan. Selain itu, dibandingkan dengan model difusi yang ada, model ini lebih ramah pengguna dan dapat menyelesaikan tugas kompleks secara end-to-end melalui instruksi tanpa memerlukan langkah-langkah perantara tambahan, sehingga sangat menyederhanakan alur kerja generasi gambar. 3) Transfer Pengetahuan: Berkat pembelajaran dalam format terpadu, OmniGen secara efektif mentransfer pengetahuan antar tugas yang berbeda, mengelola tugas dan domain yang belum pernah dilihat, serta menunjukkan kemampuan baru. Kami juga mengeksplorasi kemampuan penalaran model dan potensi aplikasi mekanisme chain-of-thought. Karya ini merupakan upaya pertama untuk model generasi gambar serbaguna, dan kami akan merilis sumber daya kami di https://github.com/VectorSpaceLab/OmniGen untuk mendorong kemajuan di masa depan.

import torch
from diffusers import OmniGenTransformer2DModel

transformer = OmniGenTransformer2DModel.from_pretrained("Shitao/OmniGen-v1-diffusers", subfolder="transformer", dtype=torch.bfloat16)

OmniGenTransformer2DModel

kelas diffusers.OmniGenTransformer2DModel

< >

( in_channels: int = 4patch_size: int = 2hidden_size: int = 3072rms_norm_eps: float = 1e-05num_attention_heads: int = 32num_key_value_heads: int = 32intermediate_size: int = 8192num_layers: int = 32pad_token_id: int = 32000vocab_size: int = 32064max_position_embeddings: int = 131072original_max_position_embeddings: int = 4096rope_base: int = 10000rope_scaling: dict = Nonepos_embed_max_size: int = 192time_step_dim: int = 256flip_sin_to_cos: bool = Truedownscale_freq_shift: int = 0timestep_activation_fn: str = 'silu' )

Parameter

  • in_channels (int, defaultnya 4) — Jumlah channel pada input.
  • patch_size (int, defaultnya 2) — Ukuran patch spasial yang akan digunakan di lapisan patch embedding.
  • hidden_size (int, defaultnya 3072) — Dimensi dari lapisan tersembunyi dalam model.
  • rms_norm_eps (float, defaultnya 1e-5) — Eps untuk lapisan RMSNorm.
  • num_attention_heads (int, defaultnya 32) — Jumlah head yang digunakan untuk multi-head attention.
  • num_key_value_heads (int, defaultnya 32) — Jumlah head yang digunakan untuk kunci dan nilai dalam multi-head attention.
  • intermediate_size (int, defaultnya 8192) — Dimensi dari lapisan tersembunyi di lapisan FeedForward.
  • num_layers (int, default 32) — Jumlah lapisan blok transformer yang digunakan.
  • pad_token_id (int, default 32000) — ID dari token padding.
  • vocab_size (int, default 32064) — Ukuran kosakata dari embedding vocabulary.
  • rope_base (int, default 10000) — Nilai theta default yang digunakan saat membuat RoPE.
  • rope_scaling (dict, opsional) — Faktor penskalaan untuk RoPE. Harus berisi short_factor dan long_factor.
  • pos_embed_max_size (int, default 192) — Ukuran maksimum dari positional embeddings.
  • time_step_dim (int, default 256) — Dimensi output dari embedding timestep.
  • flip_sin_to_cos (bool, default True) — Apakah akan menukar sin dan cos pada positional embeddings saat menyiapkan timestep embeddings.
  • downscale_freq_shift (int, default 0) — Pergeseran frekuensi yang digunakan saat menurunkan skala (downscaling) embedding timestep.
  • timestep_activation_fn (str, default silu) — Fungsi aktivasi yang digunakan untuk embedding timestep.

Model Transformer yang diperkenalkan dalam OmniGen (https://huggingface.co/papers/2409.11340).

forward

< >

( hidden_states: Tensortimestep: typing.Union[int, float, torch.FloatTensor]input_ids: Tensorinput_img_latents: list[torch.Tensor]input_image_sizes: dict[int, list[int]]attention_mask: Tensorposition_ids: Tensorreturn_dict: bool = True ) → ~models.transformer_2d.Transformer2DModelOutput or tuple

Parameter

  • hidden_states (torch.Tensor dengan bentuk (batch_size, in_channels, height, width)) — hidden_states masukan.
  • timestep (torch.LongTensor) — Digunakan untuk menunjukkan langkah denoising.
  • input_ids (torch.Tensor) — ID token teks multimodal yang digunakan sebagai kondisioning.
  • input_img_latents (list dari torch.Tensor) — Daftar latens untuk gambar input yang digunakan sebagai kondisioning.
  • input_image_sizes (dict dari int ke list dari int) — Pemetaan dari indeks sampel ke posisi tempat embedding gambar input harus ditempatkan dalam urutan kondisioning.
  • attention_mask (torch.Tensor) — Attention mask untuk urutan multimodal gabungan.
  • position_ids (torch.Tensor) — ID posisi yang digunakan untuk menghitung embedding posisi.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan ~models.transformer_2d.Transformer2DModelOutput alih-alih tuple biasa.

Mengembalikan

~models.transformer_2d.Transformer2DModelOutput atau tuple

Jika return_dict bernilai True, sebuah ~models.transformer_2d.Transformer2DModelOutput akan dikembalikan, selain itu sebuah tuple biasa akan dikembalikan.

Metode forward dari OmniGenTransformer2DModel.

Update on GitHub