Diffusers documentation
NucleusMoE-Image
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
< source >( 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
transformerpara 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__
< 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
Parámetros
- prompt (
strolist[str], opcional) — El prompt o los prompts para guiar la generación de la imagen. Si no se define, hay que pasarprompt_embeds. - negative_prompt (
strolist[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 cuandotrue_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 predeterminadoself.default_sample_size * self.vae_scale_factor) — La altura en píxeles de la imagen generada. - width (
int, opcional, valor predeterminadoself.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.Generatorolist[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 predeterminadoTrue) — Indica si se debe devolver unNucleusMoEImagePipelineOutputen 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óncallback_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
< 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 )
Parámetros
- prompt (
strolist[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
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Clase de salida para las pipelines de imagen de NucleusMoE.