Diffusers documentation
Flux3Transformer2DModel
Flux3Transformer2DModel
نموذج Transformer لبيانات تشبه الصور من FLUX.3، لتوليد الصور من النص وتوليد الصور من الصور. تتشارك ثلاثة أوضاع رموز تسلسلًا مشتركًا واحدًا: رموز الصورة الضجيجية، ورموز الصورة المرجعية المُرمّزة بواسطة 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
< 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 )
المعاملات
- in_channels (
int، القيمة الافتراضية128) — عرض قنوات رموز الصورة (المتغيرات الكامنة المعبأة من VAE،latent_channels * 4). - cond_in_channels (
int، القيمة الافتراضية128) — عرض القنوات لرموز صورة المرجع. - num_layers (
int، القيمة الافتراضية5) — عدد كتل التحويل (transformer blocks) لكل نمط. - num_single_layers (
int، القيمة الافتراضية28) — عدد كتل التحوّل المفردة المشتركة. - attention_head_dim (
int، القيمة الافتراضية128) — عدد الأبعاد المستخدمة لكل رأس انتباه. - num_attention_heads (
int، القيمة الافتراضية24) — عدد رؤوس الانتباه (attention heads) المستخدمة. - 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 norms) وطبقات تطبيع QK. - flow_map (
bool، القيمة الافتراضيةFalse) — ما إذا كان النموذج خريطة تدفق (مُقطّرة على مستوى الخطوات): يضيفtarget_timestep_embedderويتطلبtarget_timestepفي مسار الأمامي.
نموذج Transformer الذي تم تقديمه في FLUX.3 لتوليد الصور من النص وتحويل الصور إلى صور.
تشارك ثلاثة أوضاع للرموز تسلسلًا مشتركًا واحدًا: رموز الصورة الضجيجية (hidden_states)، ورموز صورة المرجع الاختيارية المُرمَّزة بواسطة VAE (image_cond_hidden_states)، وسياق النص (encoder_hidden_states). يمرّ كل وضع أولًا عبر كتل التحوّل الخاصة بالوضع (mode_blocks لأوضاع الصورة، وtxt_mode_blocks لسياق النص)، ثم يُدمج سياق النص مع أوضاع الصورة النشطة للكتل المفردة المشتركة، ولا تمرّ رموز الصورة فقط عبر طبقات الإخراج. التعديل (Modulation) يتم لكل وضع على حدة: تُعدَّل رموز الصورة بخطوة الزمن (timestep) للتدفق، بينما تُعدَّل رموز صورة المرجع وسياق النص بخطوة الزمن 0. يُضمّن نقطة التفتيش الخاصة بخريطة التدفق (flow_map=True، وهي النماذج المُقطَّرة على مستوى الخطوة) خطوة الزمن التي يقفز إليها كل خطوة إزالة ضجيج، ويضيفها إلى تعديل كل وضع.
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 )
المعاملات
- hidden_states (
torch.Tensorمن الشكل(batch_size, image_seq_len, in_channels)) — رموز الكامنة للصورة الملوثة. - encoder_hidden_states (
torch.Tensorمن الشكل(batch_size, text_seq_len, joint_attention_dim)) — تضمينات سياق النص (حالات مخفية مكدسة من Qwen3-VL). - timestep (
torch.Tensorمن الشكل(batch_size,)) — خطوة التدفق في[0, 1]لرموز الصورة. تتواجد رموز الصورة المرجعية وسياق النص عند خطوة0. - img_ids (
torch.Tensorمن الشكل(image_seq_len, 4)) — معرّفات المواقع(t, h, w, l)لرموز الصورة، وتُستخدم للتضمينات الموضعية الدوّارية، وهي مشتركة بين جميع العينات في الدفعة. - txt_ids (
torch.Tensorمن الشكل(text_seq_len, 4)) — معرّفات المواضع لرموز سياق النص. - image_cond_hidden_states (
torch.Tensorمن الشكل(batch_size, cond_seq_len, cond_in_channels)، اختياري) — رموز صورة مرجعية مُرمّزة بواسطة VAE (محتوى تكييف نظيف، لتوليد صورة من صورة). - image_cond_ids (
torch.Tensorمن الشكل(cond_seq_len, 4)، اختياري) — معرّفات المواضع لرموز الصورة المرجعية. مطلوب معimage_cond_hidden_states. - target_timestep (
torch.Tensorمن الشكل(batch_size,)، اختياري) — خطوة التدفق في[0, 1]التي تقفز إليها خطوة إزالة الضوضاء الحالية. مطلوب من قبل نموذج خريطة التدفق (flow_map=True) فقط، ولا يُطلب من غيره. - attention_kwargs (
dict، اختياري) — قاموس kwargs يُقيّم طبقات LoRA لهذا المرور الأمامي إذا تم تحديد مدخلscaleفيه. - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع~models.transformer_2d.Transformer2DModelOutputبدلاً من tuple عادي.
طريقة Flux3Transformer2DModel الأمامية.
Transformer2DModelOutput
فئة diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
المعاملات
- sample (
torch.Tensorمن الشكل(batch_size, num_channels, height, width)أو(batch size, num_vector_embeds - 1, num_latent_pixels)إذا كان Transformer2DModel منفصلاً) — مخرجات الحالات المخفية المشروطة على مدخلencoder_hidden_states. إذا كان منفصلاً، يعيد توزيعات الاحتمال للبكسلات الكامنة غير الملوثة.
مخرجات Transformer2DModel.