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 được tạo ra bởi Arseniy Shakhmatov, Anton Razzhigaev, Aleksandr Nikolich, Vladimir Arkhipkin, Igor Pavlov, Andrey Kuznetsov và Denis Dimitrov.

Mô tả từ trang GitHub của nó là:

Kandinsky 2.2 mang lại những cải tiến đáng kể so với phiên bản tiền nhiệm, Kandinsky 2.1, bằng cách giới thiệu bộ mã hóa hình ảnh mới mạnh mẽ hơn - CLIP-ViT-G và hỗ trợ ControlNet. Việc chuyển sang CLIP-ViT-G làm bộ mã hóa hình ảnh tăng đáng kể khả năng của mô hình trong việc tạo ra các bức ảnh thẩm mỹ hơn và hiểu văn bản tốt hơn, từ đó nâng cao hiệu suất tổng thể của mô hình. Việc bổ sung cơ chế ControlNet cho phép mô hình kiểm soát hiệu quả quá trình tạo hình ảnh. Điều này dẫn đến các đầu ra chính xác và hấp dẫn về mặt thị giác hơn, đồng thời mở ra những khả năng mới cho việc thao tác hình ảnh theo hướng dẫn của văn bản.

Mã nguồn gốc có thể được tìm thấy tại ai-forever/Kandinsky-2.

Hãy xem tổ chức Kandinsky Community trên Hub để tìm các checkpoint mô hình chính thức cho các tác vụ như text-to-image, image-to-image và inpainting.

Hãy chắc chắn xem hướng dẫn về các scheduler để tìm hiểu cách khám phá sự đánh đổi giữa tốc độ và chất lượng của scheduler, và xem phần tái sử dụng các thành phần giữa các pipeline để tìm hiểu cách nạp các thành phần giống nhau vào nhiều pipeline một cách hiệu quả.

KandinskyV22PriorPipeline

lớp diffusers.KandinskyV22PriorPipeline

< >

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

Tham số

  • prior (PriorTransformer) — Prior chuẩn của unCLIP để xấp xỉ embedding ảnh từ embedding văn bản.
  • image_encoder (CLIPVisionModelWithProjection) — Bộ mã hóa ảnh được đóng băng.
  • text_encoder (CLIPTextModelWithProjection) — Bộ mã hóa văn bản đóng băng.
  • tokenizer (CLIPTokenizer) — Tokenizer của lớp CLIPTokenizer.
  • scheduler (UnCLIPScheduler) — Một scheduler được sử dụng kết hợp với prior để tạo ra image embedding.
  • image_processor (CLIPImageProcessor) — Một image_processor được sử dụng để tiền xử lý ảnh từ clip.

Pipeline để tạo image prior cho Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • prompt (str hoặc list[str]) — Prompt hoặc các prompt để định hướng việc tạo ảnh.
  • negative_prompt (str hoặc list[str], tùy chọn) — Prompt hoặc các prompt không dùng để định hướng việc tạo ảnh. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • output_type (str, tùy chọn, mặc định là "pt") — Định dạng đầu ra của ảnh được tạo. Chọn giữa: "np" (np.array) hoặc "pt" (torch.Tensor).
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.
  • callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs sẽ bao gồm danh sách tất cả các tensor như được chỉ định bởi callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, optional) — Danh sách các tensor đầu vào cho hàm callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.

Trả về

KandinskyPriorPipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

>>> 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

Tham số

  • images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) — danh sách các prompt và hình ảnh để định hướng cho việc tạo hình ảnh.
  • weights — (list[float]): danh sách trọng số cho từng điều kiện trong images_and_prompts
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • negative_prior_prompt (str, tùy chọn) — Prompt không dùng để hướng dẫn quá trình khuếch tán tiên nghiệm. Bị bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • negative_prompt (str hoặc list[str], tùy chọn) — Prompt không dùng để định hướng việc tạo ảnh. Bị bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.

Trả về

KandinskyPriorPipelineOutput hoặc tuple

Hàm được gọi khi sử dụng pipeline trước đó cho nội suy.

Ví dụ:

>>> 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

lớp diffusers.KandinskyV22Pipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Tham số

  • scheduler (DDIMScheduler | DDPMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).

Pipeline để tạo ảnh từ văn bản sử dụng Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản, sẽ được sử dụng để điều kiện hóa việc tạo ảnh.
  • negative_image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản tiêu cực, sẽ được sử dụng để điều kiện hóa quá trình tạo ảnh.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.
  • callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs sẽ bao gồm danh sách tất cả các tensor như được chỉ định bởi callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, optional) — Danh sách các tensor đầu vào cho hàm callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

