likes
comments
collection
share

[Stable Diffusion] 三句话,让Ai帮你画18万张图

作者站长头像
站长
· 阅读数 6

本文介绍Stable Diffusion的快速上手,本地部署,以及更多有趣的玩法展示。

DALL-E 2Imagen 之后,AI绘图领域又一个热乎的深度学习模型出炉——Stable Diffusion 。8月份发布的 Stable Diffusion 更加高效且轻量,可以在消费级 GPU 上运行。StableAI公司表示:“它在速度和质量上的突破意味着它可以在消费者级的 GPU 上运行。这将允许研究人员和公众在一系列条件下运行它,并使图像生成普及化。”

这意味着现在你只需一句话和几十秒的时间,就可以让你脑海中天马行空的画面出现在你眼前:

[Stable Diffusion] 三句话,让Ai帮你画18万张图

或者随手画一笔,让ai帮你加“亿点点“细节:

[Stable Diffusion] 三句话,让Ai帮你画18万张图

怎么上手玩起来

前两种方式都比较简单,Colab看起来复杂,实际上一步一步按照提示来,也很简单。所以本文着重讲解本地部署的步骤和如何解决会遇到的坑。

  1. 官方在线Web App - DreamStudio
    • 👍 最易上手,登录即可直接使用
    • 👍 可视化调参
    • 😡 免费次数有限
  2. Google Colab运行
    • 👍 免费,次数无限
    • 😥 操作略微繁琐
    • 😥 不能持久运行
  3. 本地、云服务器部署
    • 👍 本地部署免费,次数无限
    • 👍 功能完整,可玩性高
    • 😥 硬件要求高
    • 😥 租用云服务挺贵
    • 😥 初次部署较为麻烦

DreamStudio

最简单无脑的上手途径,打开官网,输入一段话,等待结果出来就可以。没啥好说的,适合快速上手体验一下,或者付费玩家。

beta.dreamstudio.ai/dream

[Stable Diffusion] 三句话,让Ai帮你画18万张图

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的虚拟环境,下载对应的依赖。这一步是很容易出现问题的地方,因为依赖比较多,安装时间比较长。可能会出现某些依赖安装时间特别长,最后失败的情况。

可能出现的问题:

  1. 因为过程中会用到pip安装依赖,如果安装依赖时间过长,可以在conda create执行前,先配置pip的国内镜像。根据我实际尝试的情况,建议使用清华镜像,阿里云镜像也很慢。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  1. 如果出现:Pip subprocess error: ERROR: Command errored out with exit status 128: git fetch -q ... 的错误,则检查当前网络环境对github的访问是否通畅。
  2. 安装失败尝试再次安装时,可能出现提示环境已存在。这时候可以删掉原来的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万张图

可能出现的问题:

  • 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万张图

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,让他自动翻译输入的中文提示词,并执行图片生成。

[Stable Diffusion] 三句话,让Ai帮你画18万张图

说到中文支持,百度文心大模型发布的“ERNIE-ViLG 文生图”,最近也在开放测试,有更好的中文语境理解,更能理解你的中文梗。不过完整功能需要申请体验,参数较少,可玩性比较弱。

更有意思的图生图

除了单纯的文字作为输入生成图片,Stable Diffusion还支持文字+图片作为输入,生成新的图片。就像最前面所展示过的,可以理解成你提供一个草图,ai根据你的要求,帮你添加亿点点细节。

这是我尝试的,使用一个简单的线条图片,加上一段描述文字:“一只耐克鞋”,所生成的结果:

[Stable Diffusion] 三句话,让Ai帮你画18万张图

如果我把他的输出再次变为输入,重复渲染,可以得到更多不同的结果。甚至可以一秒换品牌...

[Stable Diffusion] 三句话,让Ai帮你画18万张图

Stability AI 的口号是 “AI by the people, for the people”。AI从群众中来,到群众中去。他可以单纯用来创作你天马行空的想象,也可以用作你文章的免费配图,能辅助你的工作,甚至能参赛获奖!赶快玩起来吧。

AI画作拿下比赛一等奖惹怒人类艺术家,主办方:照常颁奖 mp.weixin.qq.com/s/C7KkFs1CR…

转载自:https://juejin.cn/post/7143441237037711396
评论
请登录