Diffusers documentation
Ideogram4Transformer2DModel
Ideogram4Transformer2DModel
Ideogram 4からの画像類似データ向けのtransformerです。
Ideogram4Transformer2DModel
class diffusers.Ideogram4Transformer2DModel
< source >( 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
< source >( 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 を返します。
パックされたシーケンスの画像トークン位置について、フローマッチングの速度を予測します。