diffusers
v0.31.0
?扩散器是用于生成图像,音频甚至分子3D结构的最先进的扩散模型的首选库。无论您是寻找简单的推理解决方案还是培训自己的扩散模型,?扩散器是一个支持两者的模块化工具箱。我们的图书馆的设计侧重于性能,简单的简单性和对抽象的可定制性。
?扩散器提供了三个核心组成部分:
我们建议安装吗?来自PYPI或CONDA的虚拟环境中的扩散器。有关安装Pytorch和亚麻的更多详细信息,请参考其官方文件。
使用pip
(官方包):
pip install --upgrade diffusers[torch]
与conda
(由社区维护):
conda install -c conda-forge diffusers
使用pip
(官方包):
pip install --upgrade diffusers[flax]
请参阅如何在Apple Silicon指南中使用稳定扩散的方法。
生成输出非常容易?扩散器。要从文本中生成图像,请使用从from_pretrained
方法加载任何预验证的扩散模型(浏览中心以获取30,000多个检查点):
from diffusers import DiffusionPipeline
import torch
pipeline = DiffusionPipeline . from_pretrained ( "stable-diffusion-v1-5/stable-diffusion-v1-5" , torch_dtype = torch . float16 )
pipeline . to ( "cuda" )
pipeline ( "An image of a squirrel in Picasso style" ). images [ 0 ]
您还可以挖掘模型和调度程序工具箱来构建自己的扩散系统:
from diffusers import DDPMScheduler , UNet2DModel
from PIL import Image
import torch
scheduler = DDPMScheduler . from_pretrained ( "google/ddpm-cat-256" )
model = UNet2DModel . from_pretrained ( "google/ddpm-cat-256" ). to ( "cuda" )
scheduler . set_timesteps ( 50 )
sample_size = model . config . sample_size
noise = torch . randn (( 1 , 3 , sample_size , sample_size ), device = "cuda" )
input = noise
for t in scheduler . timesteps :
with torch . no_grad ():
noisy_residual = model ( input , t ). sample
prev_noisy_sample = scheduler . step ( noisy_residual , t , input ). prev_sample
input = prev_noisy_sample
image = ( input / 2 + 0.5 ). clamp ( 0 , 1 )
image = image . cpu (). permute ( 0 , 2 , 3 , 1 ). numpy ()[ 0 ]
image = Image . fromarray (( image * 255 ). round (). astype ( "uint8" ))
image
查看即可今天启动您的扩散之旅的快速启动!
文档 | 我能学到什么? |
---|---|
教程 | 一个基本的速成课程,用于学习如何使用图书馆最重要的功能,例如使用模型和调度程序来构建自己的扩散系统,并训练自己的扩散模型。 |
加载中 | 指南如何加载和配置库的所有组件(管道,模型和调度程序),以及如何使用不同的调度程序。 |
推理的管道 | 指南如何将管道用于不同的推理任务,批处理生成,控制生成的输出和随机性以及如何向库贡献管道。 |
优化 | 指南如何优化扩散模型以更快地运行并消耗更少的内存。 |
训练 | 指南如何通过不同的训练技术训练不同任务的扩散模型。 |
我们来自开源社区的贡献!如果您想为此图书馆做出贡献,请查看我们的贡献指南。您可以注意要解决的问题为图书馆做出贡献。
另外,在我们的公共不和谐频道中说。我们讨论有关扩散模型的最热门趋势,互相帮助,贡献,个人项目或只是闲逛。
任务 | 管道 | ?中心 |
---|---|---|
无条件的图像生成 | DDPM | Google/ddpm-ema-church-256 |
文本对图像 | 稳定的扩散文本对图像 | 稳定 - 扩散-V1-5/稳定 - 扩散-V1-5 |
文本对图像 | 拆平 | kakaobrain/karlo-v1-alpha |
文本对图像 | deepfloyd if | deepfloyd/if-i-xl-v1.0 |
文本对图像 | 康定斯基 | Kandinsky-Community/Kandinsky-2-2二十码 |
文本指导的图像到图像 | 控制网 | llyasviel/sd-controlnet-canny |
文本指导的图像到图像 | consendpix2pix | timbrooks/consend-pix2pix |
文本指导的图像到图像 | 稳定的扩散图像到图像 | 稳定 - 扩散-V1-5/稳定 - 扩散-V1-5 |
文本指导的图像介绍 | 稳定的扩散介绍 | 跑道/稳定扩散侵蚀 |
图像变化 | 稳定的扩散图像变化 | lambdalabs/sd-image-riatiations-diffuser |
超级分辨率 | 稳定的扩散高档 | 稳定/稳定扩散-X4-Upscaler |
超级分辨率 | 稳定的扩散潜在高档 | 稳定性/SD-X2 LATENT-UPSCALER |
谢谢您使用我们❤️。
该图书馆旨在将许多不同作者的先前工作构成,如果没有出色的研究和实施,就不可能。我们要特别感谢以下对我们开发的实现,并且没有此事,API今天就不可能得到那么好处:
我们还要感谢@heejkoo对扩散模型的论文,代码和资源的非常有用的概述,以及@crowsonkb和 @rromb,以获取有用的讨论和见解。
@misc { von-platen-etal-2022-diffusers ,
author = { Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Dhruv Nair and Sayak Paul and William Berman and Yiyi Xu and Steven Liu and Thomas Wolf } ,
title = { Diffusers: State-of-the-art diffusion models } ,
year = { 2022 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/huggingface/diffusers} }
}