Diffusers documentation

Flux3Transformer2DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Flux3Transformer2DModel

FLUX.3の画像類似データ向けのTransformerモデルで、テキストから画像への生成および画像から画像への生成に対応しています。3つのトークンモードが1つの結合シーケンスを共有します。それは、ノイズ付き画像トークン、VAEエンコードされた参照画像トークン、およびテキストコンテキストです。各モードはまず、そのモード固有のTransformerブロックを通過し、その後、モードが連結されて結合単一ブロックを通過し、画像トークンが出力層を通過します。タイムステップはトークンごとに設定されます。画像トークンはフロータイムステップを持ち、参照トークンとテキストコンテキストは0に設定されます。

import torch
from diffusers import Flux3Transformer2DModel

transformer = Flux3Transformer2DModel.from_pretrained(
    "black-forest-labs/flux-3-image-klein-base", subfolder="transformer", dtype=torch.bfloat16
)

Flux3Transformer2DModel

クラス diffusers.Flux3Transformer2DModel

< >

( in_channels: int = 128cond_in_channels: int = 128num_layers: int = 5num_single_layers: int = 28attention_head_dim: int = 128num_attention_heads: int = 24joint_attention_dim: int = 20480timestep_channels: int = 256mlp_ratio: float = 3.0axes_dims_rope: tuple[int, ...] = (32, 32, 32, 32)rope_theta: int = 10000eps: float = 1e-06flow_map: bool = False )

パラメータ

  • in_channels (int、デフォルトは 128) — 画像トークンのチャネル幅(パックされた VAE 潜在変数、latent_channels * 4)。
  • cond_in_channels (int、デフォルトは 128) — 参照画像トークンのチャネル幅。
  • num_layers (int、デフォルトは 5) — モードごとの Transformer ブロックの数です。
  • num_single_layers (int、デフォルトは28) — ジョイント単一トランスフォーマーブロックの数です。
  • attention_head_dim (int, デフォルトは 128) — 各アテンションヘッドに使用する次元数です。
  • num_attention_heads (int、デフォルトは 24) — 使用するアテンションヘッドの数です。
  • joint_attention_dim (int、デフォルト値は 20480) — encoder_hidden_states(スタックされた Qwen3-VL の隠れ状態)の埋め込み/チャネル次元です。
  • timestep_channels (int、デフォルトは256) — 正弦波タイムステップ埋め込みのチャネル数です。
  • mlp_ratio (float、デフォルト値は 3.0) — フィードフォワードサブブロックの拡張比率です。
  • axes_dims_rope (tuple[int]、デフォルトは (32, 32, 32, 32)) — (t, h, w, l) の各位置軸に対して、回転位置埋め込みに使用する次元数です。
  • rope_theta (int、デフォルトは 10000) — 回転位置埋め込みのベース周波数です。
  • eps (float、デフォルトは 1e-6) — Layer Norm および QK Norm の epsilon 値です。
  • flow_map (bool、デフォルトはFalse) — モデルがフローマップ(ステップ蒸留済み)かどうかを指定します。target_timestep_embedderを追加し、forward pass でtarget_timestepを必要とします。

FLUX.3でテキストから画像へ、および画像から画像への生成のために導入されたTransformerモデル。

3つのトークンモードが1つの結合シーケンスを共有します。それは、ノイズ付き画像トークン(hidden_states)、任意のVAEエンコードされた参照画像トークン(image_cond_hidden_states)、およびテキストコンテキスト(encoder_hidden_states)です。各モードはまず、それぞれのモード固有のトランスフォーマーブロック(画像モードにはmode_blocks、テキストコンテキストにはtxt_mode_blocks)を通過し、その後、テキストコンテキストとアクティブな画像モードが結合単一ブロックのために連結されます。出力レイヤーを通過するのは画像トークンのみです。モジュレーションはモードごとに適用されます。画像トークンはフロータイムステップによってモジュレートされ、参照画像トークンとテキストコンテキストはタイムステップ0によってモジュレートされます。フローマップチェックポイント(flow_map=True、ステップ蒸留モデル)では、各デノイジングステップでジャンプするタイムステップが埋め込まれ、すべてのモードのモジュレーションに追加されます。

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: Tensorimg_ids: Tensortxt_ids: Tensorimage_cond_hidden_states: typing.Optional[torch.Tensor] = Noneimage_cond_ids: typing.Optional[torch.Tensor] = Nonetarget_timestep: typing.Optional[torch.Tensor] = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )

パラメータ

  • hidden_states (torch.Tensor、形状 (batch_size, image_seq_len, in_channels)) — ノイズが加えられた画像の潜在トークン。
  • encoder_hidden_states (torch.Tensor、shape (batch_size, text_seq_len, joint_attention_dim)) — テキストコンテキスト埋め込み(スタックされた Qwen3-VL の隠れ状態)。
  • timestep (torch.Tensor、shape (batch_size,)) — 画像トークンの [0, 1] における Flow timestep です。参照画像トークンとテキストコンテキストは timestep 0 に配置されます。
  • img_ids (torch.Tensor、形状 (image_seq_len, 4)) — 画像トークンの位置 ID (t, h, w, l)。回転位置埋め込みに使用され、バッチ内のすべてのサンプルで共有されます。
  • txt_ids (torch.Tensor、形状 (text_seq_len, 4)) — テキストコンテキストトークンの位置IDです。
  • image_cond_hidden_states (torch.Tensor、形状 (batch_size, cond_seq_len, cond_in_channels)、任意) — VAEエンコードされた参照画像トークン(クリーンな条件付けコンテンツ、画像から画像への生成用)。
  • image_cond_ids (torch.Tensor、形状 (cond_seq_len, 4)、任意) — 参照画像トークンの位置 ID。image_cond_hidden_states と併せて指定する必要があります。
  • target_timestep (torch.Tensor、shape (batch_size,)、任意) — 現在のデノイジングステップがジャンプする、[0, 1] 範囲の Flow timestep です。flow-map モデル (flow_map=True) でのみ必要とされます。
  • attention_kwargs (dict、省略可) — 指定された場合、scale エントリがこの forward pass における LoRA レイヤーをスケーリングする kwargs 辞書。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく ~models.transformer_2d.Transformer2DModelOutput を返すかどうか。

Flux3Transformer2DModel の forward メソッドです。

Transformer2DModelOutput

クラス diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

パラメータ

  • sample (torch.Tensor、形状 (batch_size, num_channels, height, width)、または Transformer2DModel が離散型の場合 (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states 入力を条件とする隠れ状態の出力です。離散型の場合、ノイズ除去されていない潜在ピクセルの確率分布を返します。

Transformer2DModelの出力です。

Update on GitHub