[Stable Diffusion] 三句话,让Ai帮你画18万张图
本文介绍Stable Diffusion的快速上手,本地部署,以及更多有趣的玩法展示。
在 DALL-E 2 和 Imagen 之后,AI绘图领域又一个热乎的深度学习模型出炉——Stable Diffusion 。8月份发布的 Stable Diffusion 更加高效且轻量,可以在消费级 GPU 上运行。StableAI公司表示:“它在速度和质量上的突破意味着它可以在消费者级的 GPU 上运行。这将允许研究人员和公众在一系列条件下运行它,并使图像生成普及化。”
这意味着现在你只需一句话和几十秒的时间,就可以让你脑海中天马行空的画面出现在你眼前:
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/ed29a74e422a45f08e62488c20b53542.webp)
或者随手画一笔,让ai帮你加“亿点点“细节:
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/758dfc77d06646d8944100790e458555.webp)
怎么上手玩起来
前两种方式都比较简单,Colab看起来复杂,实际上一步一步按照提示来,也很简单。所以本文着重讲解本地部署的步骤和如何解决会遇到的坑。
- 官方在线Web App - DreamStudio
- 👍 最易上手,登录即可直接使用
- 👍 可视化调参
- 😡 免费次数有限
- Google Colab运行
- 👍 免费,次数无限
- 😥 操作略微繁琐
- 😥 不能持久运行
- 本地、云服务器部署
- 👍 本地部署免费,次数无限
- 👍 功能完整,可玩性高
- 😥 硬件要求高
- 😥 租用云服务挺贵
- 😥 初次部署较为麻烦
DreamStudio
最简单无脑的上手途径,打开官网,输入一段话,等待结果出来就可以。没啥好说的,适合快速上手体验一下,或者付费玩家。
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/5ed2dedd85b0498f92bfe67ccb94dbd7.webp)
Google Colab运行
“Colab”,是 Google Research 团队开发的一款产品。可以通过浏览器编写和执行Python。可以免费分配使用包括 GPU 在内的计算资源。
打开这个Colab笔记本页面,按照步骤和提示执行就OK了。可能存在的坑模型的载入,需要用到Hugging Face ,不过也都不是什么问题。
虽然看着繁琐,但是可以薅羊毛用免费的显卡资源,性能也还不错,还是很香的。 colab.research.google.com/github/hugg…
本地/云服务器部署
目前存在多个基于官方代码仓库fork出来的不同版本,可以有不同的部署和运行方式,包括docker部署,webUI。这里讲解基于官方的原版进行部署和使用,其他的方式都大同小异。
硬件
本地10G显存以上的显卡(显存不够也有其他办法),或租用拥有对应配置的云服务
环境依赖
Python,Conda
具体步骤
1. 下载模型权重文件
这个放在第一位是因为权重文件太大了,建议先下载起来,其他步骤在操作时,他可以在后台慢慢下载。
目前最新的是sd-v1-4.ckpt,版本越高,训练的数据量越大,下载最新版本即可,4.27GB
去huggingface下载:huggingface.co/CompVis/sta…
curl下载:
curl https://www.googleapis.com/storage/v1/b/aai-blog-files/o/sd-v1-4.ckpt?alt=media > sd-v1-4.ckpt
2. 安装python
dddd, 不赘述
3. 安装Conda
Conda 是一个依赖包和环境管理工具,有Anaconda 和 Miniconda两个版本,这里使用Miniconda就可以。
可以官网下载对应的安装包,也可以命令行下载安装。
如果安装成功,可以通过 conda --version 查看版本,conda准备好就可以进入下一步。
4. 拉取Stable-Diffusion代码库到本地
git clone https://github.com/CompVis/stable-diffusion.git
cd stable-diffusion/
5. 创建并激活 Conda 环境
a. 创建ldm环境
进入Stable Diffusion代码目录,使用environment.yaml文件,创建Conda环境。
conda env create -f environment.yaml
这个命令会根据environment.yaml文件,创建一个名字叫做ldm的虚拟环境,下载对应的依赖。这一步是很容易出现问题的地方,因为依赖比较多,安装时间比较长。可能会出现某些依赖安装时间特别长,最后失败的情况。
可能出现的问题:
- 因为过程中会用到pip安装依赖,如果安装依赖时间过长,可以在conda create执行前,先配置pip的国内镜像。根据我实际尝试的情况,建议使用清华镜像,阿里云镜像也很慢。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 如果出现:Pip subprocess error: ERROR: Command errored out with exit status 128: git fetch -q ... 的错误,则检查当前网络环境对github的访问是否通畅。
- 安装失败尝试再次安装时,可能出现提示环境已存在。这时候可以删掉原来的ldm环境,再重试安装。
# 查看已存在环境
conda env list
# 先切换到base环境
conda activate base
# 删除ldm
conda env remove --name ldm
b. 激活ldm环境
conda activate ldm
6. 生成脚本跑起来!
走完前面这些步骤,确认一下你的模型权重文件下载好了没有,--ckp 参数就指向这个文件。按照下面的参数,执行txt2img.py脚本。
python scripts/txt2img.py --prompt "rainbow ice cream cone" --plms --ckpt sd-v1-4.ckpt --skip_grid --n_samples 1
如果执行成功,你应该可以在output文件夹内找到生成出来的彩色甜筒🍦的图片。
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/037d5b1547d24eed8662b1b77b4efd2b.webp)
可能出现的问题:
- PytorchStreamReader failed reading zip archive
- 模型文件下载不完整,重新下载即可
尝试把 --prompt 参数换成脑洞大开的各种描述词吧。其他参数详情可以参考git主页。github.com/CompVis/sta…
除了文字生成图,还有可以玩图生图。
一些能让图像更加有趣的提示词内容建议:
- 描述画面里想要存在的元素,物品,情绪
- 森林,秋天,雨水,雾,苔藓,城堡,樱花,海浪,山,神庙
- 氛围,情绪
- 快乐,阴郁,赛博朋克,霓虹,蒸汽朋克,原子朋克
- 画风
- 现实,逼真, 油画, 铅笔画, 概念艺术, 超现实,魔法,幻想,中国山水
- 艺术家
- 达芬奇, 梵高 (油画), 莫兰,莫奈 (风景),宫崎骏与吉卜力工作室
- Artgerm(漫画精致五官),Yuko Shimizu(插画)
- 润色和修饰(一些神奇咒语)
- 虚幻引擎,octane render(3D渲染), ArtStation, 8k, 4k, washed colors
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/7c6bcd5f1b1e4f948427ea9dc64403f7.webp)
Ultra realistic photo, princess peach in the mushroom kingdom, beautiful face, intricate, highly detailed, smooth, sharp focus, art by artgerm and greg rutkowski and alphonse mucha
😝 更多玩法
显存不够10G怎么玩
可以使用显存占用优化的版本,牺牲推理速度,以获得比原始版本更少的显存占用。可以使用2.4G显存生成512*512尺寸图片。
为了减少显存使用进行的优化:
- 将Stable Diffusion模型分成四个部分,仅在需要时才发送到 GPU。计算完成后移回 CPU。
- 注意力计算是分部分完成的。
接入机器翻译,让他支持中文提示词
开启web服务,接入有道翻译api,让他自动翻译输入的中文提示词,并执行图片生成。
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/9c2ab6edf153439f8b228da06e89723c.webp)
说到中文支持,百度文心大模型发布的“ERNIE-ViLG 文生图”,最近也在开放测试,有更好的中文语境理解,更能理解你的中文梗。不过完整功能需要申请体验,参数较少,可玩性比较弱。
更有意思的图生图
除了单纯的文字作为输入生成图片,Stable Diffusion还支持文字+图片作为输入,生成新的图片。就像最前面所展示过的,可以理解成你提供一个草图,ai根据你的要求,帮你添加亿点点细节。
这是我尝试的,使用一个简单的线条图片,加上一段描述文字:“一只耐克鞋”,所生成的结果:
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/f90d064dad564278ada1a3a659efa5fb.webp)
如果我把他的输出再次变为输入,重复渲染,可以得到更多不同的结果。甚至可以一秒换品牌...
![[Stable Diffusion] 三句话,让Ai帮你画18万张图](https://static.blogweb.cn/article/f8723ba1e1cc4be5a67d77b9fb6e1763.webp)
Stability AI 的口号是 “AI by the people, for the people”。AI从群众中来,到群众中去。他可以单纯用来创作你天马行空的想象,也可以用作你文章的免费配图,能辅助你的工作,甚至能参赛获奖!赶快玩起来吧。
AI画作拿下比赛一等奖惹怒人类艺术家,主办方:照常颁奖 mp.weixin.qq.com/s/C7KkFs1CR…
转载自:https://juejin.cn/post/7143441237037711396