Diffusers documentation

Kandinsky 2.2

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

Kandinsky 2.2

Kandinsky 2.2는 Arseniy Shakhmatov, Anton Razzhigaev, Aleksandr Nikolich, Vladimir Arkhipkin, Igor Pavlov, Andrey Kuznetsov, Denis Dimitrov에 의해 개발되었습니다.

GitHub 페이지의 설명은 다음과 같습니다:

Kandinsky 2.2는 이전 버전인 Kandinsky 2.1에 비해 새로운 이미지 인코더인 CLIP-ViT-G와 ControlNet 지원을 도입함으로써 상당한 성능 향상을 가져왔습니다. 이미지 인코더를 CLIP-ViT-G로 전환한 것은 모델이 더 미학적인 이미지를 생성하고 텍스트를 더 잘 이해하는 능력을 크게 향상시켜 모델의 전반적인 성능을 높였습니다. ControlNet 메커니즘의 추가는 모델이 이미지 생성 과정을 효과적으로 제어할 수 있게 합니다. 이를 통해 더 정확하고 시각적으로 매력적인 출력이 가능해지며, 텍스트 기반 이미지 조작에 대한 새로운 가능성을 열어줍니다.

원본 코드베이스는 ai-forever/Kandinsky-2에서 찾을 수 있습니다.

Hub의 Kandinsky Community 조직에서 텍스트-이미지, 이미지-이미지, 인페인팅과 같은 작업에 대한 공식 모델 체크포인트를 확인해 보세요.

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

KandinskyV22PriorPipeline

class diffusers.KandinskyV22PriorPipeline

< >

( prior: PriorTransformerimage_encoder: CLIPVisionModelWithProjectiontext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizerscheduler: UnCLIPSchedulerimage_processor: CLIPImageProcessorPil )

매개변수

  • prior (PriorTransformer) — 텍스트 임베딩에서 이미지 임베딩을 근사하기 위한 unCLIP의 표준 prior입니다.
  • image_encoder (CLIPVisionModelWithProjection) — 동결된 이미지 인코더.
  • text_encoder (CLIPTextModelWithProjection) — 동결된 텍스트 인코더.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer 클래스의 토크나이저.
  • scheduler (UnCLIPScheduler) — prior와 함께 사용하여 이미지 임베딩을 생성하는 데 사용되는 스케줄러입니다.
  • image_processor (CLIPImageProcessor) — clip에서 이미지를 전처리하는 데 사용되는 image_processor입니다.

Kandinsky의 이미지 prior를 생성하는 Pipeline

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( prompt: str | list[str]negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneguidance_scale: float = 4.0output_type: str | None = 'pt'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → KandinskyPriorPipelineOutput or tuple

매개변수

  • prompt (str 또는 list[str]) — 이미지 생성을 안내하는 프롬프트 또는 프롬프트 목록입니다.
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 안내하지 않을 프롬프트입니다. 가이던스를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • output_type (str, 선택 사항, 기본값 "pt") — 이미지 생성의 출력 형식입니다. "np" (np.array) 또는 "pt" (torch.Tensor) 중 하나를 선택합니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
  • callback_on_step_end (Callable, 선택 사항) — 추론 중 각 디노이징 단계의 끝에서 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs에는 callback_on_step_end_tensor_inputs로 지정된 모든 텐서 목록이 포함됩니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.

반환값

KandinskyPriorPipelineOutput 또는 tuple

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

예:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorPipeline
>>> import torch

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-prior")
>>> pipe_prior.to("cuda")
>>> prompt = "red cat, 4k photo"
>>> image_emb, negative_image_emb = pipe_prior(prompt).to_tuple()

>>> pipe = KandinskyV22Pipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=negative_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images
>>> image[0].save("cat.png")

interpolate

< >

( images_and_prompts: listweights: listnum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Nonenegative_prior_prompt: str | None = Nonenegative_prompt: str = ''guidance_scale: float = 4.0device = None ) → KandinskyPriorPipelineOutput or tuple

매개변수

  • images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) — 이미지 생성을 안내하기 위한 프롬프트와 이미지의 목록입니다.
  • weights — (list[float]): images_and_prompts의 각 조건에 대한 가중치 목록
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • negative_prior_prompt (str, 선택 사항) — prior diffusion 프로세스를 안내하지 않을 프롬프트입니다. guidance를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 유도하지 않을 프롬프트입니다. 가이던스를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.

