Diffusers documentation
NucleusMoE-Image
NucleusMoE-Image
NucleusMoE-Image는 단일 스트림 DiT에 Mixture-of-Experts 피드포워드 레이어, Qwen3-VL 텍스트 인코더와의 크로스 어텐션, flow-matching Euler discrete 스케줄러를 결합한 텍스트-이미지 생성 모델입니다.
Scheduler의 가이드를 확인하여 스케줄러의 속도와 품질 사이의 트레이드오프를 탐색하는 방법을 배우고, 파이프라인 간 구성 요소 재사용 섹션을 확인하여 동일한 구성 요소를 여러 파이프라인에 효율적으로 로드하는 방법을 배워보세요.
NucleusMoEImagePipeline
class diffusers.NucleusMoEImagePipeline
< source >( 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__
< 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 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
< 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
class diffusers.pipelines.nucleusmoe_image.pipeline_output.NucleusMoEImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
NucleusMoE 이미지 파이프라인의 출력 클래스입니다.