Diffusers documentation

Flux3Transformer2DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Flux3Transformer2DModel

FLUX.3의 이미지형 데이터용 Transformer 모델로, 텍스트-이미지 생성 및 이미지-이미지 생성에 사용됩니다. 세 가지 토큰 모드가 하나의 결합된 시퀀스를 공유합니다: 노이즈 이미지 토큰, 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 = (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) — 연결된 단일 transformer 블록의 수입니다.
  • attention_head_dim (int, 기본값 128) — 각 attention head에 사용할 차원의 수입니다.
  • num_attention_heads (int, 기본값 24) — 사용할 attention head의 수입니다.
  • joint_attention_dim (int, 기본값 20480) — encoder_hidden_states의 임베딩/채널 차원(스택된 Qwen3-VL 히든 상태).
  • timestep_channels (int, 기본값 256) — 사인oidal timestep 임베딩의 채널 수입니다.
  • 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) — 레이어 노름과 QK 노름의 epsilon 값입니다.
  • flow_map (bool, 기본값 False) — 모델이 flow map(단계 증류)인지 여부입니다. target_timestep_embedder를 추가하고 forward pass에서 target_timestep를 요구합니다.

텍스트-이미지 생성 및 이미지-이미지 생성을 위해 FLUX.3에 도입된 Transformer 모델.

세 가지 토큰 모드가 하나의 결합된 시퀀스를 공유합니다: 노이즈 이미지 토큰(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, shape (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, shape (image_seq_len, 4)) — 이미지 토큰의 위치 ID (t, h, w, l)입니다. 회전 위치 임베딩(rotary positional embeddings)에 사용되며 배치 내 모든 샘플에서 공유됩니다.
  • txt_ids (torch.Tensor, shape (text_seq_len, 4)) — 텍스트 컨텍스트 토큰의 위치 ID입니다.
  • image_cond_hidden_states (torch.Tensor, shape (batch_size, cond_seq_len, cond_in_channels), 선택 사항) — VAE로 인코딩된 참조 이미지 토큰(이미지-대-이미지 생성을 위한 깨끗한 조건부 콘텐츠).
  • image_cond_ids (torch.Tensor, shape (cond_seq_len, 4), 선택 사항) — 참조 이미지 토큰의 위치 ID입니다. image_cond_hidden_states와 함께 사용해야 합니다.
  • target_timestep (torch.Tensor, shape (batch_size,), 선택 사항) — 현재 denoising 단계가 점프하는 [0, 1] 범위의 Flow timestep입니다. flow-map 모델(flow_map=True)에서만 필요합니다.
  • attention_kwargs (dict, 선택 사항) — 지정된 경우, scale 항목이 이 forward pass의 LoRA 레이어를 스케일링하는 kwargs 사전입니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 단순 tuple 대신 ~models.transformer_2d.Transformer2DModelOutput를 반환할지 여부.

Flux3Transformer2DModel의 forward 메서드입니다.

Transformer2DModelOutput

클래스 diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

매개변수

  • sample (torch.Tensor, shape (batch_size, num_channels, height, width) 또는 Transformer2DModel이 discrete인 경우 (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states 입력에 조건부인 hidden states 출력입니다. discrete인 경우, 노이즈가 제거된 latent 픽셀에 대한 확률 분포를 반환합니다.

Transformer2DModel의 출력입니다.

Update on GitHub