最近 AIGC、ChatGPT 等话题持续发酵,热门程度不亚于之前的 “元宇宙”。抖音、小红书到处都是机器对话、AI 绘图的视频。我看见别人生成的漂亮小姐姐图片眼馋得不行,终于按捺不住自己的好奇心,也尝试一下搭建。本文只是简单记录一下搭建过程。
△ 别人生成的漂亮小姐姐
我使用的是 Stable Diffusion,官网:stablediffusionweb.com,可以输入关键字生成超清图像,而且会出乎你的意料,等待结果的过程还是很期待的。不过生成的结果在于使用了什么模型,生成之前需要输入英文关键字。在官网可以直接测试:stablediffusionweb.com/#demo
为了方便尝试,我自己购买了个云主机,选用的是厚德云主机(室友推荐的,性价比高)。云主机配置如下:
CPU:8 核
内存:16 GB
系统: Ubuntu Server 22.04、Python 3.10(当然最推荐使用 GPU 主机了!)
选择国外 IP,下载 github 的内容速度会快一点。
云主机的配置要够高,这里我真心推荐厚德云的云主机,新人注册有代金券可以用,可以按天按月购买,有各种配置可以选,价格也还好。我是直接先买了一天的,搭建试试。
厚德云官网:www.houdeyun.cn
注册账号后登陆,点击右上角的 “控制台”,点击 “基础云”,选择自己要的配置和型号,选择“地区” 和 “系统”,右面选择 “时长” 和 “流量”,直接购买就好了。
另外厚德云还上线了 GPU 云主机,我对比了几家云厂商,发现厚德云的 GPU 价格非常优惠,AI 绘画必备,生成速度快。
购买之后会分配公网 IP,主机名和密码会通过短信发送到手机,通过 ssh 去登录就好了。
下面正式开始。
- 配置下载源
# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2. Anaconda 安装,下载链接:https://docs.conda.io/en/latest/miniconda.html#linux-installers
Anaconda 是一个环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换,很方便。
- 下载上传到主机后执行安装,按照提示输入,安装成功。# ./Miniconda3-py310_23.1.0-1-Linux-x86_64.sh
创建一个命令软链,可以直接使用 conda 命令
# ln -s /root/miniconda3/bin/conda /usr/bin/conda
- 创建一个目录放东西 /git/
# mkdir /git
cd 进到 /git/ 目录下
# cd /git/ # git clone https://github.com/CompVis/stable-diffusion.git # git 上下载包
7. 创建并激活一个 conda 的环境:ldm ,进入到 stable-diffusion 目录安装 Stable Diffusion 环境
# cd /git/stable-diffusion # conda env create -f environment.yaml # 要下载环境需要的依赖,需要很久
- 解决报错:Command errored out with exit status 128: git fetch -q --tags Check the logs for full command output
# conda install -c anaconda git # 安装 git
然后删除重新运行:
# rm -rf /root/miniconda3/envs/ldm
# conda env create -f environment.yaml
激活环境:
# conda activate ldm
另:停用一个环境:# conda deactivate
- 这一步下载模型,可以下载 ckpt 后缀的模型导入,模型可以去各网站上找。例如:huggingface.co/CompVis (需要登录,直接注册即可)
https://cyberes.github.io/stable-diffusion-models/#stable-diffusion-1-5
civitai.com/(已和谐)
模型可以参考这个帖子:zhuanlan.zhihu.com/p/592347520
我这边按照 huggingface 里的使用了一个不需要下载源文件的: https://huggingface.co/CompVis/stable-diffusion-v1-4,可以直接根据文档里输入命令
# pip install --upgrade diffusers transformers scipy
- 安装 torch,因为我的云主机是 CPU,所以必须安装 CPU 版本的:https://pytorch.org/get-started/locally/
如果支持 GPU 就安装 CUDA ,但是需要看一下自己机器的 CUDA 版本,使用命令 “nvcc -V” 可以查看。
按照官网的命令安装:
# pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
- 生成脚本,创建一个 test.py
GPU 版:
import torch
from diffusers import StableDiffusionPipeline
model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to(device)
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")
CPU 版:
import torch
from diffusers import StableDiffusionPipeline
model_id = "CompVis/stable-diffusion-v1-4"
#device = "cuda" #GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe = pipe.to(device)
prompt = "a photo of an astronaut riding a horse on mars"#图片描述关键词
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")#生成图片的保存路径
- 最期待的一步来啦!执行脚本生成图片
`# python3 test.py
`
不出意外的话,开始需要下载很多东西,好多好多 G。下载之后会开始生成图片,一些 Warning 可以直接忽略。下面是我踩了好多坑,报了好多错之后执行成功的,生成用了 10 分钟。机器配置太弱了没办法,估计 GPU 主机会快很多。
看了下云主机监控,生成的这段时间飙了这么高,CPU 大概占了 45%,内存也差不多。
最后来看下我随手尝试生成的几个图片,宇航员骑马:
又测试生成一个,生成时间大约花了 10 分钟。
关键字:a girl with lavender hair and black skirt, fairy tale style background, a beautiful half body illustration, top lighting, perfect shadow, soft painting, reduce saturation, leaning towards watercolor
生成的结果:
又执行了一次上面的关键字,生成如下,貌似有点丑,不知道是不是模型的问题。
实话说,生成的图片看起来怪怪的,这次生成漂亮的小姐姐失败,不过初次搭建,磕磕绊绊也算成功啦,后面会研究一下,下载其他模型和关键词优化来做尝试。
另外现在是代码生成的,后续我会再考虑弄一个页面工具,操作更方便。
Ps. 这篇内容主要是搭建教程,后续我会购买一个 GPU 主机来用来生成漂亮小姐姐。等我文章更新,带你一步一步手动生成漂亮小姐姐。