Diffusers documentation

Qwen-Image 2.1

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

Qwen-Image 2.1

Qwen-Image 2.1은 프롬프트와 조건 이미지를 Qwen3-VL 모델과 함께 인코딩한 후, 단일 스트림 블록-인과적(block-causal) 트랜스포머를 사용하여 대상 이미지를 디노이즈합니다. 블록-인과적 어텐션, 어텐션 프로세서 및 causal_condition에 대한 자세한 내용은 QwenImage21Transformer2DModel을 참조하세요.

기본값은 Qwen이 권장하는 값인 40단계와 가이던스 없음입니다. negative_prompt를 true_cfg_scale > 1과 함께 전달하면 classifier-free guidance가 활성화되며, 이는 단계당 작업량을 두 배로 증가시킵니다.

import torch
from diffusers import QwenImage21Pipeline

pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", dtype=torch.bfloat16).to("cuda")

# Text-to-image
image = pipe("A capybara wearing a wizard hat, oil painting").images[0]
image.save("t2i.png")

# Image-conditioned editing
edited = pipe("Move it to a snowy mountain top", image=image).images[0]
edited.save("edit.png")

여러 조건 이미지

image에 리스트를 전달하면 모든 항목이 결합된 시퀀스에서 각자의 블록이 됩니다. Qwen3-VL 인코더는 이를 비전 컨텍스트로 인식하고, VAE는 해당 잠재 토큰을 기여합니다. 블록 인과적 어텐션은 각 블록 내부에서는 양방향 어텐션을 허용하면서, 후속 블록과 대상 이미지가 이전 블록에 어텐션할 수 있게 합니다. 따라서 전달하는 순서가 모델이 읽는 순서가 됩니다.

edited = pipe("Put the flowers from the first image into the second scene", image=[flowers, scene]).images[0]

flex_attention으로 더 빠른 attention

기본 QwenImage21AttnProcessor는 각 prefix 세그먼트마다 attention 호출을 한 번씩 실행하여 block-causal prefill을 수행합니다. 컴파일이 필요하지 않으며 모든 PyTorch 빌드에서 작동합니다. QwenImage21FlexAttnProcessor는 동일한 마스크를 flex_attention 호출 하나로 표현하며, 모델이 컴파일된 후에는 더 빠릅니다.

flex 프로세서로 전환할 때 모델을 컴파일하세요. 컴파일되지 않은 flex_attention은 fp32로 전체 어텐션 점수 행렬을 생성하여, 고해상도에서 훨씬 느려지고 메모리가 부족해집니다.

from diffusers.models.transformers.transformer_qwenimage21 import QwenImage21FlexAttnProcessor

pipe.transformer.set_attn_processor(QwenImage21FlexAttnProcessor())
pipe.transformer.compile()

단일 파일 체크포인트 로드

import torch
from diffusers import QwenImage21Pipeline, QwenImage21Transformer2DModel

transformer = QwenImage21Transformer2DModel.from_single_file(
    "https://huggingface.co/Comfy-Org/Qwen-Image-2.1/blob/main/diffusion_models/qwen_image_2.1_bf16.safetensors",
    dtype=torch.bfloat16,
)
pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", transformer=transformer, dtype=torch.bfloat16).to(
    "cuda"
)

샘플링 시그마

모델 작성자는 파이프라인 설정에서 sample_sigmas를 사용하여 기본 샘플링 그리드를 구성할 수 있습니다. 공개된 체크포인트를 로드하면 해당 체크포인트의 기본 그리드 및 스케줄러 설정이 자동으로 복원됩니다.

런타임에서 다른 그리드를 실험하려면 sigmas를 파이프라인 호출에 전달하세요:

# Use the checkpoint's default sampling grid.
image = pipe(prompt).images[0]

# Override the default grid for this call.
image = pipe(prompt, sigmas=[1.0, 0.8, 0.5, 0.2]).images[0]

위의 사용자 정의 그리드는 API를 보여줍니다. 생성 품질은 체크포인트와 그리드에 따라 달라집니다. Sigma 목록에는 스케줄러가 추가하는 최종 sigma가 제외됩니다. 명시적으로 지정된 sigmas는 구성된 sample_sigmas를 덮어쓰며, 이 두 목록 중 어느 것이든 num_inference_steps 대신 단계 수를 결정합니다. 둘 다 제공되지 않으면 파이프라인은 num_inference_steps를 사용하여 스케줄을 생성합니다. 스케줄러는 구성된 처리를 두 그리드 중 어느 것에든 적용합니다.

모듈형