반환값

KandinskyPriorPipelineOutput 또는 tuple

interpolation에 pipeline을 사용할 때 호출되는 함수입니다.

예:

>>> from diffusers import KandinskyV22PriorPipeline, KandinskyV22Pipeline
>>> from diffusers.utils import load_image
>>> import PIL
>>> import torch
>>> from torchvision import transforms

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
... )
>>> pipe_prior.to("cuda")
>>> img1 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
... )
>>> img2 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
...     "/kandinsky/starry_night.jpeg"
... )
>>> images_texts = ["a cat", img1, img2]
>>> weights = [0.3, 0.3, 0.4]
>>> out = pipe_prior.interpolate(images_texts, weights)
>>> pipe = KandinskyV22Pipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
... )
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=out.image_embeds,
...     negative_image_embeds=out.negative_image_embeds,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images[0]
>>> image.save("starry_cat.png")

KandinskyV22Pipeline

클래스 diffusers.KandinskyV22Pipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

매개변수

  • scheduler (DDIMScheduler | DDPMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.

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

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]height: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

매개변수

  • image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 이미지 생성을 조건부로 제어하기 위해 텍스트 프롬프트에 사용되는 클립 이미지 임베딩입니다.
  • negative_image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 음성 텍스트 프롬프트에 대한 CLIP 이미지 임베딩입니다. 이미지 생성을 조건화하는 데 사용됩니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
  • callback_on_step_end (Callable, 선택 사항) — 추론 중 각 디노이징 단계의 끝에서 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs에는 callback_on_step_end_tensor_inputs로 지정된 모든 텐서 목록이 포함됩니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.

반환값

ImagePipelineOutput 또는 tuple

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

예:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorPipeline
>>> import torch

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-prior")
>>> pipe_prior.to("cuda")
>>> prompt = "red cat, 4k photo"
>>> out = pipe_prior(prompt)
>>> image_emb = out.image_embeds
>>> zero_image_emb = out.negative_image_embeds
>>> pipe = KandinskyV22Pipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=zero_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images
>>> image[0].save("cat.png")

KandinskyV22CombinedPipeline

class diffusers.KandinskyV22CombinedPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModelprior_prior: PriorTransformerprior_image_encoder: CLIPVisionModelWithProjectionprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: UnCLIPSchedulerprior_image_processor: CLIPImageProcessorPil )

매개변수

  • scheduler (DDIMScheduler | DDPMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
  • prior_prior (PriorTransformer) — 텍스트 임베딩에서 이미지 임베딩을 근사하기 위한 표준 unCLIP prior입니다.
  • prior_image_encoder (CLIPVisionModelWithProjection) — 동결된 이미지 인코더.
  • prior_text_encoder (CLIPTextModelWithProjection) — 동결된 텍스트 인코더.
  • prior_tokenizer (CLIPTokenizer) — CLIPTokenizer 클래스의 토크나이저.
  • prior_scheduler (UnCLIPScheduler) — prior와 함께 사용하여 이미지 임베딩을 생성하는 데 사용되는 스케줄러입니다.
  • prior_image_processor (CLIPImageProcessor) — clip에서 이미지를 전처리하는 데 사용할 image_processor입니다.

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

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( prompt: str | list[str]negative_prompt: str | list[str] | None = Nonenum_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1height: int = 512width: int = 512prior_guidance_scale: float = 4.0prior_num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → ImagePipelineOutput or tuple

매개변수

  • prompt (str 또는 list[str]) — 이미지 생성을 안내하는 프롬프트 또는 프롬프트 목록입니다.
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 안내하지 않을 프롬프트입니다. 가이던스를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • prior_guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 guidance scale입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 guidance scale이 활성화됩니다. guidance scale이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 장려하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • prior_num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • callback (Callable, 선택 사항) — 추론 중 callback_steps 스텝마다 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, 선택 사항, 기본값 1) — callback 함수가 호출되는 주기입니다. 지정하지 않으면 모든 단계에서 callback이 호출됩니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
  • prior_callback_on_step_end (Callable, 선택 사항) — prior 파이프라인 추론 중 각 denoising 단계의 끝에서 호출되는 함수입니다. 해당 함수는 다음 인수를 받아 호출됩니다: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, 선택 사항) — prior_callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. prior 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.
  • callback_on_step_end (Callable, 선택 사항) — 디코더 파이프라인 추론 중 각 디노이징 단계의 끝에서 호출되는 함수입니다. 해당 함수는 다음 인수를 받아 호출됩니다: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs에는 callback_on_step_end_tensor_inputs로 지정된 모든 텐서 목록이 포함됩니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.

