Diffusers documentation

NucleusMoE-Image

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[str] = ['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