导言

前几天NovelAI刚上线画图的时候,得知了一个tg群里面有bot可以尝试,就去玩了一下。当时感觉效果确实很惊艳,群里富哥就买了点给大家用,当天就把新头像给生成了出来。第二天听闻模型泄露了,就尝试在本地部署了一下,说简单也确实挺简单的,但是跑出来效果确实不是很好。经过一天以后,在全世界的共同努力下,本地推理效果正在逐步逼近novelAI在线版的效果。
在此,简单记录一下如何从github上stable diffusion webui的安装方式入手,从零开始部署novelAI本地模型。

前置工作

首先我的电脑上是装了cu115的,所以省去了安装cu113的繁琐过程,随后首先要安装的是git on windows,这个也很简单,和安装普通软件一样,也不需要自己进行环境变量的配置。安装好cuda和git,就完成了前置的准备工作,可以直接开始安装stable diffusion webui。
另外值得一提的是我重新安装了要求的py3.10.6,不知道版本过低会不会有什么影响,接下来的操作都是在conda py310中完成的。

安装stable diffusion webui

github源码参见stable diffusion webui
首先直接git将源码下载到本地git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
随后我得选择是直接在windows terminal中运行.\webui-user.bat,先进行依赖文件的安装。
此处首先安装的是pytorch,我在使用conda py37环境的时候,已经在环境中安装了torch,但是也仍然提示重新安装,不知道为何。这一步在下载torch时(2G左右),可能会因为网络不稳定而中断,建议使用一些稳定网络的手段。
随后进行其他依赖的安装,这个阶段下载所需时间不多,但是需要注意磁盘读写速度与CPU使用率,容易出现假死,需要手动重新开始一下。

部署novelAI模型

将novelAI模型按如下文件结构放置:

./models
├── Codeformer
├── ESRGAN
├── GFPGAN
├── hypernetworks
│   ├── aini.pt
│   ├── anime_2.pt
│   ├── anime_3.pt
│   ├── anime.pt
│   ├── furry_2.pt
│   ├── furry_3.pt
│   ├── furry_kemono.pt
│   ├── furry_protogen.pt
│   ├── furry.pt
│   ├── furry_scalie.pt
│   ├── furry_transformation.pt
│   └── pony.pt
├── LDSR
├── Stable-diffusion
│   ├── final-pruned.ckpt -> novelai 的 model.ckpt (pruned)
│   ├── final-pruned.vae.pt -> novelai 的 animevae.pt
└── SwinIR

其中,hypernetworks中的权重文件不是必须的,个人测试后发现效果并不是很好。
此处如果加载模型时报错error key:"state_dict",可直接将报错对应行改为sd = pl_sd["state_dict"] if "state_dict" in pl_sd else pl_sd

16XX显卡输出全黑解决方案

直接修改webui-user.bat为以下内容:

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--precision full --no-half --medvram

call webui.bat

其中--precision full --no-half为解决全黑的必要启动参数,--medvram为节省显存的启动参数。

webui配置

当上述内容配置好后,运行程序,应该出现如下启动信息:

在这之后在浏览器中打开http://127.0.0.1:7860/即可。
需要重点配置的参数有Negative prompt:如下

lowres,bad anatomy,bad hands,text,error,missing fingers,extra digit, fewer digits, cropped,worstquality,low quality,normal quality,jpeg artifacts,signature, watermark, username,blurryedited

根据novelAI网页版的信息,加上优质prompt:

{masterpiece},{best quality}

同样的,按照网页版的默认配置,将Sampling Steps改为28,CFG Scale改为11,其余内容无需进行过多更改,就可以实现接近网页版的效果了。


但是需要注意的是,仍有一些差距,个人感觉主要体现在对于自然语言的理解和对于某系角色的认知能力上。但是能够实现相近的效果已经很好了:

看烟花已落,你我仍是陌路人
最后更新于 2023-04-19