Buckets:
DDIM
Denoising Diffusion Implicit Models (DDIM) de Jiaming Song, Chenlin Meng y Stefano Ermon.
El resumen del artículo es:
Los modelos probabilísticos de difusión de desruido (DDPM) han logrado una generación de imágenes de alta calidad sin entrenamiento adversarial, pero requieren simular una cadena de Markov durante muchos pasos para producir una muestra. Para acelerar el muestreo, presentamos los modelos implícitos de difusión de desruido (DDIM), una clase más eficiente de modelos probabilísticos iterativos implícitos con el mismo procedimiento de entrenamiento que los DDPM. En los DDPM, el proceso generativo se define como la inversa de un proceso de difusión markoviano. Construimos una clase de procesos de difusión no markovianos que conducen al mismo objetivo de entrenamiento, pero cuyo proceso inverso permite un muestreo mucho más rápido. Demostramos empíricamente que los DDIM pueden producir muestras de alta calidad de 10 a 50 veces más rápido en términos de tiempo real en comparación con los DDPM, nos permiten intercambiar cómputo por calidad de muestra y pueden realizar interpolaciones de imágenes con significado semántico directamente en el espacio latente.
El código original se puede encontrar en ermongroup/ddim.
DDIMPipeline[[diffusers.DDIMPipeline]]
diffusers.DDIMPipeline[[diffusers.DDIMPipeline]]
diffusers.DDIMPipeline(unet: UNet2DModel, scheduler: DDIMScheduler)
Parámetros:
unet (UNet2DModel) : Un UNet2DModel para desruidar los latentes de imagen codificados.
scheduler (SchedulerMixin) : Un scheduler para usar en combinación con unet para desruidar la imagen codificada. Puede ser uno de DDPMScheduler o DDIMScheduler.
Pipeline para la generación de imágenes.
Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos implementados en todas las tuberías (descarga, guardado, ejecución en un dispositivo específico, etc.).
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)
Parámetros:
batch_size (int, opcional, valor predeterminado 1) : El número de imágenes a generar.
generator (torch.Generator, opcional) : Un torch.Generator para hacer que la generación sea determinista.
eta (float, opcional, valor predeterminado 0.0) : Corresponde al parámetro eta (η) del artículo DDIM. Solo se aplica al DDIMScheduler y se ignora en otros programadores. Un valor de 0 corresponde a DDIM y 1 corresponde a DDPM.
num_inference_steps (int, opcional, valor predeterminado 50) : El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
use_clipped_model_output (bool, opcional, valor predeterminado None) : Si es True o False, consulte la documentación de DDIMScheduler.step(). Si es None, no se transmite nada al programador (use None para programadores que no admiten este argumento).
output_type (str, opcional, por defecto "pil") : El formato de salida de la imagen generada. Elija entre "pil" (PIL.Image), "np" (np.array) o "pt" (torch.Tensor).
return_dict (bool, opcional, por defecto True) : Si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
Devuelve: ImagePipelineOutput o tuple
Si return_dict es True, se devuelve ImagePipelineOutput; en caso contrario, se devuelve una tuple cuyo primer elemento es una lista con las imágenes generadas
La función de llamada para el pipeline de generación.
Ejemplo:
>>> 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)
Parámetros:
images (List[PIL.Image.Image] o np.ndarray) : Lista de imágenes PIL desruidas de longitud batch_size o matriz NumPy de forma (batch_size, height, width, num_channels).
Clase de salida para pipelines de imágenes.
Xet Storage Details
- Size:
- 6.24 kB
- Xet hash:
- 7212002603bf0675a6f4d1b2c5b7f1cb1fbd734fc12f08d845cb465399e2115f
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.