Diffusers 文件
OmniGenTransformer2D模型
並獲得增強的文件體驗
開始使用
OmniGenTransformer2D模型
一個 Transformer 模型,接受多模態指令以生成用於 OmniGen 的影像。
論文摘要如下:
大型語言模型 (LLM) 的出現統一了語言生成任務,並徹底改變了人機互動。然而,在影像生成領域,一個能夠在一個框架內處理各種任務的統一模型在很大程度上仍未被探索。在這項工作中,我們引入了 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", torch_dtype=torch.bfloat16)
OmniGenTransformer2D模型
class diffusers.OmniGenTransformer2D模型
< 原始碼 >( in_channels: int = 4 patch_size: int = 2 hidden_size: int = 3072 rms_norm_eps: float = 1e-05 num_attention_heads: int = 32 num_key_value_heads: int = 32 intermediate_size: int = 8192 num_layers: int = 32 pad_token_id: int = 32000 vocab_size: int = 32064 max_position_embeddings: int = 131072 original_max_position_embeddings: int = 4096 rope_base: int = 10000 rope_scaling: typing.Dict = None pos_embed_max_size: int = 192 time_step_dim: int = 256 flip_sin_to_cos: bool = True downscale_freq_shift: int = 0 timestep_activation_fn: str = 'silu' )
引數
- in_channels (
int
, 預設為4
) — 輸入中的通道數。 - patch_size (
int
, 預設為2
) — 補丁嵌入層中使用的空間補丁大小。 - hidden_size (
int
, 預設為3072
) — 模型中隱藏層的維度。 - rms_norm_eps (
float
, 預設為1e-5
) — RMSNorm 層的 Eps。 - num_attention_heads (
int
, 預設為32
) — 用於多頭注意力的頭數。 - num_key_value_heads (
int
, 預設為32
) — 用於多頭注意力中鍵和值的頭數。 - intermediate_size (
int
, 預設為8192
) — FeedForward 層中隱藏層的維度。 - num_layers (
int
, 預設為32
) — 要使用的 Transformer 塊層數。 - pad_token_id (
int
, 預設為32000
) — 填充令牌的 ID。 - vocab_size (
int
, 預設為32064
) — 嵌入詞彙表的詞彙量大小。 - rope_base (
int
, 預設為10000
) — 建立 RoPE 時使用的預設 theta 值。 - 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
) — 用於時間步嵌入的啟用函式。
OmniGen 中引入的 Transformer 模型(https://huggingface.co/papers/2409.11340)。