Diffusers documentation
NucleusMoE-Image
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
< source >( 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
transformerpour 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__
< 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
Paramètres
- prompt (
stroulist[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passerprompt_embeds. - negative_prompt (
stroulist[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 lorsquetrue_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éfautself.default_sample_size * self.vae_scale_factor) — La hauteur en pixels de l’image générée. - width (
int, facultatif, par défautself.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.Generatoroulist[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éfautTrue) — Indique s'il faut retourner unNucleusMoEImagePipelineOutputplutô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 fonctioncallback_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
< 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 )
Paramètres
- prompt (
stroulist[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
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Classe de sortie pour les pipelines d'image NucleusMoE.