반환값

ImagePipelineOutput 또는 tuple

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

예:

from diffusers import AutoPipelineForText2Image
import torch

pipe = AutoPipelineForText2Image.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

prompt = "A lion in galaxies, spirals, nebulae, stars, smoke, iridescent, intricate detail, octane render, 8k"

image = pipe(prompt=prompt, num_inference_steps=25).images[0]

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Offloads all models to CPU using accelerate, significantly reducing memory usage. When called, unet, text_encoder, vae and safety checker have their state dicts saved to CPU and then are moved to a torch.device('meta') and loaded to GPU only when their specific submodule has itsforwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

KandinskyV22ControlnetPipeline

class diffusers.KandinskyV22ControlnetPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

매개변수

  • scheduler (DDIMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.

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

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]hint: Tensorheight: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = True ) → ImagePipelineOutput or tuple

매개변수

  • hint (torch.Tensor) — ControlNet 조건입니다.
  • image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 이미지 생성을 조건부로 제어하기 위해 텍스트 프롬프트에 사용되는 클립 이미지 임베딩입니다.
  • negative_image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 음성 텍스트 프롬프트에 대한 CLIP 이미지 임베딩입니다. 이미지 생성을 조건화하는 데 사용됩니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • callback (Callable, 선택 사항) — 추론 중 callback_steps 스텝마다 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, 선택 사항, 기본값 1) — callback 함수가 호출되는 주기입니다. 지정하지 않으면 모든 단계에서 callback이 호출됩니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.

반환값

ImagePipelineOutput 또는 tuple

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

예:

KandinskyV22PriorEmb2EmbPipeline

클래스 diffusers.KandinskyV22PriorEmb2EmbPipeline

< >

( prior: PriorTransformerimage_encoder: CLIPVisionModelWithProjectiontext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizerscheduler: UnCLIPSchedulerimage_processor: CLIPImageProcessorPil )

매개변수

  • prior (PriorTransformer) — 텍스트 임베딩에서 이미지 임베딩을 근사하기 위한 unCLIP의 표준 prior입니다.
  • image_encoder (CLIPVisionModelWithProjection) — 동결된 이미지 인코더.
  • text_encoder (CLIPTextModelWithProjection) — 동결된 텍스트 인코더.
  • tokenizer (CLIPTokenizer) — CLIPTokenizer 클래스의 토크나이저.
  • scheduler (UnCLIPScheduler) — prior와 함께 사용하여 이미지 임베딩을 생성하는 데 사용되는 스케줄러입니다.

Kandinsky의 이미지 prior를 생성하는 Pipeline

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( prompt: str | list[str]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]strength: float = 0.3negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneguidance_scale: float = 4.0output_type: str | None = 'pt'return_dict: bool = True ) → KandinskyPriorPipelineOutput or tuple

