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 est un modèle de génération d’images à partir de texte qui associe un DiT à flux unique, des couches feed-forward Mixture-of-Experts, une attention croisée avec un encodeur de texte Qwen3-VL et un planificateur discret Euler de flow-matching.

Pensez à consulter le guide des Schedulers pour apprendre à explorer le compromis entre la vitesse et la qualité du scheduler, et à consulter la section réutilisation des composants entre les pipelines pour apprendre à charger efficacement les mêmes composants dans plusieurs pipelines.

NucleusMoEImagePipeline

classe diffusers.NucleusMoEImagePipeline

< >

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

Paramètres

  • transformer (NucleusMoEImageTransformer2DModel) — Architecture Transformer conditionnelle (MMDiT) pour le débruitage des latents d’image encodés.
  • scheduler (FlowMatchEulerDiscreteScheduler) — Un planificateur à utiliser en combinaison avec transformer pour débruyer les latents d'image encodés.
  • vae (AutoencoderKLQwenImage) — Modèle de Variational Auto-Encoder (VAE) pour encoder et décoder des images vers et depuis des représentations latentes.
  • text_encoder (Qwen3VLForConditionalGeneration) — Encodeur de texte pour le calcul des embeddings de prompt.
  • processor (Qwen3VLProcessor) — Processeur pour la tokenisation des entrées textuelles.

Pipeline pour la génération d'images à partir de texte utilisant NucleusMoE.

Ce pipeline utilise un DiT à flux unique avec des couches feed-forward Mixture-of-Experts, une attention croisée vers un encodeur de texte Qwen3-VL et un planificateur discret Euler de 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

Paramètres

  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération de l’image. S’il n’est pas défini, une chaîne vide est utilisée lorsque true_cfg_scale > 1.
  • guidance_scale (float, facultatif, valeur par défaut 4.0) — Échelle de guidage sans classifieur. Les valeurs supérieures à 1 activent le CFG.
  • return_index (int, facultatif) — Index de la couche de la sortie du codeur de texte à utiliser pour les embeddings du prompt.
  • height (int, facultatif, par défaut self.default_sample_size * self.vae_scale_factor) — La hauteur en pixels de l’image générée.
  • width (int, facultatif, par défaut self.default_sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée.
  • num_inference_steps (int, facultatif, par défaut 50) — Le nombre d'étapes de débruitage.
  • sigmas (list[float], facultatif) — Sigmas personnalisés pour le calendrier de débruitage. S'ils ne sont pas définis, un calendrier linéaire est utilisé.
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un générateur torch ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés à utiliser comme entrées pour la génération d’images.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour les embeddings de texte pré-générés.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour les embeddings de texte négatifs pré-générés.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l’image générée. Choisissez entre "pil", "np" ou "latent".
  • return_dict (bool, facultatif, valeur par défaut True) — Indique s'il faut retourner un NucleusMoEImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Arguments passés au processeur d'attention.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage.
  • callback_on_step_end_tensor_inputs (list, facultatif) — Entrées tensorielles pour la fonction callback_on_step_end.
  • max_sequence_length (int, par défaut 512) — Longueur maximale de la séquence pour le prompt texte.

Retourne

NucleusMoEImagePipelineOutput ou tuple

NucleusMoEImagePipelineOutput si return_dict est True, sinon un tuple dont le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

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

Paramètres

  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts à encoder.
  • device (torch.device, facultatif) — Appareil Torch pour les tenseurs résultants.
  • num_images_per_prompt (int, par défaut 1) — Nombre d'images à générer par invite.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. L’encodage est ignoré lorsqu’ils sont fournis.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour les embeddings pré-générés.
  • max_sequence_length (int, par défaut 1024) — Longueur maximale en jetons pour le prompt encodé.

Encode les prompts de texte en embeddings à l'aide de l'encodeur de texte Qwen3-VL.

NucleusMoEImagePipelineOutput

classe diffusers.pipelines.nucleusmoe_image.pipeline_output.NucleusMoEImagePipelineOutput

< >

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

Paramètres

  • images (list[PIL.Image.Image] ou np.ndarray) — Liste d'images PIL débruitées de longueur batch_size ou tableau numpy de forme (batch_size, height, width, num_channels). Les images PIL ou le tableau numpy présentent les images débruitées du pipeline de diffusion.

Classe de sortie pour les pipelines d'image NucleusMoE.

Update on GitHub