Diffusion相关二

Diffusers是huggingface的模型库,专注于扩散模型,提供高影响力系统的开源实现如dALLE和Imagen。它有一个易于使用的API,支持模型推理和训练。文章详细介绍了图像生成的管道,包括编码、解码和去噪过程,以及调度器的作用,如DDIM和DDPM调度协议。用户可以通过不同的调度器与模型交互,实现高效去噪和图像生成。
摘要由CSDN通过智能技术生成

Diffusers了解

https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/diffusers_intro.ipynb#scrollTo=3xl4aBa3eEcr

Diffusers是hugging face发起的用于专门用来收集扩散模型的模型库,就是包含了很多开源的扩散模型。
除了模型库之外,还提供了更多的目标功能
1、复制具高影响力的机器学习系统,例如 dALLE 和 Imagen,使其可供公众使用。
2、创建一个易于使用的 API,使人们能够用现有模型进行推理和训练自己的模型。

管道:
就是指生成图像的整个流程,流程图吧,比如stable diffusion的vae编码+unet+循环扩散+vae解码编码+结果
调度器:
就是指 用于控制噪声产生方法,去噪方法,即从UNet输出恢复更清晰图像的方法,去噪循环,即多次采样去噪循环生成最终结果的那个算法。调度器是无参数的(没有可训练的权重)。
在Diffuser中,与模型一样,调度程序可以保存并用 save _ config ()和 from _ config ()加载。
调度器典型用户

import tqdm
# 初始噪声
sample = noisy_sample
# timesteps代表去噪时间步变量
for i, t in enumerate(tqdm.tqdm(scheduler.timesteps)):
  # 预测噪声残差(噪声较小图像与输入图像的某种差)
  with torch.no_grad():
      residual = model(sample, t).sample

	  # 去噪
	  sample = scheduler.step(residual, t, sample).prev_sample
	
	  # 显示中间结果
	  if (i + 1) % 50 == 0:
	      display_sample(sample, i + 1)

使用不同调度器: 扩散模型库的一个令人兴奋的前景是,不同的调度协议可以与不同的模型工作,但没有一个一刀切的解决方案!当前,DDIM 作为 DDPM 的交换工作,但这并不普遍(并且代表了一个有趣的研究问题)。
DDIM 可以将 DDPM 调度程序运行1000个去噪步骤,显著减少到 50个推理步骤。
阅读模型卡片以了解哪些模型检查点可以与哪些调度程序一起使用,这一点很重要。https://github.com/huggingface/diffusers/tree/main/src/diffusers/schedulers

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值