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 텍스트 인코더와의 크로스 어텐션, flow-matching Euler discrete 스케줄러를 결합한 텍스트-이미지 생성 모델입니다.

Scheduler의 가이드를 확인하여 스케줄러의 속도와 품질 사이의 트레이드오프를 탐색하는 방법을 배우고, 파이프라인 간 구성 요소 재사용 섹션을 확인하여 동일한 구성 요소를 여러 파이프라인에 효율적으로 로드하는 방법을 배워보세요.

NucleusMoEImagePipeline

class diffusers.NucleusMoEImagePipeline

< >

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

매개변수

  • transformer (NucleusMoEImageTransformer2DModel) — 인코딩된 이미지 latents의 노이즈를 제거하기 위한 Conditional Transformer (MMDiT) 아키텍처입니다.
  • scheduler (FlowMatchEulerDiscreteScheduler) — transformer와 함께 사용하여 인코딩된 이미지 latents의 노이즈를 제거하는 데 사용되는 스케줄러.
  • vae (AutoencoderKLQwenImage) — 이미지를 잠재 표현으로 인코딩하고 디코딩하는 Variational Auto-Encoder (VAE) 모델.
  • text_encoder (Qwen3VLForConditionalGeneration) — 프롬프트 임베딩을 계산하는 텍스트 인코더.
  • processor (Qwen3VLProcessor) — 텍스트 입력을 토큰화하는 프로세서입니다.

NucleusMoE를 사용한 텍스트-이미지 생성을 위한 Pipeline

이 파이프라인은 단일 스트림 DiT를 사용하며, Mixture-of-Experts 피드포워드 레이어, Qwen3-VL 텍스트 인코더에 대한 크로스 어텐션, 그리고 flow-matching Euler discrete 스케줄러를 포함합니다.

__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 scale입니다. 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, 선택 사항) — 이미지 생성의 입력으로 사용할 사전 생성된 노이즈가 포함된 latents.
  • 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, 선택 사항) — attention processor에 전달되는 Kwargs입니다.
  • callback_on_step_end (Callable, 선택 사항) — 각 디노이징 단계의 끝에서 호출되는 함수입니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력입니다.
  • max_sequence_length (int, 기본값 512) — 텍스트 프롬프트의 최대 시퀀스 길이입니다.

반환값

NucleusMoEImagePipelineOutput 또는 tuple

return_dict가 True인 경우 NucleusMoEImagePipelineOutput, 그렇지 않으면 첫 번째 요소가 생성된 이미지의 리스트인 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

class diffusers.pipelines.nucleusmoe_image.pipeline_output.NucleusMoEImagePipelineOutput

< >

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

매개변수

  • images (list[PIL.Image.Image] 또는 np.ndarray) — batch_size 길이의 denoised PIL 이미지 목록 또는 (batch_size, height, width, num_channels) 형태의 numpy 배열. PIL 이미지 또는 numpy 배열은 diffusion 파이프라인의 denoised 이미지를 나타냅니다.

NucleusMoE 이미지 파이프라인의 출력 클래스입니다.

Update on GitHub