Diffusers documentation
Kandinsky 2.2
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
< source >( 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__
< source >( 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
< source >( 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
매개변수
- scheduler (
DDIMScheduler|DDPMScheduler) —unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러. - unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
- movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
Kandinsky를 사용한 텍스트-이미지 생성을 위한 Pipeline
이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.
__call__
< source >( 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
< source >( 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__
< source >( 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
< source >( 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
매개변수
- scheduler (DDIMScheduler) —
unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다. - unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
- movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
Kandinsky를 사용한 텍스트-이미지 생성을 위한 Pipeline
이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.
__call__
< source >( 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
< source >( 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__
< source >( 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
< source >( 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
매개변수
- scheduler (DDIMScheduler) —
unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다. - unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
- movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
Kandinsky를 사용한 이미지-이미지 생성을 위한 Pipeline
이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.
__call__
< source >( 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
< source >( 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__
< source >( 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
< source >( 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
< source >( 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
매개변수
- scheduler (DDIMScheduler) —
unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다. - unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
- movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
Kandinsky를 사용한 이미지-이미지 생성을 위한 Pipeline
이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.
__call__
< source >( 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
매개변수
- scheduler (DDIMScheduler) —
unet와 함께 사용하여 이미지 latents를 생성하는 데 사용되는 스케줄러입니다. - unet (UNet2DConditionModel) — 이미지 임베딩의 노이즈를 제거하기 위한 조건부 U-Net 아키텍처.
- movq (VQModel) — Latents에서 이미지를 생성하기 위한 MoVQ Decoder입니다.
Kandinsky2.1을 사용한 텍스트 기반 이미지 인페인팅을 위한 Pipeline
이 모델은 DiffusionPipeline에서 상속됩니다. 라이브러리가 모든 파이프라인에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.
__call__
< source >( 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
< source >( 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__
< source >( 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
< source >( 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.