Buckets:
OmniGenTransformer2DModel
OmniGenの画像生成に対応するマルチモーダル指示を受け取るTransformerモデルです。
論文の抄録は以下の通りです:
大規模言語モデル(LLM)の登場により、言語生成タスクが統合され、人間と機械のインタラクションは革命的な変化を遂げました。しかし、画像生成の分野では、単一のフレームワーク内で多様なタスクを処理できる統合モデルは、まだほとんど研究されていません。本稿では、統合画像生成のための新しい拡散モデルである OmniGen を紹介します。OmniGen は、以下の特性を備えています。1) 統合性: OmniGen はテキストから画像を生成する能力を示すだけでなく、画像編集、対象物駆動型生成、視覚的条件付き生成などの多様な下流タスクを本質的にサポートします。2) 簡素さ: OmniGen のアーキテクチャは大幅に簡素化されており、追加のプラグインは不要です。さらに、既存の拡散モデルと比較して、よりユーザーフレンドリーであり、追加の中間ステップを必要とせずに、指示によって複雑なタスクをエンドツーエンドで完了できるため、画像生成のワークフローを大幅に簡素化します。3) 知識の転移: 統合形式での学習の恩恵により、OmniGen は異なるタスク間で知識を効果的に転移し、未見のタスクやドメインを管理し、新たな能力を発揮します。また、モデルの推論能力と、思考連鎖(chain-of-thought)メカニズムの潜在的な応用についても検討します。本作業は、汎用画像生成モデルへの初の試みであり、今後の発展を促進するため、リソースを 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]]
diffusers.OmniGenTransformer2DModel[[diffusers.OmniGenTransformer2DModel]]
diffusers.OmniGenTransformer2DModel(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: 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) : padding トークンの 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 (https://huggingface.co/papers/2409.11340) で紹介された Transformer モデル。
forward[[diffusers.OmniGenTransformer2DModel.forward]]
forward(hidden_states: Tensor, timestep: typing.Union[int, float, torch.FloatTensor], input_ids: Tensor, input_img_latents: list[torch.Tensor], input_image_sizes: dict[int, list[int]], attention_mask: Tensor, position_ids: Tensor, return_dict: bool = True)
パラメータ:
hidden_states (torch.Tensor、形状 (batch_size, in_channels, height, width)) : 入力 hidden_states。
timestep (torch.LongTensor) : デノイジングステップを示すために使用されます。
input_ids (torch.Tensor) : 条件付けとして使用されるマルチモーダルなテキストトークンID。
input_img_latents (list of torch.Tensor) : 条件付けに使用される入力画像の潜在変数のリスト。
input_image_sizes (dict of int to list of int) : サンプルインデックスから、入力画像の埋め込みを条件付けシーケンス内のどの位置に配置すべきかを表すマッピング。
attention_mask (torch.Tensor) : 統合マルチモーダルシーケンス用のアテンションマスク。
position_ids (torch.Tensor) : 位置埋め込みを計算するために使用される位置 ID。
return_dict (bool、任意、デフォルトはTrue) : プレーンなタプルではなく~models.transformer_2d.Transformer2DModelOutputを返すかどうか。
戻り値: ~models.transformer_2d.Transformer2DModelOutput または tuple
return_dict が True の場合、~models.transformer_2d.Transformer2DModelOutput が返され、それ以外の場合は通常の tuple が返されます。
OmniGenTransformer2DModelのforwardメソッドです。
Xet Storage Details
- Size:
- 7.08 kB
- Xet hash:
- 00aaef7a8a3b440353c6facb8b54400969c651828db4344967ca79bc3b0e97f7
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.