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