>>> 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

lớp diffusers.KandinskyV22CombinedPipeline

< >

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

Tham số

  • scheduler (DDIMScheduler | DDPMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).
  • prior_prior (PriorTransformer) — Prior chuẩn của unCLIP để xấp xỉ image embedding từ text embedding.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Bộ mã hóa ảnh đóng băng.
  • prior_text_encoder (CLIPTextModelWithProjection) — Bộ mã hóa văn bản đóng băng.
  • prior_tokenizer (CLIPTokenizer) — Tokenizer của lớp CLIPTokenizer.
  • prior_scheduler (UnCLIPScheduler) — Một scheduler được sử dụng kết hợp với prior để tạo embedding ảnh.
  • prior_image_processor (CLIPImageProcessor) — Một image_processor được sử dụng để tiền xử lý ảnh từ clip.

Pipeline kết hợp cho việc tạo ảnh từ văn bản sử dụng Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • prompt (str hoặc list[str]) — Prompt hoặc các prompt để định hướng việc tạo ảnh.
  • negative_prompt (str hoặc list[str], tùy chọn) — Prompt hoặc các prompt không dùng để định hướng việc tạo ảnh. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • prior_guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Bài báo Imagen. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • prior_num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • callback (Callable, tùy chọn) — Một hàm được gọi mỗi callback_steps bước trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, tùy chọn, mặc định là 1) — Tần suất gọi hàm callback. Nếu không được chỉ định, callback sẽ được gọi ở mỗi bước.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.
  • prior_callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận của pipeline prior. Hàm này được gọi với các đối số sau: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, tùy chọn) — Danh sách các tensor đầu vào cho hàm prior_callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline prior của bạn.
  • callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận của pipeline decoder. Hàm này được gọi với các đối số sau: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs sẽ bao gồm danh sách tất cả các tensor như được chỉ định bởi callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, optional) — Danh sách các tensor đầu vào cho hàm callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

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

lớp diffusers.KandinskyV22ControlnetPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Tham số

  • scheduler (DDIMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).

Pipeline để tạo ảnh từ văn bản sử dụng Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • hint (torch.Tensor) — Điều kiện của controlnet.
  • image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản, sẽ được sử dụng để điều kiện hóa việc tạo ảnh.
  • negative_image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản tiêu cực, sẽ được sử dụng để điều kiện hóa quá trình tạo ảnh.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • callback (Callable, tùy chọn) — Một hàm được gọi mỗi callback_steps bước trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, tùy chọn, mặc định là 1) — Tần suất gọi hàm callback. Nếu không được chỉ định, callback sẽ được gọi ở mỗi bước.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

KandinskyV22PriorEmb2EmbPipeline

lớp diffusers.KandinskyV22PriorEmb2EmbPipeline

< >

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

Tham số

  • prior (PriorTransformer) — Prior chuẩn của unCLIP để xấp xỉ embedding ảnh từ embedding văn bản.
  • image_encoder (CLIPVisionModelWithProjection) — Bộ mã hóa ảnh được đóng băng.
  • text_encoder (CLIPTextModelWithProjection) — Bộ mã hóa văn bản đóng băng.
  • tokenizer (CLIPTokenizer) — Tokenizer của lớp CLIPTokenizer.
  • scheduler (UnCLIPScheduler) — Một scheduler được sử dụng kết hợp với prior để tạo ra image embedding.

Pipeline để tạo image prior cho Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • prompt (str hoặc list[str]) — Prompt hoặc các prompt để định hướng việc tạo ảnh.
  • image (torch.Tensor, PIL.Image.Image, list[torch.Tensor] hoặc list[PIL.Image.Image]) — Image, hoặc tensor đại diện cho một lô ảnh, sẽ được dùng làm điểm khởi đầu cho việc nhúng ảnh. Cũng có thể nhận các latent của ảnh dưới dạng image; nếu truyền trực tiếp các latent, chúng sẽ không được mã hóa lại.
  • strength (float, tùy chọn, mặc định là 0.8) — Về mặt khái niệm, chỉ ra mức độ biến đổi hình ảnh tham chiếu image. Giá trị phải nằm trong khoảng từ 0 đến 1. image sẽ được dùng làm điểm khởi đầu, với lượng nhiễu được thêm vào càng lớn khi strength càng cao. Số bước khử nhiễu phụ thuộc vào lượng nhiễu được thêm vào ban đầu.
  • negative_prompt (str hoặc list[str], tùy chọn) — Prompt hoặc các prompt không dùng để định hướng việc tạo ảnh. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • output_type (str, tùy chọn, mặc định là "pt") — Định dạng đầu ra của ảnh được tạo. Chọn giữa: "np" (np.array) hoặc "pt" (torch.Tensor).
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.

