[术] 如何快速玩上Novel AI泄露的参数来生成纸片人(基于stable-diffusion-webui/非懒人包,使用conda配置环境/解决相关问题)

NovelAI指南 2年前 (2023) liang
670 0

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下面,如果文件夹不存在则新建。

[术] 如何快速玩上Novel AI泄露的参数来生成纸片人(基于stable-diffusion-webui/非懒人包,使用conda配置环境/解决相关问题)

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包后,切到该文件夹,执行脚本

bash webui.sh

脚本会使用Python自带的venv创建虚拟环境,并配置完所有依赖。

应该运行完然后把模型(config.yaml和model.ckpt)放到 stable-diffusion-webui/models/Stable-diffusion下面,然后直接运行 python webui.py 就行了。

0x03 真男人用conda自己配环境

因为各种各样的原因没法畅快连github,也不方便挂代理,于是自己来配置。

0x13 创建一个新的虚拟环境

我取的名字叫sdiff, Python版本使用3.8

conda create -n sdiffpython=3.8

创建完成后激活这个环境

conda activate sdiff

切换到stable-diffusion-webui目录下

cd 你的路径/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,右上角会写

[术] 如何快速玩上Novel AI泄露的参数来生成纸片人(基于stable-diffusion-webui/非懒人包,使用conda配置环境/解决相关问题)

然后在终端(sdiff环境下)执行给我们的命令,等待安装完毕

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

0x33 安装stable-diffusion-webui的依赖

sdiff环境下,切到其文件夹,然后安装依赖

pip install -r requirements.txt

中间有两个库是从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安装

pip install albumentations diffusers opencv-python pudb imageio imageio-ffmpeg pytorch-lightning omegaconf test-tube streamlit einops torch-fidelity transformers torchmetrics kornia

还有两个需要下载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/,然后运行

python webui.py

如果一切顺利,会提示打开一个本地的网页 http://127.0.0.1:7860 ,就是界面啦。

[术] 如何快速玩上Novel AI泄露的参数来生成纸片人(基于stable-diffusion-webui/非懒人包,使用conda配置环境/解决相关问题)

这里我们生成一个简单的看看效果

Prompt 为girl,即你想看见的东西Negative prompt 暂时不加,即你不想看见的东西Sampling Steps 选择20,越大时间越长,效果越好Sampling method 选择DPM2Batch size 选择8,表示生成8张,会慢一些,可以只生成1张看看效果

然后点击Generate! 3090大约需要2分钟,可以看到质量还是非常不错的。

[术] 如何快速玩上Novel AI泄露的参数来生成纸片人(基于stable-diffusion-webui/非懒人包,使用conda配置环境/解决相关问题)

此外,上面的tab还有img2img,可以通过图片+文字生成新的图片。其他的功能就留给大家自己探索了。

prompt和negative prompt决定了产生什么样的图片,由于Novel AI是使用画站的英文tag训练的,所以一般看起来像tag1, tag2, ...。至于那些组合效果好,就需要自己发现了。

生成的图像都会在stable-diffusion-webui/outputs下保存,记得及时删除!

相关文章