매개변수

  • prompt (str 또는 list[str]) — 이미지 생성을 안내하는 프롬프트 또는 프롬프트 목록입니다.
  • image (torch.Tensor, PIL.Image.Image, list[torch.Tensor] 또는 list[PIL.Image.Image]) — 이미지 임베딩의 시작점으로 사용될 Image 또는 이미지 배치 텐서입니다. image로 이미지 라텐트를 직접 전달하는 경우에도 이를 받을 수 있으며, 이 경우 다시 인코딩되지 않습니다.
  • strength (float, 선택 사항, 기본값 0.8) — 개념적으로, 참조 image를 얼마나 변환할지를 나타냅니다. 0과 1 사이여야 합니다. image 가 시작점으로 사용되며, strength 값이 클수록 더 많은 노이즈가 추가됩니다. 디노이징 단계의 수는 초기에 추가된 노이즈의 양에 따라 결정됩니다.
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 안내하지 않을 프롬프트입니다. 가이던스를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • output_type (str, 선택 사항, 기본값 "pt") — 이미지 생성의 출력 형식입니다. "np" (np.array) 또는 "pt" (torch.Tensor) 중 하나를 선택합니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.

반환값

KandinskyPriorPipelineOutput 또는 tuple

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

예:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorEmb2EmbPipeline
>>> import torch

>>> pipe_prior = KandinskyPriorPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
... )
>>> pipe_prior.to("cuda")

>>> prompt = "red cat, 4k photo"
>>> img = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
... )
>>> image_emb, nagative_image_emb = pipe_prior(prompt, image=img, strength=0.2).to_tuple()

>>> pipe = KandinskyPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-decoder, torch_dtype=torch.float16"
... )
>>> pipe.to("cuda")

>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=negative_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=100,
... ).images

>>> image[0].save("cat.png")

interpolate

< >

( images_and_prompts: listweights: listnum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Nonenegative_prior_prompt: str | None = Nonenegative_prompt: str = ''guidance_scale: float = 4.0device = None ) → KandinskyPriorPipelineOutput or tuple

매개변수

  • images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) — 이미지 생성을 안내하기 위한 프롬프트와 이미지의 목록입니다.
  • weights — (list[float]): images_and_prompts의 각 조건에 대한 가중치 목록
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • negative_prior_prompt (str, 선택 사항) — prior diffusion 프로세스를 안내하지 않을 프롬프트입니다. guidance를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 유도하지 않을 프롬프트입니다. 가이던스를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.

반환값

KandinskyPriorPipelineOutput 또는 tuple

interpolation에 pipeline을 사용할 때 호출되는 함수입니다.

예:

>>> from diffusers import KandinskyV22PriorEmb2EmbPipeline, KandinskyV22Pipeline
>>> from diffusers.utils import load_image
>>> import PIL

>>> import torch
>>> from torchvision import transforms

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
... )
>>> pipe_prior.to("cuda")

>>> img1 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
... )

>>> img2 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
...     "/kandinsky/starry_night.jpeg"
... )

>>> images_texts = ["a cat", img1, img2]
>>> weights = [0.3, 0.3, 0.4]
>>> image_emb, zero_image_emb = pipe_prior.interpolate(images_texts, weights)

>>> pipe = KandinskyV22Pipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
... )
>>> pipe.to("cuda")

>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=zero_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=150,
... ).images[0]

>>> image.save("starry_cat.png")

KandinskyV22Img2ImgPipeline

클래스 diffusers.KandinskyV22Img2ImgPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

매개변수

  • scheduler (DDIMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.

Kandinsky를 사용한 이미지-이미지 생성을 위한 Pipeline

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]height: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0strength: float = 0.3num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

