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

نموذج Transformer يقبل تعليمات متعددة الوسائط لتوليد صور لـ OmniGen.

ملخص الورقة البحثية هو:

أدى ظهور نماذج اللغة الكبيرة (LLMs) إلى توحيد مهام توليد اللغة وقلب موازين التفاعل بين الإنسان والآلة. ومع ذلك، في مجال توليد الصور، لا يزال النموذج الموحّد القادر على التعامل مع مهام متنوعة ضمن إطار عمل واحد غير مستكشف إلى حد كبير. في هذا العمل، نعرّف OmniGen، وهو نموذج انتشار جديد لتوليد الصور الموحّد. يتسم OmniGen بالخصائص التالية: 1) التوحيد: لا يُظهر OmniGen قدرات توليد الصور من النص فحسب، بل يدعم بشكل جوهري مهامًا لاحقة متنوعة، مثل تحرير الصور، والتوليد الموجَّه بالموضوع، والتوليد الشرطي البصري. 2) البساطة: هيكل OmniGen مبسّط للغاية، مما يلغي الحاجة إلى إضافات خارجية. علاوة على ذلك، مقارنةً بنماذج الانتشار الحالية، فهو أكثر سهولة في الاستخدام، ويمكنه إكمال المهام المعقدة من البداية إلى النهاية عبر التعليمات دون الحاجة إلى خطوات وسيطة إضافية، مما يبسّط بشكل كبير سير عمل توليد الصور. 3) نقل المعرفة: بفضل التعلّم بصيغة موحّدة، ينقل OmniGen المعرفة بفعالية عبر مهام مختلفة، ويتعامل مع المهام والمجالات غير المرئية، ويعرض قدرات جديدة. كما نستكشف قدرات الاستدلال في النموذج والتطبيقات المحتملة لآلية سلسلة الأفكار. يمثل هذا العمل المحاولة الأولى لنموذج توليد صور عام، وسننشر مواردنا على https://github.com/VectorSpaceLab/OmniGen لتعزيز التطورات المستقبلية.

import torch
from diffusers import OmniGenTransformer2DModel

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

OmniGenTransformer2DModel

فئة 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' )

المعاملات

  • in_channels (int)، القيمة الافتراضية 4) — عدد القنوات في المدخلات.
  • patch_size (int، القيمة الافتراضية 2) — حجم البقع المكانية المستخدمة في طبقة تضمين البقع.
  • hidden_size (int، القيمة الافتراضية 3072) — أبعاد الطبقات المخفية في النموذج.
  • rms_norm_eps (float، القيمة الافتراضية 1e-5) — قيمة Eps لطبقة RMSNorm.
  • num_attention_heads (int، القيمة الافتراضية 32) — عدد الرؤوس المستخدمة في الانتباه متعدد الرؤوس.
  • num_key_value_heads (int، القيمة الافتراضية 32) — عدد الرؤوس المستخدمة للمفاتيح والقيم في الانتباه متعدد الرؤوس.
  • intermediate_size (int، القيمة الافتراضية 8192) — بعد طبقة الإخفاء في طبقات FeedForward.
  • num_layers (int، الافتراضي 32) — عدد طبقات كتل التحويل (transformer blocks) المستخدمة.
  • pad_token_id (int، القيمة الافتراضية 32000) — معرّف رمز الحشو.
  • vocab_size (int، الافتراضي 32064) — حجم مفردات قاموس التضمين.
  • rope_base (int، الافتراضي 10000) — قيمة ثيتا الافتراضية المستخدمة عند إنشاء RoPE.
  • rope_scaling (dict, اختياري) — معاملات التوسيع لـ RoPE. يجب أن يحتوي على short_factor وlong_factor.
  • pos_embed_max_size (int، القيمة الافتراضية 192) — الحد الأقصى لحجم التضمينات الموضعية.
  • time_step_dim (int، الافتراضي 256) — البُعد الناتج لتضمينات خطوة الزمن.
  • flip_sin_to_cos (bool، الافتراضي True) — ما إذا كان يجب عكس sin و cos في التضمينات الموضعية عند إعداد تضمينات خطوة الزمن.
  • downscale_freq_shift (int، القيمة الافتراضية 0) — إزاحة التردد المستخدمة عند تصغير تضمينات خطوات الزمن.
  • timestep_activation_fn (str، الافتراضي silu) — دالة التنشيط المستخدمة لتضمينات خطوة الزمن.

نموذج Transformer الذي تم تقديمه في OmniGen (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

المعاملات

  • hidden_states (torch.Tensor من الشكل (batch_size, in_channels, height, width)) — مدخلات hidden_states.
  • timestep (torch.LongTensor) — يُستخدم للإشارة إلى خطوة إزالة الضوضاء.
  • input_ids (torch.Tensor) — معرّفات رموز النص متعددة الوسائط المستخدمة كشرط.
  • input_img_latents (list of torch.Tensor) — قائمة من المتغيرات الكامنة (latents) للصور المدخلة المستخدمة كشرط (conditioning).
  • input_image_sizes (dict من int إلى list من int) — خريطة من فهرس العينة إلى المواضع التي يجب وضع تضمينات صور الإدخال فيها ضمن تسلسل الشرط.
  • attention_mask (torch.Tensor) — قناع الانتباه (Attention mask) للتسلسل متعدد الوسائط المشترك.
  • position_ids (torch.Tensor) — معرّفات المواقع المستخدمة لحساب التضمينات الموضعية.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~models.transformer_2d.Transformer2DModelOutput بدلاً من tuple عادي.

يعيد

~models.transformer_2d.Transformer2DModelOutput أو tuple

إذا كان return_dict صحيحًا، يُعاد ~models.transformer_2d.Transformer2DModelOutput، وإلا فإنه يُعاد tuple عادي.

طريقة OmniGenTransformer2DModel الأمامية.

Update on GitHub