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 — это модель генерации изображений по тексту, сочетающая однопоточный 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 = ['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