매개변수

  • image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 이미지 생성을 조건부로 제어하기 위해 텍스트 프롬프트에 사용되는 클립 이미지 임베딩입니다.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] 또는 list[np.ndarray]) — 프로세스의 시작점으로 사용될 Image 또는 이미지 배치 텐서입니다. 직접 latents를 전달하는 경우, image로 이미지 latents를 받아도 되며, 이 경우 다시 인코딩되지 않습니다.
  • strength (float, 선택 사항, 기본값 0.8) — 개념적으로, 참조 image를 얼마나 변환할지를 나타냅니다. 0과 1 사이여야 합니다. image 가 시작점으로 사용되며, strength 값이 클수록 더 많은 노이즈가 추가됩니다. 디노이징 단계의 수는 초기에 추가된 노이즈의 양에 따라 결정됩니다. strength가 1이면 추가되는 노이즈가 최대가 되며, num_inference_steps에 지정된 전체 반복 횟수만큼 디노이징 프로세스가 실행됩니다. 따라서 1이라는 값은 실질적으로 image를 무시하는 것과 같습니다.
  • negative_image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 음성 텍스트 프롬프트에 대한 CLIP 이미지 임베딩입니다. 이미지 생성을 조건화하는 데 사용됩니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
  • callback_on_step_end (Callable, 선택 사항) — 추론 중 각 디노이징 단계의 끝에서 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs에는 callback_on_step_end_tensor_inputs로 지정된 모든 텐서 목록이 포함됩니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.

반환값

ImagePipelineOutput 또는 tuple

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

예:

KandinskyV22Img2ImgCombinedPipeline

클래스 diffusers.KandinskyV22Img2ImgCombinedPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModelprior_prior: PriorTransformerprior_image_encoder: CLIPVisionModelWithProjectionprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: UnCLIPSchedulerprior_image_processor: CLIPImageProcessorPil )

매개변수

  • scheduler (DDIMScheduler | DDPMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
  • prior_prior (PriorTransformer) — 텍스트 임베딩에서 이미지 임베딩을 근사하기 위한 표준 unCLIP prior입니다.
  • prior_image_encoder (CLIPVisionModelWithProjection) — 동결된 이미지 인코더.
  • prior_text_encoder (CLIPTextModelWithProjection) — 동결된 텍스트 인코더.
  • prior_tokenizer (CLIPTokenizer) — CLIPTokenizer 클래스의 토크나이저.
  • prior_scheduler (UnCLIPScheduler) — prior와 함께 사용하여 이미지 임베딩을 생성하는 데 사용되는 스케줄러입니다.
  • prior_image_processor (CLIPImageProcessor) — clip에서 이미지를 전처리하는 데 사용할 image_processor입니다.

Kandinsky를 사용한 이미지-이미지 생성을 위한 통합 Pipeline

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( prompt: str | list[str]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_prompt: str | list[str] | None = Nonenum_inference_steps: int = 100guidance_scale: float = 4.0strength: float = 0.3num_images_per_prompt: int = 1height: int = 512width: int = 512prior_guidance_scale: float = 4.0prior_num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → ImagePipelineOutput or tuple

매개변수

  • prompt (str 또는 list[str]) — 이미지 생성을 안내하는 프롬프트 또는 프롬프트 목록입니다.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] 또는 list[np.ndarray]) — 프로세스의 시작점으로 사용될 Image 또는 이미지 배치 텐서입니다. 직접 latents를 전달하는 경우, image로 이미지 latents를 받아도 되며, 이 경우 다시 인코딩되지 않습니다.
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 안내하지 않을 프롬프트입니다. 가이던스를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • strength (float, 선택 사항, 기본값 0.3) — 개념적으로, 참조 image를 얼마나 변환할지를 나타냅니다. 0과 1 사이여야 합니다. image 가 시작점으로 사용되며, strength 값이 클수록 더 많은 노이즈가 추가됩니다. 디노이징 단계의 수는 초기에 추가된 노이즈의 양에 따라 결정됩니다. strength가 1이면 추가되는 노이즈가 최대가 되며, num_inference_steps에 지정된 전체 반복 횟수만큼 디노이징 프로세스가 실행됩니다. 따라서 1이라는 값은 실질적으로 image를 무시하는 것과 같습니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • prior_guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 guidance scale입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 guidance scale이 활성화됩니다. guidance scale이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 장려하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • prior_num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • callback (Callable, 선택 사항) — 추론 중 callback_steps 스텝마다 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, 선택 사항, 기본값 1) — callback 함수가 호출되는 주기입니다. 지정하지 않으면 모든 단계에서 callback이 호출됩니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
  • prior_callback_on_step_end (Callable, 선택 사항) — prior 파이프라인 추론 중 각 denoising 단계의 끝에서 호출되는 함수입니다. 해당 함수는 다음 인수를 받아 호출됩니다: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, 선택 사항) — prior_callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. prior 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.
  • callback_on_step_end (Callable, 선택 사항) — 디코더 파이프라인 추론 중 각 디노이징 단계의 끝에서 호출되는 함수입니다. 해당 함수는 다음 인수를 받아 호출됩니다: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs에는 callback_on_step_end_tensor_inputs로 지정된 모든 텐서 목록이 포함됩니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.

