Diffusers documentation
Flux3Transformer2DModel
Flux3Transformer2DModel
Một mô hình Transformer cho dữ liệu dạng ảnh từ FLUX.3, dùng cho việc tạo ảnh từ văn bản và tạo ảnh từ ảnh. Ba chế độ token chia sẻ một chuỗi liên hợp: các token ảnh nhiễu, các token ảnh tham chiếu được mã hóa bằng VAE và ngữ cảnh văn bản. Mỗi chế độ trước tiên đi qua các khối transformer riêng của chế độ đó, sau đó các chế độ được nối lại cho các khối đơn liên hợp, và các token ảnh đi qua các lớp đầu ra. Timesteps là theo từng token: các token ảnh mang flow timestep, trong khi các token tham chiếu và ngữ cảnh văn bản nằm ở 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
lớp diffusers.Flux3Transformer2DModel
< source >( 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 )
Tham số
- in_channels (
int, mặc định là128) — Độ rộng kênh của các token ảnh (các latents VAE đã đóng gói,latent_channels * 4). - cond_in_channels (
int, mặc định là128) — Độ rộng kênh của các token ảnh tham chiếu. - num_layers (
int, mặc định là5) — Số lượng khối transformer cho mỗi chế độ. - num_single_layers (
int, mặc định là28) — Số lượng khối transformer đơn ghép nối. - attention_head_dim (
int, mặc định là128) — Số chiều sử dụng cho mỗi đầu chú ý (attention head). - num_attention_heads (
int, mặc định là24) — Số lượng đầu attention cần sử dụng. - joint_attention_dim (
int, mặc định là20480) — Chiều embedding/kênh củaencoder_hidden_states(các hidden state của Qwen3-VL được xếp chồng). - timestep_channels (
int, mặc định là256) — Số lượng kênh của embedding bước thời gian hình sin. - mlp_ratio (
float, mặc định là3.0) — Tỷ lệ mở rộng của các khối con feedforward. - axes_dims_rope (
tuple[int], mặc định là(32, 32, 32, 32)) — Các chiều cần sử dụng cho các nhúng vị trí quay (rotary positional embeddings), theo từng trục vị trí(t, h, w, l). - rope_theta (
int, mặc định là10000) — Tần số cơ bản của các nhúng vị trí quay (rotary positional embeddings). - eps (
float, mặc định là1e-6) — Epsilon của các layer norms và QK norms. - flow_map (
bool, mặc định làFalse) — Xác định xem mô hình có phải là flow map (step-distilled) hay không: thêmtarget_timestep_embeddervà yêu cầutarget_timesteptrong bước forward.
Mô hình Transformer được giới thiệu trong FLUX.3 cho việc tạo ảnh từ văn bản và tạo ảnh từ ảnh.
Ba chế độ token chia sẻ một chuỗi liên hợp: các token ảnh nhiễu (hidden_states), các token ảnh tham chiếu tùy chọn được mã hóa bằng VAE (image_cond_hidden_states) và ngữ cảnh văn bản (encoder_hidden_states). Mỗi chế độ trước tiên đi qua các khối transformer riêng của chế độ đó (mode_blocks cho các chế độ ảnh, txt_mode_blocks cho ngữ cảnh văn bản), sau đó ngữ cảnh văn bản và các chế độ ảnh đang hoạt động được nối với nhau cho các khối đơn liên hợp, và chỉ các token ảnh đi qua các lớp đầu ra. Sự điều biến là theo từng chế độ: các token ảnh được điều biến bởi bước thời gian của luồng, các token ảnh tham chiếu và ngữ cảnh văn bản được điều biến bởi bước thời gian 0. Một checkpoint flow-map (flow_map=True, các mô hình đã chưng cất theo bước) ngoài ra còn nhúng bước thời gian mà mỗi bước khử nhiễu nhảy tới và cộng nó vào sự điều biến của mọi chế độ.
forward
< source >( 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 )
Tham số
- hidden_states (
torch.Tensorcó hình dạng(batch_size, image_seq_len, in_channels)) — Các token tiềm ẩn của ảnh có nhiễu. - encoder_hidden_states (
torch.Tensorcó hình dạng(batch_size, text_seq_len, joint_attention_dim)) — Các embedding ngữ cảnh văn bản (các trạng thái ẩn Qwen3-VL được xếp chồng). - timestep (
torch.Tensorcó shape(batch_size,)) — Bước thời gian (timestep) của luồng trong khoảng[0, 1]cho các token ảnh. Các token ảnh tham chiếu và ngữ cảnh văn bản nằm ở timestep0. - img_ids (
torch.Tensorcó hình dạng(image_seq_len, 4)) — Các id vị trí(t, h, w, l)của các token hình ảnh, được sử dụng cho các nhúng vị trí quay (rotary positional embeddings) và được chia sẻ bởi tất cả các mẫu trong batch. - txt_ids (
torch.Tensorcó hình dạng(text_seq_len, 4)) — Các id vị trí của các token ngữ cảnh văn bản. - image_cond_hidden_states (
torch.Tensorcó hình dạng(batch_size, cond_seq_len, cond_in_channels), tùy chọn) — Các token ảnh tham chiếu đã được mã hóa bởi VAE (nội dung điều kiện sạch, dùng cho tạo ảnh từ ảnh). - image_cond_ids (
torch.Tensorcó hình dạng(cond_seq_len, 4), tùy chọn) — Các id vị trí của các token ảnh tham chiếu. Bắt buộc khi sử dụng cùng vớiimage_cond_hidden_states. - target_timestep (
torch.Tensorcó shape(batch_size,), tuỳ chọn) — Bước thời gian (timestep) của flow trong[0, 1]mà bước khử nhiễu hiện tại sẽ nhảy tới. Bắt buộc và chỉ bắt buộc đối với mô hình flow-map (flow_map=True). - attention_kwargs (
dict, tùy chọn) — Một từ điển kwargs mà mụcscalecủa nó, nếu được chỉ định, sẽ điều chỉnh tỷ lệ các lớp LoRA cho bước truyền tiến này. - return_dict (
bool, tùy chọn, mặc định làTrue) — Có nên trả về một~models.transformer_2d.Transformer2DModelOutputthay vì một tuple thông thường hay không.
Phương thức forward của Flux3Transformer2DModel.
Transformer2DModelOutput
lớp diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Tham số
- sample (
torch.Tensorcó hình dạng(batch_size, num_channels, height, width)hoặc(batch size, num_vector_embeds - 1, num_latent_pixels)nếu Transformer2DModel là rời rạc) — Trạng thái ẩn đầu ra được điều kiện bởi đầu vàoencoder_hidden_states. Nếu là rời rạc, trả về các phân phối xác suất cho các pixel tiềm ẩn không nhiễu.
Đầu ra của Transformer2DModel.