Diffusers documentation
NucleusMoE-Image
NucleusMoE-Image
NucleusMoE-Image هو نموذج لتوليد الصور من النص يجمع بين DiT أحادي التيار وطبقات Mixture-of-Experts للتقدم الأمامي، وانتباه متقاطع مع مشفر النص Qwen3-VL، ومجدول أويلر المنفصل لمطابقة التدفق.
تأكد من الاطلاع على دليل المجدولين لمعرفة كيفية استكشاف التوازن بين سرعة المجدول وجودة النتائج، واطّلع على قسم إعادة استخدام المكونات عبر خطوط الأنابيب لمعرفة كيفية تحميل نفس المكونات بكفاءة في خطوط أنابيب متعددة.
NucleusMoEImagePipeline
فئة diffusers.NucleusMoEImagePipeline
< source >( transformer: NucleusMoEImageTransformer2DModelscheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen3VLForConditionalGenerationprocessor: Qwen3VLProcessor )
المعاملات
- transformer (
NucleusMoEImageTransformer2DModel) — بنية Transformer الشرطية (MMDiT) لإزالة الضوضاء من الكامنات المُرمّزة للصورة. - scheduler (FlowMatchEulerDiscreteScheduler) —
جدول زمني يُستخدم بالاقتران مع
transformerلإزالة الضوضاء من كائنات الصورة المُرمّزة. - vae (AutoencoderKLQwenImage) — نموذج الترميز التبايني التلقائي (VAE) لتشفير الصور وفك تشفيرها إلى تمثيلات كامنة ومنها.
- text_encoder (
Qwen3VLForConditionalGeneration) — مُشفِّر النص لحساب تمثيلات الموجهات. - processor (
Qwen3VLProcessor) — معالج لتجزئة مدخلات النص.
خط أنابيب لتوليد الصور من النص باستخدام NucleusMoE.
تستخدم هذه المسار (Pipeline) نموذج DiT أحادي التيار (single-stream) مع طبقات تقدّم أمامي (feed-forward) من نوع مزيج الخبراء (Mixture-of-Experts)، وانتباه متقاطع (cross-attention) مع مُشفّر نصوص Qwen3-VL، ومجدول أويلر المنفصل (Euler discrete scheduler) المطابق للتدفق (flow-matching).
__call__
< source >( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Noneguidance_scale: float = 4.0height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50sigmas: list[float] | None = Nonenum_images_per_prompt: int = 1max_sequence_length: int | None = Nonereturn_index: int | None = Nonegenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → NucleusMoEImagePipelineOutput or tuple
المعاملات
- prompt (
strأوlist[str]، اختياري) — الموجّه أو الموجّهات التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمريرprompt_embeds. - negative_prompt (
strأوlist[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يُستخدم نص فارغ عندما يكونtrue_cfg_scale > 1. - guidance_scale (
float، اختياري، القيمة الافتراضية 4.0) — مقياس التوجيه الحر من التصنيف. القيم الأكبر من 1 تفعّل CFG. - return_index (
int, اختياري) — مؤشر الطبقة (Layer index) لمخرج مُشفِّر النص (text encoder) الذي سيُستخدم لتضمينات الموجه (prompt embeddings). - height (
int، اختياري، القيمة الافتراضية هيself.default_sample_size * self.vae_scale_factor) — ارتفاع الصورة المولّدة بالبكسل. - width (
int، اختياري، القيمة الافتراضيةself.default_sample_size * self.vae_scale_factor) — عرض الصورة المولدة بالبكسل. - num_inference_steps (
int، اختياري، القيمة الافتراضية 50) — عدد خطوات إزالة الضوضاء. - sigmas (
list[float]، اختياري) — قيم sigmas مخصصة لجدول إزالة الضوضاء. إذا لم تُعرَّف، يُستخدم جدول خطي. - num_images_per_prompt (
int، اختياري، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه. - generator (
torch.Generatorأوlist[torch.Generator]، اختياري) — مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا. - latents (
torch.Tensor، اختياري) — كائنات ضجيج مُولّدة مسبقًا تُستخدم كمدخلات لتوليد الصور. - prompt_embeds (
torch.Tensor، اختياري) — تضمينات نصية مُولّدة مسبقًا. - prompt_embeds_mask (
torch.Tensor، اختياري) — قناع الانتباه (Attention mask) لتضمينات النص المُولَّدة مسبقًا. - negative_prompt_embeds (
torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. - negative_prompt_embeds_mask (
torch.Tensor، اختياري) — قناع الانتباه (Attention mask) لتضمينات النص السلبية المُولَّدة مسبقًا. - output_type (
str، اختياري، الافتراضي"pil") — صيغة مخرجات الصورة المولّدة. اختر بين"pil"أو"np"أو"latent". - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاعNucleusMoEImagePipelineOutputبدلاً من tuple عادي. - attention_kwargs (
dict، اختياري) — كلمات مفتاحية تُمرَّر إلى معالج الانتباه. - callback_on_step_end (
Callable، اختياري) — دالة تُستدعى في نهاية كل خطوة إزالة ضوضاء. - callback_on_step_end_tensor_inputs (
list، اختياري) — مدخلات المصفوفات (Tensor) لدالةcallback_on_step_end. - max_sequence_length (
int، القيمة الافتراضية 512) — الحد الأقصى لطول التسلسل للموجّه النصي.
يعيد
NucleusMoEImagePipelineOutput أو tuple
NucleusMoEImagePipelineOutput إذا كان return_dict هو True، وإلا فسيكون tuple حيث يكون العنصر الأول قائمة بالصور المولّدة.
الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.
أمثلة:
>>> import torch
>>> from diffusers import NucleusMoEImagePipeline
>>> pipe = NucleusMoEImagePipeline.from_pretrained("NucleusAI/NucleusMoE-Image", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> image = pipe(prompt, num_inference_steps=50).images[0]
>>> image.save("nucleus_moe.png")encode_prompt
< source >( prompt: str | list[str] = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int | None = Nonereturn_index: int | None = None )
المعاملات
- prompt (
strأوlist[str]، اختياري) — الموجّه أو الموجّهات التي سيتم ترميزها. - device (
torch.device، اختياري) — جهاز Torch للمصفوفات الناتجة. - num_images_per_prompt (
int، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه. - prompt_embeds (
torch.Tensor، اختياري) — تضمينات نصية مُولّدة مسبقًا. يتخطى الترميز عند توفيرها. - prompt_embeds_mask (
torch.Tensor، اختياري) — قناع الانتباه للتضمينات المُولَّدة مسبقًا. - max_sequence_length (
int، القيمة الافتراضية 1024) — الحد الأقصى لطول الرموز (tokens) للموجّه المُرمَّز.
ترميز موجهات النص إلى تمثيلات باستخدام مُرمِّز النص في Qwen3-VL.
NucleusMoEImagePipelineOutput
class diffusers.pipelines.nucleusmoe_image.pipeline_output.NucleusMoEImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
فئة الإخراج لخطوط أنابيب NucleusMoE Image.