Diffusers documentation
نموذج SD3 Transformer
نموذج SD3 Transformer
نموذج Transformer الذي تم تقديمه في Stable Diffusion 3. تكمن جديته في كتلة MMDiT transformer.
SD3Transformer2DModel
فئة diffusers.SD3Transformer2DModel
< source >( sample_size: int = 128patch_size: int = 2in_channels: int = 16num_layers: int = 18attention_head_dim: int = 64num_attention_heads: int = 18joint_attention_dim: int = 4096caption_projection_dim: int = 1152pooled_projection_dim: int = 2048out_channels: int = 16pos_embed_max_size: int = 96dual_attention_layers: tuple[int, ...] = ()qk_norm: str | None = None )
المعاملات
- sample_size (
int، القيمة الافتراضية128) — العرض/الارتفاع للكائنات الكامنة. يتم تثبيت هذا أثناء التدريب لأنه يُستخدم لتعلم عدد من تضمينات المواقع. - patch_size (
int، القيمة الافتراضية2) — حجم الباتش لتحويل البيانات المدخلة إلى باتشات صغيرة. - in_channels (
int)، القيمة الافتراضية16) — عدد قنوات الكمون في المدخلات. - num_layers (
int، القيمة الافتراضية18) — عدد طبقات كتل التحويل (transformer blocks) المستخدمة. - attention_head_dim (
int، القيمة الافتراضية64) — عدد القنوات في كل رأس. - num_attention_heads (
int، القيمة الافتراضية18) — عدد الرؤوس المستخدمة في الانتباه متعدد الرؤوس. - joint_attention_dim (
int، القيمة الافتراضية4096) — بعد التضمين (embedding dimension) المستخدم للانتباه المشترك بين النص والصورة. - caption_projection_dim (
int، القيمة الافتراضية1152) — بعد التضمين لتضمينات التسميات. - pooled_projection_dim (
int، القيمة الافتراضية2048) — بعد التضمين (embedding dimension) لإسقاطات النص المجمعة. - out_channels (
int، القيمة الافتراضية16) — عدد القنوات الكامنة في المخرجات. - pos_embed_max_size (
int، القيمة الافتراضية96) — الارتفاع/العرض الأقصى للاضمحلال الموضعي. - dual_attention_layers (
tuple[int, ...])، القيمة الافتراضية()) — عدد كتل التحويل ذات التدفق المزدوج المستخدمة. - qk_norm (
str، اختياري، القيمة الافتراضيةNone) — طريقة التطبيع المستخدمة للاستعلام والمفتاح في طبقة الانتباه. إذا كانتNone، فلا يُستخدم أي تطبيع.
نموذج Transformer الذي تم تقديمه في Stable Diffusion 3.
enable_forward_chunking
< source >( chunk_size: int | None = Nonedim: int = 0 )
المعاملات
- chunk_size (
int، اختياري) — حجم الدفعة (chunk size) لطبقات التقدّم الأمامي. إذا لم يُحدَّد، فسيتم تشغيل طبقة التقدّم الأمامي بشكل فردي على كل متجه (tensor) ذي بُعدdim. - dim (
int، اختياري، القيمة الافتراضية0) — البُعد الذي يجب تقسيم عملية الحساب الأمامي (feed-forward) عليه. اختر بين dim=0 (الحزمة) أو dim=1 (طول التسلسل).
يحدد معالج الانتباه لاستخدام تقطيع الأمامي.
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneblock_controlnet_hidden_states: list = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueskip_layers: list[int] | None = None )
المعاملات
- hidden_states (
torch.Tensorمن الشكل(batch size, channel, height, width)) — مدخلاتhidden_states. - encoder_hidden_states (
torch.Tensorمن الشكل(batch size, sequence_len, embed_dims)) — تضمينات شرطية (تضمينات محسوبة من الشروط المدخلة مثل الأوامر النصية) للاستخدام. - pooled_projections (
torch.Tensorمن الشكل(batch_size, projection_dim)) — تمثيلات مُسقطَة من تمثيلات شروط الإدخال. - timestep (
torch.LongTensor) — يُستخدم للإشارة إلى خطوة إزالة الضوضاء. - block_controlnet_hidden_states (
listoftorch.Tensor) — قائمة من المصفوفات التي إذا تم تحديدها تُضاف إلى بقايا كتل التحوّل. - joint_attention_kwargs (
dict، اختياري) — قاموس kwargs يُمرَّر إلىAttentionProcessorكما هو معرَّف تحتself.processorفي diffusers.models.attention_processor إذا تمَّ تحديده. - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع~models.transformer_2d.Transformer2DModelOutputبدلاً من tuple عادي. - skip_layers (
listofint, اختياري) — قائمة بمؤشرات الطبقات التي يجب تجاوزها أثناء المرور الأمامي.
طريقة SD3Transformer2DModel الأمامية.
يعطّل إسقاط QKV المدمج إذا كان مفعّلًا.
> هذه الواجهة البرمجية 🧪 تجريبية.