Diffusers documentation
NucleusMoE-Image
NucleusMoE-Image
NucleusMoE-Image — это модель генерации изображений по тексту, сочетающая однопоточный DiT с слоями Mixture-of-Experts, кросс-вниманием к текстовому энкодеру Qwen3-VL и дискретным планировщиком Euler на основе flow-matching.
Обязательно ознакомьтесь с руководством по планировщикам, чтобы узнать, как исследовать баланс между скоростью и качеством планировщика, а также с разделом повторное использование компонентов в разных конвейерах, чтобы узнать, как эффективно загружать одни и те же компоненты в несколько конвейеров.
NucleusMoEImagePipeline
класс diffusers.NucleusMoEImagePipeline
< source >( 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__
< 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
Параметры
- 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
< 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 )
Параметры
- 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
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Класс вывода для пайплайнов NucleusMoE Image.