本文介绍Stable Diffusion的快速上手,本地部署,以及更多有趣的玩法展示。
在 DALL-E 2 和 Imagen 之后,AI绘图领域又一个热乎的深度学习模型出炉——Stable Diffusion 。8月份发布的 Stable Diffusion 更加高效且轻量,可以在消费级 GPU 上运行。StableAI公司表示:“它在速度和质量上的突破意味着它可以在消费者级的 GPU 上运行。这将允许研究人员和公众在一系列条件下运行它,并使图像生成普及化。”
这意味着现在你只需一句话和几十秒的时间,就可以让你脑海中天马行空的画面出现在你眼前:
或者随手画一笔,让ai帮你加“亿点点“细节:
怎么上手玩起来
前两种方式都比较简单,Colab看起来复杂,实际上一步一步按照提示来,也很简单。所以本文着重讲解本地部署的步骤和如何解决会遇到的坑。
- 官方在线Web App - DreamStudio
- 👍 最易上手,登录即可直接使用
- 👍 可视化调参
- 😡 免费次数有限
- Google Colab运行
- 👍 免费,次数无限
- 😥 操作略微繁琐
- 😥 不能持久运行
- 本地、云服务器部署
- 👍 本地部署免费,次数无限
- 👍 功能完整,可玩性高
- 😥 硬件要求高
- 😥 租用云服务挺贵
- 😥 初次部署较为麻烦
DreamStudio
最简单无脑的上手途径,打开官网,输入一段话,等待结果出来就可以。没啥好说的,适合快速上手体验一下,或者付费玩家。
beta.dreamstudio.ai/dream
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
就可以。
可以官网下载对应的安装包,也可以命令行下载安装。
docs.conda.io/en/latest/m…
如果安装成功,可以通过 conda --version
查看版本,conda准备好就可以进入下一步。
4. 拉取Stable-Diffusion代码库到本地
github.com/CompVis/sta…
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文件夹内找到生成出来的彩色甜筒🍦的图片。
可能出现的问题:
- PytorchStreamReader failed reading zip archive
- 模型文件下载不完整,重新下载即可
尝试把 --prompt
参数换成脑洞大开的各种描述词吧。其他参数详情可以参考git主页。github.com/CompVis/sta…
除了文字生成图,还有可以玩图生图。
一些能让图像更加有趣的提示词内容建议:
- 描述画面里想要存在的元素,物品,情绪
- 森林,秋天,雨水,雾,苔藓,城堡,樱花,海浪,山,神庙
- 氛围,情绪
- 快乐,阴郁,赛博朋克,霓虹,蒸汽朋克,原子朋克
- 画风
- 现实,逼真, 油画, 铅笔画, 概念艺术, 超现实,魔法,幻想,中国山水
- 艺术家
- 达芬奇, 梵高 (油画), 莫兰,莫奈 (风景),宫崎骏与吉卜力工作室
- Artgerm(漫画精致五官),Yuko Shimizu(插画)
- 润色和修饰(一些神奇咒语)
- 虚幻引擎,octane render(3D渲染), ArtStation, 8k, 4k, washed colors
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。
- 注意力计算是分部分完成的。
github.com/basujindal/…
接入机器翻译,让他支持中文提示词
开启web服务,接入有道翻译api,让他自动翻译输入的中文提示词,并执行图片生成。
说到中文支持,百度文心大模型发布的“ERNIE-ViLG 文生图”,最近也在开放测试,有更好的中文语境理解,更能理解你的中文梗。不过完整功能需要申请体验,参数较少,可玩性比较弱。
更有意思的图生图
除了单纯的文字作为输入生成图片,Stable Diffusion还支持文字+图片作为输入,生成新的图片。就像最前面所展示过的,可以理解成你提供一个草图,ai根据你的要求,帮你添加亿点点细节。
这是我尝试的,使用一个简单的线条图片,加上一段描述文字:“一只耐克鞋”,所生成的结果:
如果我把他的输出再次变为输入,重复渲染,可以得到更多不同的结果。甚至可以一秒换品牌...
Stability AI 的口号是 “AI by the people, for the people”。AI从群众中来,到群众中去。他可以单纯用来创作你天马行空的想象,也可以用作你文章的免费配图,能辅助你的工作,甚至能参赛获奖!赶快玩起来吧。