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 — это модель генерации изображений по тексту, сочетающая однопоточный DiT с слоями Mixture-of-Experts, кросс-вниманием к текстовому энкодеру Qwen3-VL и дискретным планировщиком Euler на основе flow-matching.

Обязательно ознакомьтесь с руководством по планировщикам, чтобы узнать, как исследовать баланс между скоростью и качеством планировщика, а также с разделом повторное использование компонентов в разных конвейерах, чтобы узнать, как эффективно загружать одни и те же компоненты в несколько конвейеров.

NucleusMoEImagePipeline

класс diffusers.NucleusMoEImagePipeline

< >

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

Параметры

  • transformer (NucleusMoEImageTransformer2DModel) — Архитектура условного Transformer (MMDiT) для удаления шума из закодированных латентов изображения.
  • scheduler (FlowMatchEulerDiscreteScheduler) — планировщик, используемый в связке с transformer для удаления шума из закодированных латентов изображения.
  • vae (AutoencoderKLQwenImage) — Модель вариационного автоэнкодера (VAE) для кодирования изображений в латентные представления и декодирования из них.
  • text_encoder (Qwen3VLForConditionalGeneration) — Текстовый энкодер для вычисления эмбеддингов промптов.
  • processor (Qwen3VLProcessor) — Процессор для токенизации текстовых входных данных.

Пайплайн для генерации изображений по тексту с использованием NucleusMoE.

Этот конвейер использует однопоточный DiT с слоями feed-forward типа Mixture-of-Experts, кросс-вниманием к текстовому энкодеру Qwen3-VL и дискретным планировщиком Euler для 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

Параметры

  • prompt (str или list[str], необязательный) — Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать prompt_embeds.
  • negative_prompt (str или list[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, используется пустая строка, когда true_cfg_scale > 1.
  • guidance_scale (float, необязательный, по умолчанию 4.0) — Масштаб классификаторно-свободного управления (classifier-free guidance). Значения, большие 1, включают CFG.
  • return_index (int, необязательный) — Индекс слоя вывода текстового кодировщика, используемого для эмбеддингов промпта.
  • height (int, необязательный, по умолчанию self.default_sample_size * self.vae_scale_factor) — Высота генерируемого изображения в пикселях.
  • width (int, необязательный, по умолчанию self.default_sample_size * self.vae_scale_factor) — Ширина генерируемого изображения в пикселях.
  • num_inference_steps (int, необязательный, по умолчанию 50) — Количество шагов удаления шума.
  • sigmas (list[float], необязательный) — Пользовательские сигмы для расписания денойзинга. Если не заданы, используется линейное расписание.
  • num_images_per_prompt (int, необязательный, по умолчанию 1) — Количество изображений, генерируемых для каждого промпта.
  • generator (torch.Generator или list[torch.Generator], необязательный) — Один генератор torch или список генераторов для обеспечения детерминированности генерации.
  • latents (torch.Tensor, необязательный) — Предварительно сгенерированные зашумленные латенты, используемые в качестве входных данных для генерации изображений.
  • prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные текстовые эмбеддинги.
  • prompt_embeds_mask (torch.Tensor, необязательный) — Маска внимания для предсгенерированных текстовых эмбеддингов.
  • negative_prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные отрицательные текстовые эмбеддинги.
  • negative_prompt_embeds_mask (torch.Tensor, необязательный) — Маска внимания для предварительно сгенерированных отрицательных текстовых эмбеддингов.
  • output_type (str, необязательный, по умолчанию "pil") — Формат вывода сгенерированного изображения. Выберите один из вариантов: "pil", "np" или "latent".
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать NucleusMoEImagePipelineOutput вместо обычного кортежа.
  • attention_kwargs (dict, необязательный) — Параметры, передаваемые в процессор внимания.
  • callback_on_step_end (Callable, необязательный) — Функция, вызываемая в конце каждого шага денойзинга.
  • callback_on_step_end_tensor_inputs (list, необязательный) — Входные тензоры для функции callback_on_step_end.
  • max_sequence_length (int, по умолчанию 512) — Максимальная длина последовательности для текстового запроса.

Возвращает

NucleusMoEImagePipelineOutput или tuple

NucleusMoEImagePipelineOutput, если return_dict равно True, иначе tuple, где первый элемент — список с сгенерированными изображениями.

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

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

Параметры

  • prompt (str или list[str], необязательный) — Промпт или промпты для кодирования.
  • device (torch.device, необязательный) — Устройство Torch для результирующих тензоров.
  • num_images_per_prompt (int, по умолчанию 1) — Количество изображений, генерируемых на один промпт.
  • prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные текстовые эмбеддинги. Если переданы, кодирование пропускается.
  • prompt_embeds_mask (torch.Tensor, необязательный) — Маска внимания для предсгенерированных эмбеддингов.
  • max_sequence_length (int, по умолчанию 1024) — Максимальная длина токенов для закодированного запроса.

Кодируйте текстовые подсказки в эмбеддинги с помощью текстового энкодера Qwen3-VL.

NucleusMoEImagePipelineOutput

класс diffusers.pipelines.nucleusmoe_image.pipeline_output.NucleusMoEImagePipelineOutput

< >

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

Параметры

  • images (list[PIL.Image.Image] или np.ndarray) — Список денойзированных изображений PIL длиной batch_size или массив numpy с формой (batch_size, height, width, num_channels). Изображения PIL или массив numpy представляют денойзированные изображения диффузионного конвейера.

Класс вывода для пайплайнов NucleusMoE Image.

Update on GitHub