Qwen-Image 2.1은 모듈형 파이프라인으로도 사용할 수 있습니다. 동일한 블록이 텍스트-이미지 생성과 이미지 조건 생성을 수행하며, 하나 이상의 이미지에 조건을 걸려면 image를 전달합니다. Classifier-free guidance는 true_cfg_scale 호출 인수가 아닌 guider 구성 요소를 통해 설정되며, prefix KV 캐시는 기본적으로 활성화되어 있습니다(use_kv_cache=False로 비활성화할 수 있음).

import torch
from diffusers import ClassifierFreeGuidance, ModularPipeline

pipe = ModularPipeline.from_pretrained("Qwen/Qwen-Image-2.1")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")

image = pipe(prompt="A capybara wearing a wizard hat, oil painting").images[0]

# Turn classifier-free guidance on for an edit.
pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=4.0))
edited = pipe(prompt="Move it to a snowy mountain top", negative_prompt="blurry", image=image).images[0]

Turbo 체크포인트는 자체 블록(QwenImage21TurboAutoBlocks)에 매핑됩니다. guider 없이 실행되며, negative_prompt를 받지 않고, 체크포인트에 포함된 시그마 그리드를 샘플링합니다. ModularPipeline.from_pretrained는 체크포인트 설정의 sample_sigmas 항목에서 Turbo 블록을 선택하므로, 별도의 구성이 필요하지 않습니다:

import torch
from diffusers import ModularPipeline

pipe = ModularPipeline.from_pretrained("Qwen/Qwen-Image-2.1-Turbo")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")

image = pipe(prompt="A capybara wearing a wizard hat, oil painting").images[0]

QwenImage21Pipeline

클래스 diffusers.QwenImage21Pipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImage21text_encoder: Qwen3VLForConditionalGenerationprocessor: Qwen3VLProcessortransformer: QwenImage21Transformer2DModelsample_sigmas: list[float] | None = None )

매개변수

  • scheduler (FlowMatchEulerDiscreteScheduler) — 인코딩된 이미지 latents의 노이즈를 제거하는 데 사용되는 스케줄러.
  • vae (AutoencoderKLQwenImage21) — 이미지를 64채널 잠재 공간으로 변환하고 역변환하는 변분 오토인코더.
  • text_encoder (Qwen3VLForConditionalGeneration) — 텍스트/이미지 결합 임베딩을 생성하는 Qwen3-VL 모델.
  • processor (Qwen3VLProcessor) — 채팅 템플릿을 구성하고 프롬프트 및 조건 이미지를 토큰화하는 프로세서입니다.
  • transformer (QwenImage21Transformer2DModel) — Latents를 디노이즈하는 단일 스트림 블록 인과적 transformer입니다.
  • sample_sigmas (list[float], 선택 사항) — 모델 작성자가 설정한 기본 샘플링 시그마이며, 최종 시그마는 제외됩니다. 이 목록의 길이는 디노이징 단계 수를 결정합니다. 런타임에서 다른 그리드를 실험하려면 sigmas를 __call__에 전달하세요.

Qwen-Image 2.1을 활용한 텍스트-이미지 생성 및 이미지 조건부 생성

Prompt과 condition image는 Qwen3-VL 모델에 의해 함께 인코딩되므로, condition image는 인코더가 해당 이미지를 위해 예약한 vision 슬롯을 차지하며, transformer는 하나의 교차된 텍스트/이미지 시퀀스를 확인합니다.

__call__

< >