Trả về

KandinskyPriorPipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

>>> 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

Tham số

  • images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) — danh sách các prompt và hình ảnh để định hướng cho việc tạo hình ảnh.
  • weights — (list[float]): danh sách trọng số cho từng điều kiện trong images_and_prompts
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • negative_prior_prompt (str, tùy chọn) — Prompt không dùng để hướng dẫn quá trình khuếch tán tiên nghiệm. Bị bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • negative_prompt (str hoặc list[str], tùy chọn) — Prompt không dùng để định hướng việc tạo ảnh. Bị bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.

Trả về

KandinskyPriorPipelineOutput hoặc tuple

Hàm được gọi khi sử dụng pipeline trước đó cho nội suy.

Ví dụ:

>>> 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

lớp diffusers.KandinskyV22Img2ImgPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Tham số

  • scheduler (DDIMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).

Pipeline để tạo ảnh từ ảnh sử dụng Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản, sẽ được sử dụng để điều kiện hóa việc tạo ảnh.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] hoặc list[np.ndarray]) — Image, hoặc tensor đại diện cho một lô ảnh, sẽ được sử dụng làm điểm khởi đầu cho quá trình. Cũng có thể nhận image latents dưới dạng image; nếu truyền latents trực tiếp, chúng sẽ không được mã hóa lại.
  • strength (float, tùy chọn, mặc định là 0.8) — Về mặt khái niệm, chỉ ra mức độ biến đổi hình ảnh tham chiếu image. Giá trị phải nằm trong khoảng từ 0 đến 1. image sẽ được dùng làm điểm khởi đầu, với lượng nhiễu được thêm vào càng lớn khi strength càng cao. Số bước khử nhiễu phụ thuộc vào lượng nhiễu được thêm vào ban đầu. Khi strength bằng 1, lượng nhiễu thêm vào sẽ là tối đa và quá trình khử nhiễu sẽ chạy đủ số lần lặp được chỉ định trong num_inference_steps. Do đó, giá trị 1 về cơ bản sẽ bỏ qua image.
  • negative_image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản tiêu cực, sẽ được sử dụng để điều kiện hóa quá trình tạo ảnh.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.
  • callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs sẽ bao gồm danh sách tất cả các tensor như được chỉ định bởi callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, optional) — Danh sách các tensor đầu vào cho hàm callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

KandinskyV22Img2ImgCombinedPipeline

lớp diffusers.KandinskyV22Img2ImgCombinedPipeline

< >

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

Tham số

  • scheduler (DDIMScheduler | DDPMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).
  • prior_prior (PriorTransformer) — Prior chuẩn của unCLIP để xấp xỉ image embedding từ text embedding.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Bộ mã hóa ảnh đóng băng.
  • prior_text_encoder (CLIPTextModelWithProjection) — Bộ mã hóa văn bản đóng băng.
  • prior_tokenizer (CLIPTokenizer) — Tokenizer của lớp CLIPTokenizer.
  • prior_scheduler (UnCLIPScheduler) — Một scheduler được sử dụng kết hợp với prior để tạo embedding ảnh.
  • prior_image_processor (CLIPImageProcessor) — Một image_processor được sử dụng để tiền xử lý ảnh từ clip.

Pipeline kết hợp cho việc tạo ảnh từ ảnh sử dụng Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • prompt (str hoặc list[str]) — Prompt hoặc các prompt để định hướng việc tạo ảnh.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] hoặc list[np.ndarray]) — Image, hoặc tensor đại diện cho một lô ảnh, sẽ được sử dụng làm điểm khởi đầu cho quá trình. Cũng có thể nhận image latents dưới dạng image; nếu truyền latents trực tiếp, chúng sẽ không được mã hóa lại.
  • negative_prompt (str hoặc list[str], tùy chọn) — Prompt hoặc các prompt không dùng để định hướng việc tạo ảnh. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • strength (float, tùy chọn, mặc định là 0.3) — Về mặt khái niệm, chỉ ra mức độ biến đổi hình ảnh tham chiếu image. Giá trị phải nằm trong khoảng từ 0 đến 1. image sẽ được dùng làm điểm khởi đầu, với lượng nhiễu được thêm vào càng lớn khi strength càng cao. Số bước khử nhiễu phụ thuộc vào lượng nhiễu được thêm vào ban đầu. Khi strength bằng 1, lượng nhiễu thêm vào sẽ là tối đa và quá trình khử nhiễu sẽ chạy đủ số lần lặp được chỉ định trong num_inference_steps. Do đó, giá trị 1 về cơ bản sẽ bỏ qua image.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • prior_guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Bài báo Imagen. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • prior_num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • callback (Callable, tùy chọn) — Một hàm được gọi mỗi callback_steps bước trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, tùy chọn, mặc định là 1) — Tần suất gọi hàm callback. Nếu không được chỉ định, callback sẽ được gọi ở mỗi bước.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.
  • prior_callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận của pipeline prior. Hàm này được gọi với các đối số sau: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, tùy chọn) — Danh sách các tensor đầu vào cho hàm prior_callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline prior của bạn.
  • callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận của pipeline decoder. Hàm này được gọi với các đối số sau: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs sẽ bao gồm danh sách tất cả các tensor như được chỉ định bởi callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, optional) — Danh sách các tensor đầu vào cho hàm callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

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 )

