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.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

OmniGenTransformer2DModel

OmniGen için görüntüler üretmek üzere çok modlu talimatları kabul eden bir Transformer modeli.

Makalenin özeti şudur:

Büyük Dil Modelleri'nin (LLM) ortaya çıkması, dil üretimi görevlerini birleştirmiş ve insan-makine etkileşimini devrim niteliğinde dönüştürmüştür. Ancak görüntü üretimi alanında, tek bir çerçeve içinde çeşitli görevleri ele alabilen birleşik bir model büyük ölçüde keşfedilmemiştir. Bu çalışmada, birleşik görüntü üretimi için yeni bir difüzyon modeli olan OmniGen'i tanıtıyoruz. OmniGen, aşağıdaki özelliklerle karakterize edilir: 1) Birleştirme: OmniGen yalnızca metinden görüntüye üretim yeteneklerini sergilemekle kalmaz, aynı zamanda görüntü düzenleme, nesne odaklı üretim ve görsel koşullu üretim gibi çeşitli aşağı akış görevlerini de doğal olarak destekler. 2) Sadelik: OmniGen'in mimarisi son derece basitleştirilmiştir ve ek eklentilere olan ihtiyacı ortadan kaldırır. Ayrıca, mevcut difüzyon modellerine kıyasla daha kullanıcı dostudur ve ek ara adımlara ihtiyaç duymadan, talimatlar yoluyla karmaşık görevleri uçtan uca tamamlayabilir; bu da görüntü üretim iş akışını büyük ölçüde basitleştirir. 3) Bilgi Transferi: Birleşik bir biçimde öğrenmeden faydalanarak OmniGen, farklı görevler arasında bilgiyi etkili bir şekilde aktarır, görülmemiş görevleri ve alanları yönetir ve yeni yetenekler sergiler. Ayrıca modelin akıl yürütme yeteneklerini ve chain-of-thought mekanizmasının potansiyel uygulamalarını da inceliyoruz. Bu çalışma, genel amaçlı bir görüntü üretim modeli için ilk denemeyi temsil etmektedir ve gelecekteki ilerlemeleri teşvik etmek için kaynaklarımızı https://github.com/VectorSpaceLab/OmniGen adresinde paylaşacağız.

import torch
from diffusers import OmniGenTransformer2DModel

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

OmniGenTransformer2DModel

sınıf 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' )

Parametreler

  • in_channels (int, varsayılan 4) — Girdideki kanal sayısı.
  • patch_size (int, varsayılan 2) — Patch gömme katmanında kullanılacak uzamsal yamaların boyutu.
  • hidden_size (int, varsayılan 3072) — Modeldeki gizli katmanların boyutluluğu.
  • rms_norm_eps (float, varsayılan 1e-5) — RMSNorm katmanı için Eps.
  • num_attention_heads (int, varsayılan 32) — Çok başlı dikkat (multi-head attention) için kullanılacak baş sayısı.
  • num_key_value_heads (int, varsayılan 32) — Çok başlı dikkat (multi-head attention) içinde anahtarlar ve değerler için kullanılacak baş sayısı.
  • intermediate_size (int, varsayılan 8192) — FeedForward katmanlarındaki gizli katmanın boyutu.
  • num_layers (int, varsayılan 32) — Kullanılacak transformer bloğu katman sayısı.
  • pad_token_id (int, varsayılan 32000) — Doldurma belirtecinin kimliği.
  • vocab_size (int, varsayılan 32064) — Gömme sözlüğünün sözlük boyutu.
  • rope_base (int, varsayılan 10000) — RoPE oluşturulurken kullanılacak varsayılan theta değeri.
  • rope_scaling (dict, isteğe bağlı) — RoPE için ölçekleme katsayıları. short_factor ve long_factor içermelidir.
  • pos_embed_max_size (int, varsayılan 192) — Konumsal gömme (positional embeddings) boyutunun maksimum değeri.
  • time_step_dim (int, varsayılan 256) — Zaman adımı gömme çıktısının boyutu.
  • flip_sin_to_cos (bool, varsayılan True) — Adım gömme (timestep embeddings) hazırlanırken konumsal gömme (positional embeddings) içindeki sin ve cos değerlerinin tersine çevrilip çevrilmeyeceğini belirtir.
  • downscale_freq_shift (int, varsayılan 0) — Zaman adımları gömme işlemlerini küçültürken kullanılacak frekans kaydırması.
  • timestep_activation_fn (str, varsayılan silu) — Zaman adımları gömme (embedding) için kullanılacak aktivasyon fonksiyonu.

OmniGen'de tanıtılan Transformer modeli (https://huggingface.co/papers/2409.11340).

forward

< >

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

Parametreler

  • hidden_states (torch.Tensor, şekli (batch_size, in_channels, height, width)) — Girdi hidden_states.
  • timestep (torch.LongTensor) — Gürültü azaltma adımını belirtmek için kullanılır.
  • input_ids (torch.Tensor) — Koşullama olarak kullanılan çok modlu metin token kimlikleri.
  • input_img_latents (list of torch.Tensor) — List of latents for input images used as conditioning.
  • input_image_sizes (dict of int to list of int) — Giriş görsel gömmelemelerinin koşullandırma dizisinde yerleştirilmesi gereken konumlara, örnek dizininden yapılan eşleme.
  • attention_mask (torch.Tensor) — Birleşik çok modlu dizgi için dikkat maskesi.
  • position_ids (torch.Tensor) — Konumsal gömme hesaplamalarında kullanılan konum kimlikleri.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~models.transformer_2d.Transformer2DModelOutput döndürülüp döndürülmemesi.

Dönüş değeri

~models.transformer_2d.Transformer2DModelOutput veya tuple

return_dict True ise, ~models.transformer_2d.Transformer2DModelOutput döndürülür, aksi takdirde düz bir tuple döndürülür.

OmniGenTransformer2DModel ileri yöntemi.

Update on GitHub