Buckets:
DDIM
Denoising Diffusion Implicit Models (DDIM) của Jiaming Song, Chenlin Meng và Stefano Ermon.
Tóm tắt từ bài báo là:
Các mô hình xác suất khuếch tán khử nhiễu (DDPM) đã đạt được chất lượng tạo ảnh cao mà không cần huấn luyện đối kháng, nhưng chúng yêu cầu mô phỏng một chuỗi Markov qua nhiều bước để tạo ra một mẫu. Để tăng tốc quá trình lấy mẫu, chúng tôi giới thiệu các mô hình xác suất ẩn khử nhiễu (DDIM), một lớp mô hình xác suất ẩn lặp hiệu quả hơn với cùng quy trình huấn luyện như DDPM. Trong DDPM, quá trình sinh được định nghĩa là quá trình ngược của một quá trình khuếch tán Markov. Chúng tôi xây dựng một lớp các quá trình khuếch tán phi Markov dẫn đến cùng mục tiêu huấn luyện, nhưng quá trình ngược của chúng có thể lấy mẫu nhanh hơn nhiều. Chúng tôi chứng minh thực nghiệm rằng DDIM có thể tạo ra các mẫu chất lượng cao nhanh hơn 10 lần đến 50 lần về thời gian thực so với DDPM, cho phép chúng tôi đánh đổi giữa tính toán và chất lượng mẫu, và có thể thực hiện nội suy ảnh có ý nghĩa ngữ nghĩa trực tiếp trong không gian ẩn.
Mã nguồn gốc có thể được tìm thấy tại ermongroup/ddim.
DDIMPipeline[[diffusers.DDIMPipeline]]
diffusers.DDIMPipeline[[diffusers.DDIMPipeline]]
diffusers.DDIMPipeline(unet: UNet2DModel, scheduler: DDIMScheduler)
Tham số:
unet (UNet2DModel) : Một UNet2DModel để khử nhiễu các latents ảnh đã mã hóa.
scheduler (SchedulerMixin) : Một scheduler được sử dụng kết hợp với unet để khử nhiễu ảnh đã mã hóa. Có thể là một trong DDPMScheduler, hoặc DDIMScheduler.
Pipeline để tạo hình ảnh.
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 được triển khai cho tất cả các pipeline (tải xuống, lưu, chạy trên một thiết bị cụ thể, v.v.).
call[[diffusers.DDIMPipeline.call]]
__call__(batch_size: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, eta: float = 0.0, num_inference_steps: int = 50, use_clipped_model_output: bool | None = None, output_type: str | None = 'pil', return_dict: bool = True)
Tham số:
batch_size (int, tuỳ chọn, mặc định là 1) : Số lượng hình ảnh cần tạo.
generator (torch.Generator, tùy chọn) : Một torch.Generator để đảm bảo quá trình sinh là tất định.
eta (float, optional, mặc định là 0.0) : Tương ứng với tham số eta (η) từ bài báo DDIM. Chỉ áp dụng cho DDIMScheduler và bị bỏ qua ở các scheduler khác. Giá trị 0 tương ứng với DDIM và 1 tương ứng với DDPM.
num_inference_steps (int, optional, mặc định là 50) : 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 cái giá là suy luận chậm hơn.
use_clipped_model_output (bool, tuỳ chọn, mặc định là None) : Nếu là True hoặc False, xem tài liệu cho DDIMScheduler.step(). Nếu là None, không có gì được truyền xuống phía dưới cho trình lập lịch (dùng None cho các trình lập lịch không hỗ trợ tham số này).
output_type (str, tùy chọn, mặc định là "pil") : Định dạng đầu ra của hình ảnh được tạo ra. Chọn giữa "pil" (PIL.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.
Trả về: ImagePipelineOutput hoặc tuple
Nếu return_dict là True, ImagePipelineOutput sẽ được trả về, ngược lại một tuple sẽ được trả về trong đó phần tử đầu tiên là một danh sách chứa các hình ảnh đã được tạo
Hàm gọi call của pipeline để tạo nội dung.
Ví dụ:
>>> from diffusers import DDIMPipeline
>>> import PIL.Image
>>> import numpy as np
>>> # load model and scheduler
>>> pipe = DDIMPipeline.from_pretrained("fusing/ddim-lsun-bedroom")
>>> # run pipeline in inference (sample random noise and denoise)
>>> image = pipe(eta=0.0, num_inference_steps=50)
>>> # process image to PIL
>>> image_processed = image.cpu().permute(0, 2, 3, 1)
>>> image_processed = (image_processed + 1.0) * 127.5
>>> image_processed = image_processed.numpy().astype(np.uint8)
>>> image_pil = PIL.Image.fromarray(image_processed[0])
>>> # save image
>>> image_pil.save("test.png")
ImagePipelineOutput[[diffusers.ImagePipelineOutput]]
diffusers.ImagePipelineOutput[[diffusers.ImagePipelineOutput]]
diffusers.ImagePipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray)
Tham số:
images (List[PIL.Image.Image] hoặc np.ndarray) : Danh sách các hình ảnh PIL đã khử nhiễu có độ dài batch_size hoặc mảng NumPy có hình dạng (batch_size, height, width, num_channels).
Lớp đầu ra cho các pipeline hình ảnh.
Xet Storage Details
- Size:
- 6.75 kB
- Xet hash:
- 3408bb16cf363340b989f06b1c94977bbd15f867c73d17f63ed13e0866f08aed
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.