Tải tất cả các mô hình xuống CPU bằng accelerate, giảm mức sử dụng bộ nhớ với tác động thấp đến hiệu suất. So với enable_sequential_cpu_offload, phương pháp này di chuyển toàn bộ một mô hình lên GPU mỗi khi phương thức forward của nó được gọi, và mô hình sẽ ở lại trên GPU cho đến khi mô hình tiếp theo chạy. Mức tiết kiệm bộ nhớ thấp hơn so với enable_sequential_cpu_offload, nhưng hiệu suất tốt hơn nhiều nhờ việc thực hiện lặp lại của 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

lớp diffusers.KandinskyV22ControlnetImg2ImgPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Tham số

  • scheduler (DDIMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).

Pipeline để tạo ảnh từ ảnh sử dụng Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản, sẽ được sử dụng để điều kiện hóa việc tạo ảnh.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] hoặc list[np.ndarray]) — Image, hoặc tensor đại diện cho một lô ảnh, sẽ được sử dụng làm điểm khởi đầu cho quá trình. Cũng có thể nhận image latents dưới dạng image; nếu truyền latents trực tiếp, chúng sẽ không được mã hóa lại.
  • strength (float, tùy chọn, mặc định là 0.8) — Về mặt khái niệm, chỉ ra mức độ biến đổi hình ảnh tham chiếu image. Giá trị phải nằm trong khoảng từ 0 đến 1. image sẽ được dùng làm điểm khởi đầu, với lượng nhiễu được thêm vào càng lớn khi strength càng cao. Số bước khử nhiễu phụ thuộc vào lượng nhiễu được thêm vào ban đầu. Khi strength bằng 1, lượng nhiễu thêm vào sẽ là tối đa và quá trình khử nhiễu sẽ chạy đủ số lần lặp được chỉ định trong num_inference_steps. Do đó, giá trị 1 về cơ bản sẽ bỏ qua image.
  • hint (torch.Tensor) — Điều kiện của controlnet.
  • negative_image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản tiêu cực, sẽ được sử dụng để điều kiện hóa quá trình tạo ảnh.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • callback (Callable, tùy chọn) — Một hàm được gọi mỗi callback_steps bước trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, tùy chọn, mặc định là 1) — Tần suất gọi hàm callback. Nếu không được chỉ định, callback sẽ được gọi ở mỗi bước.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

KandinskyV22InpaintPipeline

lớp diffusers.KandinskyV22InpaintPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Tham số

  • scheduler (DDIMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).

Pipeline cho việc inpainting hình ảnh theo hướng dẫn văn bản sử dụng Kandinsky2.1

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản, sẽ được sử dụng để điều kiện hóa việc tạo ảnh.
  • image (PIL.Image.Image) — Image, hoặc tensor đại diện cho một lô ảnh sẽ được inpaint, tức là một phần của ảnh sẽ bị che đi bằng mask_image và được tô lại theo prompt.
  • mask_image (np.array) — Tensor đại diện cho một lô ảnh, dùng để che image. Các pixel trắng trong mask sẽ được tô lại, trong khi các pixel đen sẽ được giữ nguyên. Nếu mask_image là ảnh PIL, nó sẽ được chuyển đổi thành một kênh (độ sáng) trước khi sử dụng. Nếu là tensor, nó nên chứa một kênh màu (L) thay vì 3, do đó hình dạng mong đợi sẽ là (B, H, W, 1).
  • negative_image_embeds (torch.Tensor hoặc list[torch.Tensor]) — Các embedding ảnh clip cho prompt văn bản tiêu cực, sẽ được sử dụng để điều kiện hóa quá trình tạo ảnh.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.
  • callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs sẽ bao gồm danh sách tất cả các tensor như được chỉ định bởi callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, optional) — Danh sách các tensor đầu vào cho hàm callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

