Diffusers documentation
QwenImageTransformer2DModel
QwenImageTransformer2DModel
モデルは、以下のコードスニペットで読み込むことができます。
from diffusers import QwenImageTransformer2DModel
transformer = QwenImageTransformer2DModel.from_pretrained("Qwen/QwenImage-20B", subfolder="transformer", dtype=torch.bfloat16)QwenImageTransformer2DModel
クラス diffusers.QwenImageTransformer2DModel
< source >( patch_size: int = 2in_channels: int = 64out_channels: int | None = 16num_layers: int = 60attention_head_dim: int = 128num_attention_heads: int = 24joint_attention_dim: int = 3584guidance_embeds: bool = Falseaxes_dims_rope: tuple = (16, 56, 56)zero_cond_t: bool = Falseuse_additional_t_cond: bool = Falseuse_layer3d_rope: bool = False )
パラメータ
- patch_size (
int、デフォルトは2) — 入力データを小さなパッチに変換するためのパッチサイズ。 - in_channels (
int、デフォルトは64) — 入力におけるチャネル数。 - out_channels (
int, 省略可、デフォルトはNone) — 出力のチャネル数です。指定しない場合、デフォルトでin_channelsになります。 - num_layers (
int、デフォルトは60) — 使用するdual stream DiTブロックの層数です。 - attention_head_dim (
int, デフォルトは128) — 各アテンションヘッドに使用する次元数です。 - num_attention_heads (
int、デフォルトは24) — 使用するアテンションヘッドの数です。 - joint_attention_dim (
int、デフォルトは3584) —encoder_hidden_statesの埋め込み/チャネル次元として、ジョイントアテンションに使用する次元数です。 - guidance_embeds (
bool、デフォルトはFalse) — モデルのガイダンス蒸留版に対してガイダンス埋め込みを使用するかどうかを指定します。 - axes_dims_rope (
tuple[int]、デフォルトは(16, 56, 56)) — 回転位置埋め込みに使用する次元です。
Qwenで導入されたTransformerモデル。
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensor = Noneencoder_hidden_states_mask: Tensor = Nonetimestep: LongTensor = Noneimg_shapes: list[tuple[int, int, int]] | None = Noneguidance: Tensor = Noneattention_kwargs: dict[str, typing.Any] | None = Nonecontrolnet_block_samples = Noneadditional_t_cond = Nonereturn_dict: bool = True )
パラメータ
- hidden_states (
torch.Tensor、形状(batch_size, image_sequence_length, in_channels)) — 入力となるhidden_states。 - encoder_hidden_states (
torch.Tensor、形状(batch_size, text_sequence_length, joint_attention_dim)) — 使用する条件埋め込み(プロンプトなどの入力条件から計算される埋め込み)。 - encoder_hidden_states_mask (
torch.Tensor、形状(batch_size, text_sequence_length)、任意) — エンコーダーの隠れ状態用のマスクです。有効なトークンには 1.0、パディングトークンには 0.0 が期待されます。アテンションプロセッサ内で、パディングトークンへのアテンションを防止するために使用されます。アテンション内で要素ごとに適用されるため、マスクは任意のパターン(連続する有効なトークンの後にパディングが続くパターンに限らず)を持つことができます。 - timestep (
torch.LongTensor) — デノイジングステップを示すために使用されます。 - img_shapes (
list[tuple[int, int, int]]、省略可) — RoPE の計算に使用する画像の形状。 - guidance (
torch.Tensor, 省略可) — 条件付き生成用のガイダンステンソル。 - attention_kwargs (
dict, 省略可) — 指定された場合、diffusers.models.attention_processor で定義されているself.processor内のAttentionProcessorに渡される kwargs 辞書です。 - controlnet_block_samples (任意) — transformer ブロックに追加する ControlNet ブロックのサンプル。
- additional_t_cond (
torch.Tensor, 任意) — タイムステップ埋め込みに追加される、追加のタイムステップ条件付けです。 - return_dict (
bool、任意、デフォルトはTrue) — プレーンなタプルではなく~models.transformer_2d.Transformer2DModelOutputを返すかどうか。
QwenTransformer2DModelのforwardメソッドです。
Transformer2DModelOutput
クラス diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( 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の出力です。