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 es un modelo de texto a imagen que combina un DiT de un solo flujo con capas feed-forward de Mixture-of-Experts, atención cruzada con un codificador de texto Qwen3-VL y un planificador discreto de Euler de flow-matching.

Asegúrate de consultar la guía de Schedulers para aprender a explorar el equilibrio entre la velocidad y la calidad del scheduler, y consulta la sección reutilizar componentes entre pipelines para aprender a cargar eficientemente los mismos componentes en múltiples pipelines.

NucleusMoEImagePipeline

clase diffusers.NucleusMoEImagePipeline

< >

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

Parámetros

  • transformer (NucleusMoEImageTransformer2DModel) — Arquitectura de Transformer condicional (MMDiT) para desruidar los latentes de imagen codificados.
  • scheduler (FlowMatchEulerDiscreteScheduler) — Un scheduler para usar en combinación con transformer para desruidar los latentes de imagen codificados.
  • vae (AutoencoderKLQwenImage) — Modelo de Autoencoder Variacional (VAE) para codificar y decodificar imágenes a partir de representaciones latentes.
  • text_encoder (Qwen3VLForConditionalGeneration) — Codificador de texto para calcular los embeddings de los prompts.
  • processor (Qwen3VLProcessor) — Procesador para tokenizar entradas de texto.

Pipeline para la generación de imágenes a partir de texto usando NucleusMoE.

Este pipeline utiliza un DiT de un solo flujo con capas feed-forward de Mixture-of-Experts, atención cruzada con un codificador de texto Qwen3-VL y un planificador discreto de Euler para 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

Parámetros

  • prompt (str o list[str], opcional) — El prompt o los prompts para guiar la generación de la imagen. Si no se define, hay que pasar prompt_embeds.
  • negative_prompt (str o list[str], opcional) — El prompt o prompts que no deben guiar la generación de la imagen. Si no se define, se utiliza una cadena vacía cuando true_cfg_scale > 1.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía libre de clasificador. Los valores mayores que 1 habilitan CFG.
  • return_index (int, opcional) — Índice de la capa de la salida del codificador de texto que se usará para los embeddings del prompt.
  • height (int, opcional, valor predeterminado self.default_sample_size * self.vae_scale_factor) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado self.default_sample_size * self.vae_scale_factor) — El ancho en píxeles de la imagen generada.
  • num_inference_steps (int, opcional, valor predeterminado 50) — El número de pasos de desruido.
  • sigmas (list[float], opcional) — Sigmas personalizados para el programa de desruido. Si no se definen, se utiliza un programa lineal.
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador de torch o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados que se usarán como entradas para la generación de imágenes.
  • prompt_embeds (torch.Tensor, opcional) — Incrustaciones de texto pregeneradas.
  • prompt_embeds_mask (torch.Tensor, opcional) — Máscara de atención para las incrustaciones de texto pregeneradas.
  • negative_prompt_embeds (torch.Tensor, opcional) — Incrustaciones de texto negativo pregeneradas.
  • negative_prompt_embeds_mask (torch.Tensor, opcional) — Máscara de atención para los embeddings de texto negativos pregenerados.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre "pil", "np" o "latent".
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un NucleusMoEImagePipelineOutput en lugar de una tupla simple.
  • attention_kwargs (dict, opcional) — Kwargs pasados al procesador de atención.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido.
  • callback_on_step_end_tensor_inputs (list, opcional) — Entradas de tensor para la función callback_on_step_end.
  • max_sequence_length (int, por defecto 512) — Longitud máxima de la secuencia para el prompt de texto.

Devuelve

NucleusMoEImagePipelineOutput o tuple

NucleusMoEImagePipelineOutput si return_dict es True, de lo contrario una tuple cuyo primer elemento es una lista con las imágenes generadas.

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

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

Parámetros

  • prompt (str o list[str], opcional) — El prompt o prompts a codificar.
  • device (torch.device, opcional) — Dispositivo Torch para los tensores resultantes.
  • num_images_per_prompt (int, por defecto 1) — Número de imágenes a generar por indicación.
  • prompt_embeds (torch.Tensor, opcional) — Incrustaciones de texto pregeneradas. Omite la codificación si se proporciona.
  • prompt_embeds_mask (torch.Tensor, opcional) — Máscara de atención para las incrustaciones pregeneradas.
  • max_sequence_length (int, por defecto 1024) — Longitud máxima de tokens para el prompt codificado.

Codifica los prompts de texto en embeddings usando el codificador de texto de Qwen3-VL.

NucleusMoEImagePipelineOutput

clase diffusers.pipelines.nucleusmoe_image.pipeline_output.NucleusMoEImagePipelineOutput

< >

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

Parámetros

  • images (list[PIL.Image.Image] o np.ndarray) — Lista de imágenes PIL desruidas de longitud batch_size o array de numpy de forma (batch_size, height, width, num_channels). Las imágenes PIL o el array de numpy presentan las imágenes desruidas del pipeline de difusión.

Clase de salida para las pipelines de imagen de NucleusMoE.

Update on GitHub