KandinskyV22InpaintCombinedPipeline

lớp diffusers.KandinskyV22InpaintCombinedPipeline

< >

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

Tham số

  • scheduler (DDIMScheduler | DDPMScheduler) — Một scheduler được sử dụng kết hợp với unet để tạo ra các latent của ảnh.
  • unet (UNet2DConditionModel) — Kiến trúc U-Net có điều kiện để khử nhiễu nhúng ảnh.
  • movq (VQModel) — Bộ giải mã MoVQ để tạo ảnh từ các biến tiềm ẩn (latents).
  • prior_prior (PriorTransformer) — Prior chuẩn của unCLIP để xấp xỉ image embedding từ text embedding.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Bộ mã hóa ảnh đóng băng.
  • prior_text_encoder (CLIPTextModelWithProjection) — Bộ mã hóa văn bản đóng băng.
  • prior_tokenizer (CLIPTokenizer) — Tokenizer của lớp CLIPTokenizer.
  • prior_scheduler (UnCLIPScheduler) — Một scheduler được sử dụng kết hợp với prior để tạo embedding ảnh.
  • prior_image_processor (CLIPImageProcessor) — Một image_processor được sử dụng để tiền xử lý ảnh từ clip.

Pipeline kết hợp cho việc tạo ảnh inpainting sử dụng Kandinsky

Mô hình này kế thừa từ DiffusionPipeline. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.)

__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

Tham số

  • prompt (str hoặc list[str]) — Prompt hoặc các prompt để định hướng việc tạo ảnh.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] hoặc list[np.ndarray]) — Image, hoặc tensor đại diện cho một lô ảnh, sẽ được sử dụng làm điểm khởi đầu cho quá trình. Cũng có thể nhận image latents dưới dạng image; nếu truyền latents trực tiếp, chúng sẽ không được mã hóa lại.
  • mask_image (np.array) — Tensor đại diện cho một lô ảnh, dùng để che image. Các pixel trắng trong mask sẽ được tô lại, trong khi các pixel đen sẽ được giữ nguyên. Nếu mask_image là ảnh PIL, nó sẽ được chuyển đổi thành một kênh (độ sáng) trước khi sử dụng. Nếu là tensor, nó nên chứa một kênh màu (L) thay vì 3, do đó hình dạng mong đợi sẽ là (B, H, W, 1).
  • negative_prompt (str hoặc list[str], tùy chọn) — Prompt hoặc các prompt không dùng để định hướng việc tạo ảnh. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu guidance_scale nhỏ hơn 1).
  • num_images_per_prompt (int, tùy chọn, mặc định là 1) — Số lượng hình ảnh cần tạo cho mỗi prompt.
  • guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Imagen Paper. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • height (int, tùy chọn, mặc định là 512) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel.
  • width (int, tùy chọn, mặc định là 512) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel.
  • prior_guidance_scale (float, tùy chọn, mặc định là 4.0) — Thang độ dẫn hướng như được định nghĩa trong Classifier-Free Diffusion Guidance. guidance_scale được định nghĩa là w của phương trình 2. trong Bài báo Imagen. Thang độ dẫn hướng được kích hoạt bằng cách đặt guidance_scale > 1. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với prompt văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn.
  • prior_num_inference_steps (int, tùy chọn, mặc định là 100) — Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn với chi phí là suy luận chậm hơn.
  • generator (torch.Generator hoặc list[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định.
  • latents (torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trước, lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo bằng cách lấy mẫu sử dụng generator ngẫu nhiên được cung cấp.
  • output_type (str, tùy chọn, mặc định là "pil") — Định dạng đầu ra của ảnh được tạo. Chọn một trong các tùy chọn: "pil" (PIL.Image.Image), "np" (np.array) hoặc "pt" (torch.Tensor).
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một ImagePipelineOutput thay vì một tuple thông thường hay không.
  • prior_callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước denoising trong quá trình suy luận. Hàm này được gọi với các đối số sau: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, tùy chọn) — Danh sách các tensor đầu vào cho hàm prior_callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.
  • callback_on_step_end (Callable, tùy chọn) — Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận. Hàm này được gọi với các đối số sau: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs sẽ bao gồm danh sách tất cả các tensor như được chỉ định bởi callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, optional) — Danh sách các tensor đầu vào cho hàm callback_on_step_end. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số callback_kwargs. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính ._callback_tensor_inputs của lớp pipeline của bạn.

Trả về

ImagePipelineOutput hoặc tuple

Hàm được gọi khi gọi pipeline cho việc sinh.

Ví dụ:

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