반환값

ImagePipelineOutput 또는 tuple

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

예:

from diffusers import AutoPipelineForImage2Image
import torch
import requests
from io import BytesIO
from PIL import Image
import os

pipe = AutoPipelineForImage2Image.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

prompt = "A fantasy landscape, Cinematic lighting"
negative_prompt = "low quality, bad quality"

url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"

response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")
image.thumbnail((768, 768))

image = pipe(prompt=prompt, image=original_image, num_inference_steps=25).images[0]

enable_model_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

accelerate를 사용하여 모든 모델을 CPU로 오프로드하여 성능에 미치는 영향은 적으면서 메모리 사용량을 줄입니다. enable_sequential_cpu_offload와 비교하면, 이 메서드는 forward 메서드가 호출될 때 한 번에 하나의 모델을 GPU로 이동하며, 다음 모델이 실행될 때까지 해당 모델은 GPU에 유지됩니다. enable_sequential_cpu_offload를 사용하는 경우보다 메모리 절감 효과는 낮지만, unet의 반복적 실행 덕분에 성능이 훨씬 좋습니다.

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Offloads all models to CPU using accelerate, significantly reducing memory usage. When called, unet, text_encoder, vae and safety checker have their state dicts saved to CPU and then are moved to a torch.device('meta') and loaded to GPU only when their specific submodule has itsforwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

KandinskyV22ControlnetImg2ImgPipeline

클래스 diffusers.KandinskyV22ControlnetImg2ImgPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

매개변수

  • scheduler (DDIMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.

Kandinsky를 사용한 이미지-이미지 생성을 위한 Pipeline

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]hint: Tensorheight: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0strength: float = 0.3num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = True ) → ImagePipelineOutput or tuple

매개변수

  • image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 이미지 생성을 조건부로 제어하기 위해 텍스트 프롬프트에 사용되는 클립 이미지 임베딩입니다.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] 또는 list[np.ndarray]) — 프로세스의 시작점으로 사용될 Image 또는 이미지 배치 텐서입니다. 직접 latents를 전달하는 경우, image로 이미지 latents를 받아도 되며, 이 경우 다시 인코딩되지 않습니다.
  • strength (float, 선택 사항, 기본값 0.8) — 개념적으로, 참조 image를 얼마나 변환할지를 나타냅니다. 0과 1 사이여야 합니다. image 가 시작점으로 사용되며, strength 값이 클수록 더 많은 노이즈가 추가됩니다. 디노이징 단계의 수는 초기에 추가된 노이즈의 양에 따라 결정됩니다. strength가 1이면 추가되는 노이즈가 최대가 되며, num_inference_steps에 지정된 전체 반복 횟수만큼 디노이징 프로세스가 실행됩니다. 따라서 1이라는 값은 실질적으로 image를 무시하는 것과 같습니다.
  • hint (torch.Tensor) — ControlNet 조건입니다.
  • negative_image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 음성 텍스트 프롬프트에 대한 CLIP 이미지 임베딩입니다. 이미지 생성을 조건화하는 데 사용됩니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • callback (Callable, 선택 사항) — 추론 중 callback_steps 스텝마다 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, 선택 사항, 기본값 1) — callback 함수가 호출되는 주기입니다. 지정하지 않으면 모든 단계에서 callback이 호출됩니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.

