关于机器学习:使用扩散模型从文本生成图像

3次阅读

共计 2896 个字符,预计需要花费 8 分钟才能阅读完成。

1 代的 DALLE 应用 VQ-VAE 的改进版,2 代的 DALLE2 通过应用扩散模型将图片的生成晋升到了一个新的高度,然而因为其计算量很大而且没有开源,咱们普通用户并没有方法应用,然而 Stable Diffusion 的呈现改变现状,能够让咱们普通用户也能够间接应用,并且以前绝对于 Disco Diffusion, Stable Diffusion 生成的图片更加实用;绝对于 DALLE 2,Stable Diffusion 须要占用的资源更少,这样咱们也能够在本人的电脑中应用它生成高质量的图片。

在这篇文章中,将展现如何应用抱脸的扩散包通过文本生成图像,还有就一个一个不好的音讯,因为这个模型的呈现 google 的 colab 可能又要减少一些限度了。

从 DALLE 到 Stable Diffusion

咱们后面的文章也介绍过 OpenAI 的 DALLE-2 模型还有他的开源实现,它能够让咱们从文本中创立高质量的图像。

然而 DALLE2 是免费的用户只有一些收费的额度,如果收费额度应用结束就须要付费了,所以我决定寻找代替计划,并偶尔发现了 Hugging Face 的一条新闻,他们公布了一个扩散模型的包 diffusers,能够让咱们间接应用。

应用 diffusers 从文本生成图像

首先,应用扩散器包从文本生成图像咱们首先要有一个 GPU,这里就是用 google 的 colab,然而可能 colab 当前会对这样的利用进行限度了,这个咱们在最初加以阐明。

有了 gpu 上面就是要安装包:

  • diffusers==0.2.4 — 这是咱们次要的包
  • transformers — 这个是抱脸的成名的根底包
  • scipy — 科学计算的
  • ftfy — 解决一些文本编码问题
  • ipywidgets>=7,<8 — notebook 的一个小组件的根底包
  • torch —这个就不用说了 colab 也曾经装置了
  • pillow — 解决图片的 colab 也带了

所以咱们只有用上面命令装置就能够了:

 !pip install diffusers==0.2.4
 !pip install transformers scipy ftfy
 !pip install "ipywidgets>=7,<8"

咱们装置 ipywidgets 的目标是在 Google Colab 上启用内部的小部件

 # enabling widgets (to be able to login to hugging face)
 from google.colab import output
 output.enable_custom_widget_manager()

而后须要用 token 登录 Hugging Face

 from huggingface_hub import notebook_login
 notebook_login()

如果执行胜利会呈现一个小部件,在其中输出来自 Hugging Face 的 token 后会看到如下内容:

 Login successful Your token has been saved to /root/.huggingface/token Authenticated through git-credential store but this isn't the helper defined on your machine. You might have to re-authenticate when pushing to the Hugging Face Hub. Run the following command in your terminal in case you want to set this credential helper as the default  git config --global credential.helper store

这就阐明咱们的环境曾经筹备结束了,上面开始创立咱们的流程:

 import torchfrom diffusers import StableDiffusionPipeline
 
 pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token=True)

在这里咱们应用的是 v1-4 模型,而后将其放入 GPU 中(还有很多其余模型,能够随便应用)

 pipe = pipe.to("cuda")

应用 Pytorch 的 autocast 运行推理

 from torch import autocast
 prompt = "photo of a panda surfing"
 with autocast("cuda"):
   image = pipe(prompt)["sample"][0]
   image.save(f"panda_surfer.png")
 image

后果如下:

后果十分不错。咱们也能够调整一些参数,例如 guide_scale、step 和设置随机种子(用于确定性输入),来管制咱们的模型输入,具体的更具体的应用形式请看:

https://huggingface.co/blog/s…

Google Colab 的 GPU 资源可能要撑不住了

最初说下咱们下面提到的问题,Colab 有 Pro 和 Pro Plus 服务,如果你付费,那么取得 GPU 资源更有保障,能够应用更大的显存,占用资源工夫能够更长。拿 Pro 来说,每一个月只须要缴纳 10 美元,你就能够轻易使,保障随时都有 GPU 能够用。

然而最近,Google 批改了服务条款。即使你每月付费应用 Pro 和 Pro + 服务,却也仍然要受到明确的计算资源限度了

Google Colab 素来就禁止挖矿,这个是咱们早就晓得的,然而 Stable Diffusion 的呈现,能够让咱们用 Google Colab 的 GPU 资源当成后盾,而后提供自家的人工智能绘图服务,这个就很离谱了。尽管 Google Colab 会对长期不操作的我的项目进行主动敞开,所以每次提供的时长不稳固。然而毕竟能够应用脚本主动重启啊。

OPEN AI 的报价是大略 0.15 美元一张图片,而 Colab 只须要 10 美元就能够轻易用,利用 Gradio 等凋谢框架提供 Web APP 界面进行服务,那你的老本简直是 0. 于是你能够把单次服务价格压到足够低,而后仍然赚钱。所以 google 只能紧急批改协定,确保没有人能够用这种看似非法的伎俩没完没了「薅羊毛」。

并且有的用户曾经收到了勾销 pro 服务的邮件,并进行了退款。

咱们先不管好与坏,然而这件事件能够说是人工智能真的抓住了理论痛点,当大家发现人工智能绘图的成果真的能够达到甚至是局部达到咱们冀望的时候,这样的潜在的需要就暴发进去了,因为咱们的发明模型的目标是解决咱们理论问题,而不是去发明了一个人工智障并且还要吹 x 代替人类。

在这件事上我看到了人工智能利用融入到了咱们的生存。而且理由还非常的正当,Google 找不到禁止应用它的理由,只能转而采纳资源配给制来缓解压力,我感觉这才是人工智能倒退的最终目标。最初还是心愿 google 能找到一个更好的解决办法,毕竟 Colab 真的很好用。

https://avoid.overfit.cn/post/63424c507ff04285b4620ec4f7b198c7

正文完
 0