Diffusers documentation

Ideogram4Transformer2DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Ideogram4Transformer2DModel

Ideogram 4からの画像類似データ向けのtransformerです。

Ideogram4Transformer2DModel

class diffusers.Ideogram4Transformer2DModel

< >

( in_channels: int = 128num_layers: int = 34attention_head_dim: int = 256num_attention_heads: int = 18intermediate_size: int = 12288adaln_dim: int = 512llm_features_dim: int = 53248rope_theta: int = 5000000mrope_section: tuple[int, int, int] = (24, 20, 20)norm_eps: float = 1e-05 )

パラメータ

  • in_channels (int、デフォルト値は 128)— パッチ化後の潜在チャネル数(ae_channels * patch_size ** 2)。
  • num_layers (int、デフォルト値は 34) — Transformer ブロックの数。
  • attention_head_dim (int、デフォルトは 256) — 各アテンションヘッドの次元数です。隠れ層の総サイズは attention_head_dim * num_attention_heads になります。
  • num_attention_heads (int、デフォルト値は 18) — アテンションヘッドの数。
  • intermediate_size (int、デフォルト値: 12288) — 各ブロック内の SwiGLU MLP で使用されるフィードフォワードの隠れ層サイズ。
  • adaln_dim (int, デフォルト値: 512) — AdaLN 変調によって消費される条件ベクトルの次元数。
  • llm_features_dim (int、デフォルト値は 53248) — モデルに投入されるトークンごとのテキスト特徴量の次元数(通常、テキストエンコーダーの複数層の隠れ状態の連結です)。
  • rope_theta (int、デフォルト値: 5_000_000) — マルチ軸回転位置埋め込みで使用するベース値です。
  • mrope_section (tuple[int, int, int]、デフォルトは (24, 20, 20)) — MRoPE の (t, h, w) 各軸に割り当てられる周波数の数です。
  • norm_eps (float、デフォルト値は 1e-5) — transformer ブロック内の RMSNorm モジュールで使用する Epsilon 値。

Ideogram 4 パイプラインで使用される flow-matching transformer バックボーン。

Transformer は、マルチモーダルなテキストエンコーダーによって生成されるテキスト条件付けトークンと、パッチ化された画像潜在変数を含む単一のパックシーケンスに対して動作します。トークンごとのインジケーターがこれら 2 つの役割を区別し、segment_ids から導出されるブロック対角アテンションマスクにより、パックされたバッチ内で各サンプルが自分自身にのみアテンションを行うことが制限されます。

forward

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorposition_ids: Tensorsegment_ids: Tensorindicator: Tensorattention_kwargs: dict | None = Nonereturn_dict: bool = True )

パラメータ

  • hidden_states (torch.Tensor、shape (batch_size, sequence_length, in_channels)) — パッチ化されたノイズ付き画像トークンのパックされたシーケンスです。画像以外の位置は内部でマスクされます。
  • timestep (torch.Tensor、shape (batch_size,) または (batch_size, sequence_length)) — [0, 1] における Flow-matching の時間 (0 は純粋なノイズ、1 はクリーンなデータ)。
  • encoder_hidden_states (torch.Tensor、形状 (batch_size, sequence_length, llm_features_dim)) — トークンごとのテキスト条件付け特徴量です。テキスト以外の位置は内部でマスクされます。
  • position_ids (torch.Tensor、形状 (batch_size, sequence_length, 3)) — (t, h, w) 座標。マルチ軸 RoPE によって消費されます。
  • segment_ids (torch.Tensor、shape (batch_size, sequence_length)) — パックされたバッチ内のトークンごとのサンプル ID。segment_id が同じ位置同士は、相互にアテンションを行います。
  • indicator (torch.Tensor、形状 (batch_size, sequence_length)) — トークンごとの役割: LLM_TOKEN_INDICATOR (テキスト) または OUTPUT_IMAGE_INDICATOR (画像)。
  • attention_kwargs (dict、省略可) — attention processor に渡される kwargs の辞書です。"scale" エントリは、PEFT バックエンドが有効な場合に LoRA の重みをスケーリングします。
  • return_dict (bool、任意、デフォルトは True) — True の場合、通常のタプルではなく Transformer2DModelOutput を返します。

パックされたシーケンスの画像トークン位置について、フローマッチングの速度を予測します。

Update on GitHub