반환값

ImagePipelineOutput 또는 tuple

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

예:

KandinskyV22InpaintPipeline

class diffusers.KandinskyV22InpaintPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

매개변수

  • scheduler (DDIMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.

Kandinsky2.1을 사용한 텍스트 기반 이미지 인페인팅을 위한 Pipeline

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]image: typing.Union[torch.Tensor, PIL.Image.Image]mask_image: typing.Union[PIL.Image.Image, torch.Tensor, numpy.ndarray]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]height: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

매개변수

  • image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 이미지 생성을 조건부로 제어하기 위해 텍스트 프롬프트에 사용되는 클립 이미지 임베딩입니다.
  • image (PIL.Image.Image) — 인페인팅할 Image 또는 이미지 배치 텐서, i.e. 이미지의 일부가 mask_image로 마스킹되고 prompt에 따라 다시 채워집니다.
  • mask_image (np.array) — image를 마스킹하기 위한 이미지 배치 텐서입니다. 마스크의 흰색 픽셀은 다시 채워지고, 검은색 픽셀은 유지됩니다. mask_image가 PIL 이미지인 경우, 사용 전에 단일 채널(휘도)로 변환됩니다. 텐서인 경우 3개 대신 하나의 색상 채널(L)을 포함해야 하므로, 예상되는 모양은 (B, H, W, 1)입니다.
  • negative_image_embeds (torch.Tensor 또는 list[torch.Tensor]) — 음성 텍스트 프롬프트에 대한 CLIP 이미지 임베딩입니다. 이미지 생성을 조건화하는 데 사용됩니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
  • callback_on_step_end (Callable, 선택 사항) — 추론 중 각 디노이징 단계의 끝에서 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs에는 callback_on_step_end_tensor_inputs로 지정된 모든 텐서 목록이 포함됩니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.

반환값

ImagePipelineOutput 또는 tuple

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

예:

KandinskyV22InpaintCombinedPipeline

class diffusers.KandinskyV22InpaintCombinedPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModelprior_prior: PriorTransformerprior_image_encoder: CLIPVisionModelWithProjectionprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: UnCLIPSchedulerprior_image_processor: CLIPImageProcessorPil )

매개변수

  • scheduler (DDIMScheduler | DDPMScheduler) — unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러.
  • unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
  • movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
  • prior_prior (PriorTransformer) — 텍스트 임베딩에서 이미지 임베딩을 근사하기 위한 표준 unCLIP prior입니다.
  • prior_image_encoder (CLIPVisionModelWithProjection) — 동결된 이미지 인코더.
  • prior_text_encoder (CLIPTextModelWithProjection) — 동결된 텍스트 인코더.
  • prior_tokenizer (CLIPTokenizer) — CLIPTokenizer 클래스의 토크나이저.
  • prior_scheduler (UnCLIPScheduler) — prior와 함께 사용하여 이미지 임베딩을 생성하는 데 사용되는 스케줄러입니다.
  • prior_image_processor (CLIPImageProcessor) — clip에서 이미지를 전처리하는 데 사용할 image_processor입니다.

Kandinsky를 사용한 인페인팅 생성을 위한 통합 파이프라인

이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

__call__

< >

( prompt: str | list[str]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]mask_image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_prompt: str | list[str] | None = Nonenum_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1height: int = 512width: int = 512prior_guidance_scale: float = 4.0prior_num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

