# Flux2Transformer2DModel

[Flux2](https://hf.co/black-forest-labs/FLUX.2-dev)からの画像類似データ向けのTransformerモデル。

## Flux2Transformer2DModel[[diffusers.Flux2Transformer2DModel]]

#### diffusers.Flux2Transformer2DModel[[diffusers.Flux2Transformer2DModel]]

```python
diffusers.Flux2Transformer2DModel(patch_size: int = 1, in_channels: int = 128, out_channels: int | None = None, num_layers: int = 8, num_single_layers: int = 48, attention_head_dim: int = 128, num_attention_heads: int = 48, joint_attention_dim: int = 15360, timestep_guidance_channels: int = 256, mlp_ratio: float = 3.0, axes_dims_rope: tuple[int, ...] = (32, 32, 32, 32), rope_theta: int = 2000, eps: float = 1e-06, guidance_embeds: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_flux2.py#L1059)

**パラメータ:**

patch_size (`int`、デフォルトは`1`) : 入力データを小さなパッチに変換するためのパッチサイズ。

in_channels (`int`、デフォルトは`128`) : 入力におけるチャネル数。

out_channels (`int`、*任意*、デフォルトは `None`) : 出力のチャネル数です。指定しない場合、デフォルトで `in_channels` になります。

num_layers (`int`、デフォルトは`8`) : 使用するデュアルストリームDiTブロックの層数。

num_single_layers (`int`、デフォルトは`48`) : 使用する単一ストリームDiTブロックの層数。

attention_head_dim (`int`、デフォルトは`128`) : 各アテンションヘッドに使用する次元数。

num_attention_heads (`int`、デフォルトは`48`) : 使用するアテンションヘッドの数。

joint_attention_dim (`int`、デフォルトは`15360`) : 結合アテンションに使用する次元数(`encoder_hidden_states`の埋め込み/チャネル次元)。

pooled_projection_dim (`int`、デフォルトは`768`) : プールされた投影に使用する次元数。

guidance_embeds (`bool`、デフォルトは`True`) : モデルのガイダンス蒸留版でガイダンス埋め込みを使用するかどうか。

axes_dims_rope (`tuple[int]`、デフォルトは`(32, 32, 32, 32)`) : rotary positional embeddings に使用する次元数。

Flux 2 で導入された Transformer モデル。

参考: https://blackforestlabs.ai/announcing-black-forest-labs/

#### forward[[diffusers.Flux2Transformer2DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, timestep: LongTensor = None, img_ids: Tensor = None, txt_ids: Tensor = None, guidance: Tensor = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, kv_cache: Flux2KVCache | None = None, kv_cache_mode: str | None = None, num_ref_tokens: int = 0, ref_fixed_timestep: float = 0.0)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_flux2.py#L1225)

**パラメータ:**

hidden_states (`torch.Tensor`、形状 `(batch_size, image_sequence_length, in_channels)`) : 入力 `hidden_states`。

encoder_hidden_states (`torch.Tensor`、shape `(batch_size, text_sequence_length, joint_attention_dim)`) : 使用する条件埋め込み（プロンプトなどの入力条件から計算される埋め込み）。

timestep (`torch.LongTensor`) : デノイジングステップを示すために使用されます。

img_ids (`torch.Tensor`) : 回転位置埋め込みを計算するために使用される画像の位置 ID。

txt_ids (`torch.Tensor`) : 回転位置埋め込みを計算するために使用されるテキストの位置 ID。

guidance (`torch.Tensor`, *任意*) : モデルのガイダンス蒸留版に使用されるガイダンススケール埋め込み。

joint_attention_kwargs (`dict`, *任意*) : 指定された場合、[diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) の `self.processor` で定義されている `AttentionProcessor` に渡される kwargs の辞書です。

return_dict (`bool`、*任意*、デフォルトは`True`) : プレーンなタプルではなく`~models.transformer_2d.Transformer2DModelOutput`を返すかどうか。

kv_cache (`Flux2KVCache`、*任意*) : 参照画像トークンの KV キャッシュ。`kv_cache_mode` が "extract" の場合、新しいキャッシュが作成されて返されます。"cached" の場合、提供されたキャッシュが使用され、アテンション時に参照 K/V が注入されます。

kv_cache_mode (`str`, *任意*) : "extract"（ref トークンを含む最初のステップ）または "cached"（キャッシュされた ref K/V を使用する後続のステップ）のいずれか。`None` の場合、KV キャッシングなしの標準的な forward pass が実行されます。

num_ref_tokens (`int`、デフォルトは`0`) : `hidden_states`の先頭に付加する参照画像トークンの数（`kv_cache_mode="extract"`の場合のみ使用）。

ref_fixed_timestep (`float`、デフォルトは `0.0`) : 参照トークンのモジュレーションに使用する固定タイムステップ（`kv_cache_mode="extract"` の場合のみ使用）。

**戻り値:**

`return_dict` が True の場合、`~models.transformer_2d.Transformer2DModelOutput` が返され、それ以外の場合は、最初の要素がサンプルテンソルである `tuple` が返されます。`kv_cache_mode="extract"` の場合、設定済みの `Flux2KVCache` も返されます。

[Flux2Transformer2DModel](/docs/diffusers/v0.43.0/ja/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)のforwardメソッドです。

## Flux2Transformer2DModelOutput[[diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput]]

#### diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput[[diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput]]

```python
diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput(sample: torch.Tensor, kv_cache: Flux2KVCache | None = None)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_flux2.py#L46)

**パラメータ:**

sample (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`) : `encoder_hidden_states` 入力を条件として出力される隠れ状態。

kv_cache (`Flux2KVCache`、*任意*) : 参照画像トークン用の設定済み KV キャッシュ。`kv_cache_mode="extract"` の場合のみ返されます。

[Flux2Transformer2DModel](/docs/diffusers/v0.43.0/ja/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)の出力です。

