[术] 如何快速玩上Novel AI泄露的参数来生成纸片人(基于stable-diffusion-webui/非懒人包,使用conda配置环境/解决相关问题)
0x01 前言
最近大伙水群应该能看到有些群友已经玩上了Novel AI泄露的参数,可以发现生成的效果确实很惊艳,而且可以加上各种自己喜欢的tag,还有以图生图的功能。
这让我对未来产生了很多遐想:卖训练的参数会不会成为一门生意?以后是不是可以用 任何角色 x 任何tag 生成自己喜欢的任何图片(自己造fanart)?
Anyway, 可能你看见过群友发过了Novel AI泄露的参数,一串magnet磁力链接,任务名字叫novelaileak. 于是你想自己配置一个玩玩。
如果你想要开箱即用,不需要看这篇文章,因为懒人包已经有很多了,比如这个 https://www.bilibili.com/video/BV1aN4y1A7j1 (我没用过)。我写这篇是面向希望了解配置细节的朋友,虽然会踩一些坑但是用着安心。
配置要求的话,我这用的nVidia RTX 3090 24GB是没问题的,好像显存有11G就行?不太清楚。
那我们开始吧!如果你在下面clone仓库速度比较慢,可以试着把git clone 仓库地址中的仓库地址从 https://github.com/X/Y 换成 https://gitclone.com/github.com/X/Y . 这是一个加速clone的站点(不能push),我用着还不错。
借用一下群友的生成的琴梨梨
0x02 下载
0x12 AUTOMATIC1111/stable-diffusion-webui
这是一个github仓库:https://github.com/AUTOMATIC1111/stable-diffusion-webui
clone或者解压ZIP包都可以。
其提供了从模型推理到功能封装的全套功能,如果说下载的预训练参数是引擎,那么这个就是车体,组装起来才能用。
0x22 Novel AI 泄露的参数
为了避免不必要的麻烦我就不放下载链接了,如果大家经常水群的话应该有群友已经发过了。
如果没有的话可以去 如何评价AI绘画网站NovelAI? 下面碰碰运气。
Novel AI泄露的文件里有训练脚本,和若干版本的预训练参数,总共有52G。如果你不打算珍藏或者训练的话,只用下一个版本的checkpoint就行了,比如我下了这个最小的,你可以下大一点的。
就算全下了也只能用一个版本的checkpoint。
把你选中的(比如我用的animefull-final-pruned)文件夹下的config.json和model.ckpt放到 你放的地方/stable-diffusion-webui/models/Stable-diffusion下面,如果文件夹不存在则新建。
0x32 CompVis/stable-diffusion
这也是一个github仓库:https://github.com/CompVis/stable-diffusion
clone或者解压ZIP包都可以。
其需要放置到你放的地方/stable-diffusion-webui/repositories/下面,如果没有repositories文件夹请新建。
0x03-IF (如果你想自动配置)直接运行webui.sh,即可跳到0x04 开始玩吧!一节
如果你有互联网连接(指访问github没有什么障碍),直接运行stable-diffusion-webui提供的自动配置脚本就行了,我没用过。
clone或者解压ZIP包后,切到该文件夹,执行脚本
脚本会使用Python自带的venv创建虚拟环境,并配置完所有依赖。
应该运行完然后把模型(config.yaml和model.ckpt)放到 stable-diffusion-webui/models/Stable-diffusion下面,然后直接运行 python webui.py 就行了。
0x03 真男人用conda自己配环境
因为各种各样的原因没法畅快连github,也不方便挂代理,于是自己来配置。
0x13 创建一个新的虚拟环境
我取的名字叫sdiff, Python版本使用3.8
创建完成后激活这个环境
切换到stable-diffusion-webui目录下
0x23 安装GPU版的PyTorch
之所以先装PyTorch是因为等会装仓库提供的依赖时会装,但是默认下载的是CPU版本的,你也不想用CPU跑这么大的模型吧。
前往官网 PyTorch根据你的情况选择,比如我这里选择了Stable/Linux/Pip/Python/CUDA11.6,给我的命令就是pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
CUDA版本可以在终端敲nvidia-smi,右上角会写
然后在终端(sdiff环境下)执行给我们的命令,等待安装完毕
0x33 安装stable-diffusion-webui的依赖
sdiff环境下,切到其文件夹,然后安装依赖
中间有两个库是从github安装的。
如果安装有困难可以把这两行从requirements.txt中删除,然后重新运行命令安装其他的依赖,然后手动安装
https://github.com/crowsonkb/k-diffusionhttps://github.com/TencentARC/GFPGAN
下载这两个仓库(clone或者ZIP解压都可,放到哪儿都行),切到sdiff环境 ,先不急着装。
对于第一个(k-diffusion),把其 requirements.txt和setup.cfg中带CLIP的行删掉(等会我们会手动安装CLIP),然后再执行pip install .
对于第二个(GFPGAN),切到其文件夹里然后pip install . 即可。
0x43 放置stable-diffusion仓库
0x32节要求你把stable-diffusion(https://github.com/CompVis/stable-diffusion)文件夹放到了你放的地方/stable-diffusion-webui/repositories/下面,如果之前没放的话现在放一下。其需要放置到你放的地方/stable-diffusion-webui/repositories/下面,如果没有repositories文件夹请新建。
0x53 安装stable-diffusion的依赖
都在stable-diffusion/environment.yaml里面,但因为我们自己配虚拟环境,所以自己装。
有一部分可以通过pip安装
还有两个需要下载github仓库安装。下载这两个仓库(clone或者ZIP解压都可,放到哪儿都行),切到sdiff环境 ,先不急着装。
https://github.com/CompVis/taming-transformershttps://github.com/openai/CLIP
对于第一个(taming-transformers),切到其文件夹里然后pip install . 即可。
对于第二个(CLIP),把其requirements.txt中torch和torchvision的行删掉(因为太旧了),然后再执行pip install .
到此依赖就全部安装完毕了。
0x63 放置模型
0x22节要求把你选中的模型(比如我用的animefull-final-pruned)文件夹下的config.json和model.ckpt放到你放的地方/stable-diffusion-webui/models/Stable-diffusion下面,如果文件夹不存在则新建。
0x04 开始玩吧!
在sdiff环境下, 切到你放的地方/stable-diffusion-webui/,然后运行
如果一切顺利,会提示打开一个本地的网页 http://127.0.0.1:7860 ,就是界面啦。
这里我们生成一个简单的看看效果
Prompt 为girl,即你想看见的东西Negative prompt 暂时不加,即你不想看见的东西Sampling Steps 选择20,越大时间越长,效果越好Sampling method 选择DPM2Batch size 选择8,表示生成8张,会慢一些,可以只生成1张看看效果
然后点击Generate! 3090大约需要2分钟,可以看到质量还是非常不错的。
此外,上面的tab还有img2img,可以通过图片+文字生成新的图片。其他的功能就留给大家自己探索了。
prompt和negative prompt决定了产生什么样的图片,由于Novel AI是使用画站的英文tag训练的,所以一般看起来像tag1, tag2, ...。至于那些组合效果好,就需要自己发现了。