跳到主要内容 Stable Diffusion 快速上手与本地部署指南 | 极客日志
Python AI 算法
Stable Diffusion 快速上手与本地部署指南 Stable Diffusion 是一款高效轻量级的开源深度学习模型,支持消费级 GPU 运行。文章介绍了三种上手方式:官方在线 Web App、Google Colab 云端运行及本地/云服务器部署。重点讲解了本地部署流程,包括硬件要求(10G 显存以上)、环境配置(Python、Conda)、模型权重下载、代码库克隆及脚本执行。内容涵盖常见报错处理、提示词编写技巧、低显存优化方案及图文生成功能,帮助开发者快速搭建 AI 绘图环境并实现创意生成。
Stable Diffusion 快速上手与本地部署指南
本文介绍 Stable Diffusion 的快速上手、本地部署,以及更多有趣的玩法展示。
在继其他生成式模型之后,AI 绘图领域又一款高效的深度学习模型出炉——Stable Diffusion。8 月份发布的 Stable Diffusion 更加高效且轻量,可以在消费级 GPU 上运行。Stability AI 公司表示:'它在速度和质量上的突破意味着它可以在消费者级的 GPU 上运行。这将允许研究人员和公众在一系列条件下运行它,并使图像生成普及化。'
这意味着现在你只需一句话和几十秒的时间,就可以让你脑海中天马行空的画面出现在你眼前:
怎么上手玩起来 前两种方式都比较简单,Colab 看起来复杂,实际上一步一步按照提示来,也很简单。所以本文着重讲解本地部署的步骤和如何解决会遇到的坑。
官方在线 Web App - DreamStudio
👍 最易上手,登录即可直接使用
👍 可视化调参
😡 免费次数有限
Google Colab 运行
👍 免费,次数无限
😥 操作略微繁琐
😥 不能持久运行
本地、云服务器部署
👍 本地部署免费,次数无限
👍 功能完整,可玩性高
😥 硬件要求高
😥 租用云服务挺贵
😥 初次部署较为麻烦
DreamStudio 最简单无脑的上手途径,打开官网,输入一段话,等待结果出来就可以。没啥好说的,适合快速上手体验一下,或者付费玩家。
Google Colab 运行 'Colab',是 Google Research 团队开发的一款产品。可以通过浏览器编写和执行 Python。可以免费分配使用包括 GPU 在内的计算资源。
打开这个 Colab 笔记本页面,按照步骤和提示执行就 OK 了。可能存在的坑模型的载入,需要用到特定配置,不过也都不是什么问题。
虽然看着繁琐,但是可以薅羊毛用免费的显卡资源,性能也还不错,还是很香的。
本地/云服务器部署 目前存在多个基于官方代码仓库 fork 出来的不同版本,可以有不同的部署和运行方式,包括 docker 部署,webUI。这里讲解基于官方的原版进行部署和使用,其他的方式都大同小异。
硬件 本地 10G 显存以上的显卡(显存不够也有其他办法),或租用拥有对应配置的云服务
环境依赖
具体步骤
1. 下载模型权重文件
这个放在第一位是因为权重文件太大了,建议先下载起来,其他步骤在操作时,他可以在后台慢慢下载。
目前最新的是 sd-v1-4.ckpt,版本越高,训练的数据量越大,下载最新版本即可,4.27GB
curl https://www.googleapis.com/storage/v1/b/aai-blog-files/o/sd-v1-4.ckpt?alt=media > sd-v1-4.ckpt
2. 安装 python
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 环境 进入 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
conda activate base
conda env remove --name 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 主页。
描述画面里想要存在的元素,物品,情绪
森林,秋天,雨水,雾,苔藓,城堡,樱花,海浪,山,神庙
氛围,情绪
画风
现实,逼真,油画,铅笔画,概念艺术,超现实,魔法,幻想,中国山水
艺术家
达芬奇,梵高 (油画), 莫兰,莫奈 (风景),宫崎骏与吉卜力工作室
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。
注意力计算是分部分完成的。
接入机器翻译,让他支持中文提示词 开启 web 服务,接入有道翻译 api,让他自动翻译输入的中文提示词,并执行图片生成。
说到中文支持,百度文心大模型发布的'ERNIE-ViLG 文生图',最近也在开放测试,有更好的中文语境理解,更能理解你的中文梗。不过完整功能需要申请体验,参数较少,可玩性比较弱。
更有意思的图生图 除了单纯的文字作为输入生成图片,Stable Diffusion 还支持文字 + 图片作为输入,生成新的图片。就像最前面所展示过的,可以理解成你提供一个草图,ai 根据你的要求,帮你添加亿点点细节。
这是我尝试的,使用一个简单的线条图片,加上一段描述文字:'一只耐克鞋',所生成的结果:
如果我把他的输出再次变为输入,重复渲染,可以得到更多不同的结果。甚至可以一秒换品牌…
Stability AI 的口号是'AI by the people, for the people'。AI 从群众中来,到群众中去。他可以单纯用来创作你天马行空的想象,也可以用作你文章的免费配图,能辅助你的工作,甚至能参赛获奖!赶快玩起来吧。
微信扫一扫,关注极客日志 微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online