Diffusers documentation

NucleusMoE-Image

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

NucleusMoE-Image

NucleusMoE-Image adalah model teks-ke-gambar yang memadukan DiT single-stream dengan lapisan feed-forward Mixture-of-Experts, cross-attention ke pengkode teks Qwen3-VL, dan penjadwal diskrit Euler flow-matching.

Pastikan untuk melihat panduan Schedulers untuk mempelajari cara mengeksplorasi tradeoff antara kecepatan dan kualitas scheduler, serta lihat bagian reuse components across pipelines untuk mempelajari cara memuat komponen yang sama secara efisien ke dalam beberapa pipeline.

NucleusMoEImagePipeline

kelas diffusers.NucleusMoEImagePipeline

< >

( transformer: NucleusMoEImageTransformer2DModelscheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen3VLForConditionalGenerationprocessor: Qwen3VLProcessor )

Parameter

  • transformer (NucleusMoEImageTransformer2DModel) — Arsitektur Conditional Transformer (MMDiT) untuk mendenoise latens gambar yang telah dikodekan.
  • scheduler (FlowMatchEulerDiscreteScheduler) — Scheduler yang digunakan bersama transformer untuk menghilangkan noise pada latens gambar yang telah dikodekan.
  • vae (AutoencoderKLQwenImage) — Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan gambar ke dan dari representasi laten.
  • text_encoder (Qwen3VLForConditionalGeneration) — Text encoder untuk menghitung prompt embeddings.
  • processor (Qwen3VLProcessor) — Processor untuk melakukan tokenisasi input teks.

Pipeline untuk generasi teks-ke-gambar menggunakan NucleusMoE.

Pipeline ini menggunakan DiT single-stream dengan lapisan feed-forward Mixture-of-Experts, cross-attention ke text encoder Qwen3-VL, dan scheduler diskrit Euler flow-matching.

__call__

< >

( 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

Parameter

  • prompt (str atau list[str], opsional) — Prompt atau prompt-prompt untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan prompt_embeds.
  • negative_prompt (str atau list[str], opsional) — Prompt atau prompt-prompt yang tidak digunakan untuk mengarahkan generasi gambar. Jika tidak didefinisikan, string kosong digunakan ketika true_cfg_scale > 1.
  • guidance_scale (float, opsional, default 4.0) — Skala panduan bebas klasifikator. Nilai lebih dari 1 mengaktifkan CFG.
  • return_index (int, opsional) — Indeks layer dari output text encoder yang akan digunakan untuk prompt embeddings.
  • height (int, opsional, defaultnya self.default_sample_size * self.vae_scale_factor) — Tinggi gambar yang dihasilkan dalam piksel.
  • width (int, opsional, defaultnya self.default_sample_size * self.vae_scale_factor) — Lebar gambar yang dihasilkan dalam piksel.
  • num_inference_steps (int, opsional, default 50) — Jumlah langkah denoising.
  • sigmas (list[float], opsional) — Sigmas kustom untuk jadwal denoising. Jika tidak didefinisikan, jadwal linear akan digunakan.
  • num_images_per_prompt (int, opsional, default 1) — Jumlah gambar yang akan dihasilkan per prompt.
  • generator (torch.Generator atau list[torch.Generator], opsional) — Satu atau daftar generator torch untuk membuat proses generasi menjadi deterministik.
  • latents (torch.Tensor, opsional) — Latents berisik yang telah dibuat sebelumnya untuk digunakan sebagai input untuk generasi gambar.
  • prompt_embeds (torch.Tensor, opsional) — Embedding teks yang telah dibuat sebelumnya.
  • prompt_embeds_mask (torch.Tensor, opsional) — Mask perhatian untuk embedding teks yang telah dibuat sebelumnya.
  • negative_prompt_embeds (torch.Tensor, opsional) — Embedding teks negatif yang telah dibuat sebelumnya.
  • negative_prompt_embeds_mask (torch.Tensor, opsional) — Attention mask untuk embedding teks negatif yang telah dibuat sebelumnya.
  • output_type (str, opsional, default "pil") — Format output dari gambar yang dihasilkan. Pilih antara "pil", "np", atau "latent".
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan NucleusMoEImagePipelineOutput alih-alih tuple biasa.
  • attention_kwargs (dict, opsional) — Kwargs yang diteruskan ke pemroses perhatian.
  • callback_on_step_end (Callable, opsional) — Fungsi yang dipanggil di akhir setiap langkah denoising.
  • callback_on_step_end_tensor_inputs (list, opsional) — Tensor input untuk fungsi callback_on_step_end.
  • max_sequence_length (int, defaultnya 512) — Panjang maksimum urutan untuk prompt teks.

Mengembalikan

NucleusMoEImagePipelineOutput atau tuple

NucleusMoEImagePipelineOutput jika return_dict bernilai True, selain itu berupa tuple di mana elemen pertama adalah daftar berisi gambar yang dihasilkan.

Fungsi yang dipanggil saat memanggil pipeline untuk generasi.

Contoh:

>>> 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

< >

( 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 )

Parameter

  • prompt (str atau list[str], opsional) — Prompt atau prompt-prompt yang akan dienkod.
  • device (torch.device, opsional) — Perangkat Torch untuk tensor yang dihasilkan.
  • num_images_per_prompt (int, defaultnya 1) — Jumlah gambar yang akan dihasilkan per prompt.
  • prompt_embeds (torch.Tensor, opsional) — Embedding teks yang sudah dibuat sebelumnya. Melompati proses encoding jika disediakan.
  • prompt_embeds_mask (torch.Tensor, opsional) — Mask perhatian untuk embedding yang telah dibuat sebelumnya.
  • max_sequence_length (int, defaultnya 1024) — Panjang token maksimum untuk prompt yang dikodekan.

Enkode prompt teks menjadi embedding menggunakan pengode teks Qwen3-VL.

NucleusMoEImagePipelineOutput

kelas diffusers.pipelines.nucleusmoe_image.pipeline_output.NucleusMoEImagePipelineOutput

< >

( images: list[PIL.Image.Image] | numpy.ndarray )

Parameter

  • images (list[PIL.Image.Image] atau np.ndarray) — Daftar gambar PIL yang telah didenoise dengan panjang batch_size atau array numpy dengan bentuk (batch_size, height, width, num_channels). Gambar PIL atau array numpy menyajikan gambar-gambar yang telah didenoise dari pipeline difusi.

Kelas output untuk pipeline gambar NucleusMoE.

Update on GitHub