( prompt: str | list[str] = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 1.0height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 40sigmas: list[float] | None = Nonenum_images_per_prompt: int = 1generator: 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']output_resolution: int = 1024use_kv_cache: bool = True ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

매개변수

  • prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 안내하는 프롬프트입니다. 임베딩을 직접 제공하려면 대신 prompt_embeds를 전달하세요.
  • image (PipelineImageInput, 선택 사항) — PIL 이미지 또는 numpy 배열 형태의 하나 이상의 조건 이미지입니다. 텍스트 인코더에 의해 비전 컨텍스트로, VAE에 의해 노이즈 앞에 붙는 잠재 토큰으로 인코딩됩니다. 리스트는 배치 내 모든 프롬프트가 공유하는 이미지 한 세트를 의미하며, 프롬프트당 하나의 항목을 의미하지 않습니다.
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 유도하지 않을 프롬프트입니다. true_cfg_scale이 1보다 크지 않으면 무시됩니다.
  • true_cfg_scale (float, 선택 사항, 기본값 1.0) — Classifier-free guidance scale입니다. true_cfg_scale > 1과 negative prompt를 함께 사용하면 활성화됩니다. Qwen-Image 2.1은 guidance 없이 샘플링하도록 설계되어 기본값이 1.0입니다.
  • height (int, 선택 사항) — 생성된 이미지의 픽셀 단위 높이입니다. 생략할 경우 조건 이미지의 종횡비(aspect ratio)에서 유도됩니다.
  • width (int, 선택 사항) — 생성된 이미지의 픽셀 단위 너비. 생략하면 조건 이미지의 종횡비에서 유도됩니다.
  • num_inference_steps (int, 선택 사항, 기본값 40) — 디노이징 단계 수. sigmas 또는 파이프라인에 구성된 sample_sigmas가 사용되면 무시됩니다. 해당 스케줄의 길이가 단계 수를 결정합니다.
  • sigmas (list[float], 선택 사항) — 이 호출에서 시도할 샘플링 시그마 목록으로, 최종 시그마는 제외됩니다. 파이프라인에 설정된 sample_sigmas를 오버라이드하며 디노이징 단계 수를 결정합니다. 스케줄러는 이 값들에 대해 설정된 처리 과정을 적용합니다.
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성되는 이미지의 수.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 Generator입니다.
  • latents (torch.Tensor, 선택 사항) — 미리 생성된 노이즈가 포함된 latents.
  • prompt_embeds (torch.Tensor, 선택 사항) — 프롬프트 인코딩을 건너뛰는 사전 생성된 텍스트 임베딩입니다. prompt_embeds_mask를 함께 전달해야 합니다.
  • prompt_embeds_mask (torch.Tensor, 선택 사항) — prompt_embeds의 유효한 위치를 표시하는 Bool 마스크입니다.
  • negative_prompt_embeds (torch.Tensor, 선택 사항) — negative_prompt 대신 사용되는 사전 생성된 negative text embeddings입니다. negative_prompt_embeds_mask를 함께 전달해야 합니다.
  • negative_prompt_embeds_mask (torch.Tensor, 선택 사항) — negative_prompt_embeds의 유효한 위치를 표시하는 Bool 마스크입니다.
  • output_type (str, 선택 사항, 기본값 "pil") — 출력 형식, "pil", "np", "pt" 또는 "latent".
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ~pipelines.qwenimage.QwenImagePipelineOutput를 반환할지 여부.
  • attention_kwargs (dict, 선택 사항) — attention processor로 전달됩니다.
  • callback_on_step_end (Callable, 선택 사항) — 각 디노이징 단계의 끝에서 호출됩니다.
  • callback_on_step_end_tensor_inputs (list[str], 선택 사항, 기본값 ["latents"]) — callback_on_step_end에 전달할 디노이징 루프의 텐서입니다. 파이프라인의 _callback_tensor_inputs에 나열되어 있어야 합니다.
  • output_resolution (int, 선택 사항, 기본값 1024) — height/width를 유도하고 조건 이미지를 리사이즈하는 데 사용되는 목표 측면 길이입니다.
  • use_kv_cache (bool, 선택 사항, 기본값은 True) — 첫 번째 단계 이후 텍스트 및 조건 이미지의 키와 값을 캐시합니다. causal_condition 가 해당 토큰을 t = 0, 으로 변조하여 활성화가 단계에 독립적이 되므로 유효합니다. 이 설정을 전환해도 저정밀도에서 비트 단위로 동일한 이미지를 재현하지 않습니다. 캐싱은 디코딩 단계가 프리필 단계와 다른 시퀀스 레이아웃으로 어텐션을 수행하게 하므로, 두 단계가 다른 방식으로 타일링되고 다른 반올림에 도달합니다. 두 설정 모두 fp32 기준값과 동일한 허용 오차 내에서 일치합니다. 첫 번째 블록의 1-ULP 차이는 32개 블록과 모든 샘플러 단계를 통해 증폭되므로, 두 설정은 동일하게 유효하지만 시각적으로 구별되는 샘플을 생성합니다. 샘플을 고정하려면 이 플래그를 고정하세요.

    이 옵션을 전환해도 저정밀도에서 동일한 이미지를 비트 단위로 재현하지 않습니다. 캐싱을 사용하면 디코딩 단계가 프리필 단계와 다른 시퀀스 레이아웃으로 어텐션을 수행하므로, 두 단계는 타일링 방식이 달라지고 서로 다른 반올림 결과를 얻습니다. 두 결과 모두 fp32 기준값과 동일한 허용 오차 범위 내에서 일치합니다. 첫 번째 블록에서 발생하는 1-ULP 차이는 32개의 블록과 모든 샘플러 단계를 거치면서 증폭되므로, 두 설정은 모두 유효하지만 시각적으로 구별되는 샘플을 생성합니다. 이 플래그를 고정하면 샘플을 고정할 수 있습니다.

반환값

~pipelines.qwenimage.QwenImagePipelineOutput 또는 tuple

return_dict가 True인 경우 ~pipelines.qwenimage.QwenImagePipelineOutput, 그렇지 않으면 첫 번째 요소가 생성된 이미지의 리스트인 tuple

생성을 위해 파이프라인을 호출할 때 호출되는 함수.

예:

>>> import torch
>>> from diffusers import QwenImage21Pipeline

>>> pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "A capybara wearing a wizard hat, reading a book by candlelight, oil painting"
>>> image = pipe(prompt).images[0]
>>> image.save("qwenimage21.png")

encode_prompt

< >

( prompt: str | list[str]image: list[typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]] | None = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Noneimage_pad_mask: typing.Optional[torch.Tensor] = None )

