本文介绍Stable Diffusion的快速上手,本地部署,以及更多有趣的玩法展示。
在 DALL-E 2 和 Imagen 之后,AI绘图领域又一个热乎的深度学习模型出炉——Stable Diffusion 。8月份发布的 Stable Diffusion 更加高效且轻量,可以在消费级 GPU 上运行。StableAI公司表示:“它在速度和质量上的突破意味着它可以在消费者级的 GPU 上运行。这将允许研究人员和公众在一系列条件下运行它,并使图像生成普及化。”
这意味着现在你只需一句话和几十秒的时间,就可以让你脑海中天马行空的画面出现在你眼前:
或者随手画一笔,让ai帮你加“亿点点“细节:
前两种方式都比较简单,Colab看起来复杂,实际上一步一步按照提示来,也很简单。所以本文着重讲解本地部署的步骤和如何解决会遇到的坑。
最简单无脑的上手途径,打开官网,输入一段话,等待结果出来就可以。没啥好说的,适合快速上手体验一下,或者付费玩家。
beta.dreamstudio.ai/dream
“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 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
# 查看已存在环境
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文件夹内找到生成出来的彩色甜筒的图片。
可能出现的问题:
尝试把 --prompt
参数换成脑洞大开的各种描述词吧。其他参数详情可以参考git主页。github.com/CompVis/sta…
除了文字生成图,还有可以玩图生图。
一些能让图像更加有趣的提示词内容建议:
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尺寸图片。
为了减少显存使用进行的优化:
github.com/basujindal/…
接入机器翻译,让他支持中文提示词
开启web服务,接入有道翻译api,让他自动翻译输入的中文提示词,并执行图片生成。
说到中文支持,百度文心大模型发布的“ERNIE-ViLG 文生图”,最近也在开放测试,有更好的中文语境理解,更能理解你的中文梗。不过完整功能需要申请体验,参数较少,可玩性比较弱。
更有意思的图生图
除了单纯的文字作为输入生成图片,Stable Diffusion还支持文字+图片作为输入,生成新的图片。就像最前面所展示过的,可以理解成你提供一个草图,ai根据你的要求,帮你添加亿点点细节。
这是我尝试的,使用一个简单的线条图片,加上一段描述文字:“一只耐克鞋”,所生成的结果:
如果我把他的输出再次变为输入,重复渲染,可以得到更多不同的结果。甚至可以一秒换品牌...
Stability AI 的口号是 “AI by the people, for the people”。AI从群众中来,到群众中去。他可以单纯用来创作你天马行空的想象,也可以用作你文章的免费配图,能辅助你的工作,甚至能参赛获奖!赶快玩起来吧。