매개변수

  • prompt (str 또는 list[str]) — 이미지 생성을 안내하는 프롬프트 또는 프롬프트 목록입니다.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] 또는 list[np.ndarray]) — 프로세스의 시작점으로 사용될 Image 또는 이미지 배치 텐서입니다. 직접 latents를 전달하는 경우, image로 이미지 latents를 받아도 되며, 이 경우 다시 인코딩되지 않습니다.
  • mask_image (np.array) — image를 마스킹하기 위한 이미지 배치 텐서입니다. 마스크의 흰색 픽셀은 다시 채워지고, 검은색 픽셀은 유지됩니다. mask_image가 PIL 이미지인 경우, 사용 전에 단일 채널(휘도)로 변환됩니다. 텐서인 경우 3개 대신 하나의 색상 채널(L)을 포함해야 하므로, 예상되는 모양은 (B, H, W, 1)입니다.
  • negative_prompt (str 또는 list[str], 선택 사항) — 이미지 생성을 안내하지 않을 프롬프트입니다. 가이던스를 사용하지 않는 경우 무시됩니다(즉, guidance_scale이 1보다 작은 경우 무시됩니다).
  • num_images_per_prompt (int, 선택 사항, 기본값 1) — 프롬프트당 생성할 이미지의 수입니다.
  • guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 가이던스 스케일입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 가이던스 스케일이 활성화됩니다. 가이던스 스케일이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 유도하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • height (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 높이입니다.
  • width (int, 선택 사항, 기본값 512) — 생성된 이미지의 픽셀 단위 너비입니다.
  • prior_guidance_scale (float, 선택 사항, 기본값 4.0) — Classifier-Free Diffusion Guidance에서 정의한 guidance scale입니다. guidance_scale은 Imagen Paper의 방정식 2의 w로 정의됩니다. guidance_scale > 1로 설정하면 guidance scale이 활성화됩니다. guidance scale이 높을수록 prompt 텍스트와 밀접하게 연결된 이미지를 생성하도록 장려하지만, 일반적으로 이미지 품질이 낮아지는 대가를 치릅니다.
  • prior_num_inference_steps (int, 선택 사항, 기본값 100) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 생성을 결정적으로 만들기 위한 torch generator 하나 또는 목록
  • latents (torch.Tensor, 선택 사항) — 이미지 생성의 입력으로 사용할 가우시안 분포에서 샘플링된 사전 생성된 노이즈 latents입니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 generator를 사용하여 샘플링하여 latents 텐서가 생성됩니다.
  • output_type (str, 선택 사항, 기본값 "pil") — 이미지 생성의 출력 형식입니다. 다음 중 하나를 선택하세요: "pil" (PIL.Image.Image), "np" (np.array) 또는 "pt" (torch.Tensor).
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
  • prior_callback_on_step_end (Callable, 선택 사항) — 추론 중 각 denoising 단계의 끝에서 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, 선택 사항) — prior_callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.
  • callback_on_step_end (Callable, 선택 사항) — 추론 중 각 디노이징 단계의 끝에서 호출되는 함수입니다. 이 함수는 다음 인수를 받아 호출됩니다: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs에는 callback_on_step_end_tensor_inputs로 지정된 모든 텐서 목록이 포함됩니다.
  • callback_on_step_end_tensor_inputs (list, 선택 사항) — callback_on_step_end 함수의 텐서 입력 목록입니다. 목록에 지정된 텐서는 callback_kwargs 인수로 전달됩니다. 파이프라인 클래스의 ._callback_tensor_inputs 속성에 나열된 변수만 포함할 수 있습니다.

반환값

ImagePipelineOutput 또는 tuple

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

예:

from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch
import numpy as np

pipe = AutoPipelineForInpainting.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder-inpaint", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

prompt = "A fantasy landscape, Cinematic lighting"
negative_prompt = "low quality, bad quality"

original_image = load_image(
    "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
)

mask = np.zeros((768, 768), dtype=np.float32)
# Let's mask out an area above the cat's head
mask[:250, 250:-250] = 1

image = pipe(prompt=prompt, image=original_image, mask_image=mask, num_inference_steps=25).images[0]

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Offloads all models to CPU using accelerate, significantly reducing memory usage. When called, unet, text_encoder, vae and safety checker have their state dicts saved to CPU and then are moved to a torch.device('meta') and loaded to GPU only when their specific submodule has itsforwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

Update on GitHub