Buckets:
DDIM
Denoising Diffusion Implicit Models (DDIM) by Jiaming Song, Chenlin Meng and Stefano Ermon.
The abstract from the paper is:
Denoising diffusion probabilistic models (DDPMs) have achieved high quality image generation without adversarial training, yet they require simulating a Markov chain for many steps to produce a sample. To accelerate sampling, we present denoising diffusion implicit models (DDIMs), a more efficient class of iterative implicit probabilistic models with the same training procedure as DDPMs. In DDPMs, the generative process is defined as the reverse of a Markovian diffusion process. We construct a class of non-Markovian diffusion processes that lead to the same training objective, but whose reverse process can be much faster to sample from. We empirically demonstrate that DDIMs can produce high quality samples 10× to 50× faster in terms of wall-clock time compared to DDPMs, allow us to trade off computation for sample quality, and can perform semantically meaningful image interpolation directly in the latent space.
The original codebase can be found at ermongroup/ddim.
DDIMPipeline[[diffusers.DDIMPipeline]]
diffusers.DDIMPipeline[[diffusers.DDIMPipeline]]
Pipeline for image generation.
This model inherits from DiffusionPipeline. Check the superclass documentation for the generic methods implemented for all pipelines (downloading, saving, running on a particular device, etc.).
__call__diffusers.DDIMPipeline.__call__https://github.com/huggingface/diffusers/blob/vr_12652/src/diffusers/pipelines/ddim/pipeline_ddim.py#L57[{"name": "batch_size", "val": ": int = 1"}, {"name": "generator", "val": ": torch._C.Generator | list[torch._C.Generator] | None = None"}, {"name": "eta", "val": ": float = 0.0"}, {"name": "num_inference_steps", "val": ": int = 50"}, {"name": "use_clipped_model_output", "val": ": bool | None = None"}, {"name": "output_type", "val": ": str | None = 'pil'"}, {"name": "return_dict", "val": ": bool = True"}]- batch_size (int, optional, defaults to 1) --
The number of images to generate.
- generator (
torch.Generator, optional) -- Atorch.Generatorto make generation deterministic. - eta (
float, optional, defaults to 0.0) -- Corresponds to parameter eta (η) from the DDIM paper. Only applies to the DDIMScheduler, and is ignored in other schedulers. A value of0corresponds to DDIM and1corresponds to DDPM. - num_inference_steps (
int, optional, defaults to 50) -- The number of denoising steps. More denoising steps usually lead to a higher quality image at the expense of slower inference. - use_clipped_model_output (
bool, optional, defaults toNone) -- IfTrueorFalse, see documentation for DDIMScheduler.step(). IfNone, nothing is passed downstream to the scheduler (useNonefor schedulers which don't support this argument). - output_type (
str, optional, defaults to"pil") -- The output format of the generated image. Choose betweenPIL.Imageornp.array. - return_dict (
bool, optional, defaults toTrue) -- Whether or not to return a ImagePipelineOutput instead of a plain tuple.0ImagePipelineOutput ortupleIfreturn_dictisTrue, ImagePipelineOutput is returned, otherwise atupleis returned where the first element is a list with the generated images
The call function to the pipeline for generation.
Example:
>>> 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")
Parameters:
unet (UNet2DModel) : A UNet2DModel to denoise the encoded image latents.
scheduler (SchedulerMixin) : A scheduler to be used in combination with unet to denoise the encoded image. Can be one of DDPMScheduler, or DDIMScheduler.
Returns:
[ImagePipelineOutput](/docs/diffusers/pr_12652/en/api/pipelines/ddim#diffusers.ImagePipelineOutput) or tuple``
If return_dict is True, ImagePipelineOutput is returned, otherwise a tuple is
returned where the first element is a list with the generated images
ImagePipelineOutput[[diffusers.ImagePipelineOutput]]
diffusers.ImagePipelineOutput[[diffusers.ImagePipelineOutput]]
Output class for image pipelines.
Parameters:
images (List[PIL.Image.Image] or np.ndarray) : List of denoised PIL images of length batch_size or NumPy array of shape (batch_size, height, width, num_channels).
Xet Storage Details
- Size:
- 6.21 kB
- Xet hash:
- 875991aa2de978bf66ce281ef61bda81c51ba0fb66b57a35b49b53e2c245ea24
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.