매개변수

  • prompt (str 또는 list[str], 선택 사항) — 인코딩할 프롬프트.
  • image (list[PipelineImageInput], 선택 사항) — 프롬프트와 함께 인코딩할 조건 이미지.
  • device (torch.device) — Torch 장치.
  • num_images_per_prompt (int) — 프롬프트당 생성되는 이미지의 수.
  • prompt_embeds (torch.Tensor, 선택 사항) — 미리 생성된 텍스트 임베딩입니다. 값이 제공되면 인코딩을 건너뜁니다.

QwenImagePipelineOutput

클래스 diffusers.pipelines.qwenimage.pipeline_output.QwenImagePipelineOutput

< >

( 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 이미지를 나타냅니다.

Stable Diffusion 파이프라인의 출력 클래스입니다.

QwenImage21ModularPipeline

클래스 diffusers.QwenImage21ModularPipeline

< >

( blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = Nonepretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = Noneworkflow: str | None = Nonemodular_config_dict: dict[str, typing.Any] | None = Noneconfig_dict: dict[str, typing.Any] | None = None**kwargs )

Qwen-Image 2.1용 ModularPipeline.

QwenImage21AutoBlocks

클래스 diffusers.QwenImage21AutoBlocks

< >

( )

Qwen-Image 2.1을 사용한 텍스트-이미지 변환 및 이미지 조건 생성을 위한 Auto Modular 파이프라인.

  • 텍스트-이미지 생성의 경우 prompt만 제공하면 됩니다
  • 이미지 조건 생성을 위해 prompt와 image(이미지 하나 또는 목록)를 제공해야 합니다

지원되는 워크플로:

  • text2image: prompt 필수
  • image_conditioned: prompt, image 필수

구성 요소: image_processor (VaeImageProcessor) text_encoder (Qwen3VLForConditionalGeneration) processor (Qwen3VLProcessor) vae (AutoencoderKLQwenImage21) scheduler (FlowMatchEulerDiscreteScheduler) guider (ClassifierFreeGuidance) transformer (QwenImage21Transformer2DModel)

입력: image (Image | list, 선택 사항): 디노이징을 위한 참조 이미지입니다. 단일 이미지 또는 이미지 목록일 수 있습니다. output_resolution (int, 선택 사항, 기본값 1024): 출력 크기를 유도하고 조건 이미지를 리사이즈하는 데 사용되는 목표 측면 길이입니다. prompt (str): 이미지 생성을 안내하는 프롬프트입니다. negative_prompt (str, 선택 사항): 이미지 생성을 안내하지 않을 프롬프트입니다. generator (Generator, 선택 사항): 결정론적 생성을 위한 Torch 생성기입니다. num_images_per_prompt (int, 선택 사항, 기본값 1): 프롬프트당 생성할 이미지의 수입니다. height (int, 선택 사항): 생성된 이미지의 픽셀 단위 높이입니다. width (int, 선택 사항): 생성된 이미지의 픽셀 단위 너비입니다. image_latents (list, 선택 사항): 각 조건 이미지의 정규화된 잠긴 변수(latents)입니다. vae_encoder 단계에서 생성할 수 있습니다. latents (Tensor): 이미지 생성을 위한 사전 생성된 노이즈 잠긴 변수입니다. num_inference_steps (int): 디노이징 단계의 수입니다. sigmas (list, 선택 사항): 디노이징 프로세스를 위한 사용자 지정 시그마입니다. use_kv_cache (bool, 선택 사항, 기본값 True): 첫 번째 단계 이후 텍스트 및 조건 이미지의 키와 값을 캐시합니다. causal_condition이 t = 0부터 해당 토큰을 변조하여 활성화가 단계에 독립적이 되므로 유효합니다. 이를 전환해도 감소된 정밀도에서는 비트 단위로 동일한 이미지를 재현하지 않습니다. attention_kwargs (dict, 선택 사항): 어텐션 프로세서에 대한 추가 kwargs입니다. *denoiser_input_fields (None,선택 사항): 디노이저의 조건부 모델 입력입니다. 예: prompt_embeds, negative_prompt_embeds 등. output_type (str,선택 사항*, 기본값 pil): 출력 형식: ‘pil’, ‘np’, ‘pt’.

출력: images (list): 생성된 이미지.

QwenImage21TurboModularPipeline

클래스 diffusers.QwenImage21TurboModularPipeline

< >

( blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = Nonepretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = Noneworkflow: str | None = Nonemodular_config_dict: dict[str, typing.Any] | None = Noneconfig_dict: dict[str, typing.Any] | None = None**kwargs )

가이던스 없이 몇 단계 만에 샘플링하는 가속 체크포인트인 Qwen-Image 2.1 Turbo용 ModularPipeline입니다.

QwenImage21TurboAutoBlocks

클래스 diffusers.QwenImage21TurboAutoBlocks

< >

( )

Qwen-Image 2.1 Turbo를 사용하여 텍스트-이미지 생성 및 이미지 조건 생성을 위한 Auto Modular pipeline입니다. Qwen-Image 2.1 Turbo는 guidance 없이 몇 단계 만에 포함된 sigma grid를 샘플링하는 가속화된 checkpoint입니다.

  • 텍스트-이미지 생성의 경우 prompt만 제공하면 됩니다
  • 이미지 조건 생성을 위해 prompt와 image(이미지 하나 또는 목록)를 제공해야 합니다

지원되는 워크플로:

  • text2image: prompt 필수
  • image_conditioned: prompt, image 필수

구성 요소: image_processor (VaeImageProcessor) text_encoder (Qwen3VLForConditionalGeneration) processor (Qwen3VLProcessor) vae (AutoencoderKLQwenImage21) scheduler (FlowMatchEulerDiscreteScheduler) transformer (QwenImage21Transformer2DModel)

Configs: sample_sigmas (기본값: None): sigmas가 전달되지 않을 때 사용되는, 체크포인트에 포함된 샘플링 그리드

입력: image (Image | list, 선택 사항): 디노이징을 위한 참조 이미지입니다. 단일 이미지 또는 이미지 목록일 수 있습니다. output_resolution (int, 선택 사항, 기본값 1024): 출력 크기를 유도하고 조건 이미지를 리사이즈하는 데 사용되는 목표 측면 길이입니다. prompt (str): 이미지 생성을 안내하는 프롬프트입니다. generator (Generator, 선택 사항): 결정론적 생성을 위한 Torch generator입니다. num_images_per_prompt (int, 선택 사항, 기본값 1): 프롬프트당 생성할 이미지의 수입니다. height (int, 선택 사항): 생성된 이미지의 픽셀 단위 높이입니다. width (int, 선택 사항): 생성된 이미지의 픽셀 단위 너비입니다. image_latents (list, 선택 사항): 각 조건 이미지의 정규화된 latents입니다. vae_encoder 단계에서 생성할 수 있습니다. latents (Tensor): 이미지 생성을 위한 사전 생성된 노이즈 latents입니다. num_inference_steps (int): 디노이징 단계의 수입니다. sigmas (list, 선택 사항): 디노이징 프로세스를 위한 사용자 정의 sigmas입니다. use_kv_cache (bool, 선택 사항, 기본값 True): 첫 번째 단계 이후 텍스트 및 조건 이미지의 키와 값을 캐시합니다. causal_condition이 t = 0부터 해당 토큰을 변조하여 활성화가 단계에 독립적이 되므로 유효합니다. 이를 토글해도 감소된 정밀도에서는 비트 단위로 동일한 이미지를 재현하지 않습니다. attention_kwargs (dict, 선택 사항): attention 프로세서에 대한 추가 kwargs입니다. *denoiser_input_fields (None,선택 사항): 디노이저의 조건부 모델 입력입니다. 예: prompt_embeds, negative_prompt_embeds 등. output_type (str,선택 사항*, 기본값 pil): 출력 형식: ‘pil’, ‘np’, ‘pt’.

출력: images (list): 생성된 이미지.

Update on GitHub