原文地址:Stable Diffusion本地部署NovelAI及网络共享教程22.10.16更新 – 哔哩哔哩 (bilibili.com)

前次教程在此:Stable Diffusion AI 绘画本地部署教程22.10.6更新

照例,本教程参照的英文原教程地址为:https://rentry.org/voldy,有条件的可以自行查看更多内容,而原教程基于的本地部署方案地址为:https://github.com/AUTOMATIC1111/stable-diffusion-webui,这里也有很多有用的参考信息。

Stable Diffusion本地部署教程部分此次更新基本无变化,增加了Waifu Diffusion最终版模型下载地址,Danbooru网站训练用图片从56K增加到680K,输出结果严重偏向动画风,可酌情使用。

下载地址:

https://huggingface.co/hakurei/waifu-diffusion-v1-3/resolve/main/wd-v1-3-float16.ckpt
32位浮点版本下载地址:

https://huggingface.co/hakurei/waifu-diffusion-v1-3/resolve/main/wd-v1-3-float32.ckpt
本次教程内容为三个部分,可自行选择需要的部分:

NovelAI本地部署教程

4G及以下显存低配机器运行办法

局域网或者公网访问本地部署的Stable Diffusion

为节省时间这次我将不再做中英对照

 

NovelAI本地部署教程

 

在在开始前,有两点比较重要的说明:

1.现在有说法网上泄露的NovelAI模型有被利用pickle的反序列化漏洞攻击的安全风险,这里信息包含两层意思,一是风险确实存在,二是有漏洞攻击风险不代表一定存在这个问题;另外还有说法我这系列教程用的webui本地部署方案更新到最新版本可以规避这个风险,因为我不是从事IT的,这个我也无法确认;因此需要各人自己评估是否部署NovelAI。

2.AUTOMATIC1111版本的webUI本地方案,优点是更新非常快,可以很快的加入新的特性,但是对于国内用户,由于网速的原因,这同时也是痛点,更新后再运行批处理的时候经常又要下载一堆东西,比如我上次更新又下载了上G的文件,如果网速问题不解决,就会因下载失败的原因反复折腾,因此强烈建议打算自行部署及更新的要有网络加速条件(具体了解可下载我下面的文件),写前面教程的时候我忘了有方法可以让命令行的下载也和Git一样加速,走了点弯路,后来试了一下效果很好,我写了个说明文档和用到的软件一并放到了度盘,需要的可以下载,

链接:https://pan.baidu.com/s/1iaTCB7Uq2DyImmX7gmEj9A 提取码:lvub

如果没有网络加速条件的条件又很想试试的,建议去找找那些一键安装包,一键安装包有两种形式,一种和webUI界面一样,不过因为改了不少文件,git pull更新可能比较麻烦,需要通过下载压缩包的形式更新(后继更新功能依然可能存在下载问题),另一种是NovelAI网站界面上改出来的,这种似乎就只能玩NovelAI这一个模型了,而且应该也不会有更新了。另外还有一种用colab的在线部署方案,这种没有安全风险,因为我这里说的是本地部署,此外这方法也要网络加速才能玩,就不涉及了。

以下教程开始:

第一步:更新Stable Diffusion到最新版

在安装目录下打开Git bash窗口,用git pull命令更新。(前面教程有介绍)

第二步:下载泄露的NovelAI模型

下载链接:

magnet:?xt=urn:btih:5bde442da86265b670a3e5ea3163afad2c6f8ecc
整个内容很大,有52G,用网盘离线的随意,如果直接下载到本地硬盘的的,只要下载少部分文件就够了,只需下载stableckpt目录下的animefull-final-pruned文件夹以及animevae.pt文件(可选:/modules/modules目录下的.pt文件也可以下载,默认加载模型不需要这些,不过它们可以提供独特结果)

第三步:下载完成后把几个文件按下面所示改名

animevae.pt >> nai.vae.pt

config.yaml >> nai.yaml

model.ckpt>> nai.ckpt

第四步:把改名后的三个文件放到/stable-diffusion-webui/models/Stable-diffusion目录下。

第五步(可选):如果你想启动时默认加载NovelAI 模型,用记事本打开webui-user.bat,把”COMMANDLINE_ARGS= “这一行改成:

COMMANDLINE_ARGS=–nai.ckpt
其实没必要改,可以在Stable Diffusion启动后在主页面左上角“Stable Diffusion checkpoint”那里选择加载,而且在下次启动时能记住上次加载的模型,如图:

4d83ce2ac524049056115671819cc6d63854076b.jpg@web-article-pic.avif
Hypernetworks (可选):使用第二步可选下载的那些.pt文件让你在 NAI输出的基础上产生独特改变,而改变取决于你加载了哪个文件,要使用它们按如下步骤做:

– 在/stable-diffusion-webui/models文件夹下创建hypernetworks文件夹,如果已经有了,忽略此步

– 把另外下载的那些.pt文件拷贝到上一步创建的文件夹

– 重启WebUI

– 点击Settings进入设定页面,找到Stable Diffusion版块,在Stable Diffusion finetune hypernetwork项目下就可以用下拉菜单选择加载的模块,然后点击上面的Apply Settings应用更改。

复制NovelAI网站默认设置

用如下设置可以让输出结果和目前NovelAI网站上的一致。(注:按照我看其他有些人的说法,在描述语很长的情况下,输出结果不一样,我没订阅NovelAI,不能确认):

标准方法(Euler)

– Sampling method那里选择Euler (不是Euler a)

– Sampling Steps设置为28

– CFG Scale设置为11

– 在所有的描述语前面加上masterpiece, best quality

– 负面描述语使用:nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name (注:nsfw不是必须的,只是网站默认,它不会影响输出质量,具体意思不明白的可以搜一下)

– 点击Settings进入设定页面,找到Stable Diffusion版块,在Stop At last layers of CLIP model选项下(这里和原教程用词不一样,应该是UI更新了),把数值改成2,然后点击上面的Apply Settings应用更改。

Euler a默认效果

如果要复制NovelAI网站Euler_a输出结果,除了要做上述步骤外,还要点击Settings进入设定页面,找到Sampler parameters版块,在最下面Eta noise seed delta那里把值设为31337,然后点击上面的Apply Settings应用更改。

现在可以着手测试了。

 

测试准确性

测试部署的NovelAI是否工作正常的最简单办法是能否复制NovelAI网站的输出结果;

这里用下图作为测试样本

16eafab54243c503f0b44409281b9d9f040c0253.png@web-article-pic.avif-1-1

测试图
输入设置如下:

Sampler method: Euler
Seed: 2870305590
CFG: 12
Resolution: 512×512
Prompt: masterpiece, best quality, masterpiece, asuka langley sitting cross legged on a chair
Negative Prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name
确认输入无误后生成图像,如果和上面图片一样,说明部署的没问题。

注:如果你用了lowvram参数或xformers等优化 ,输出结果会轻微变化,但是结果仍有95%相似。

既然提到了lowvram优化,顺便把低显存显卡或想生成大尺寸图片的解决办法一并翻译了把,虽然很多教程都说过了。

题外话:NovelAI模型不仅仅是生成日漫风图像比标准SD 1.4模型强很多,其实用同样的输入做对比,在其他类型的输入上它的输出结果和标准模型比也有很明显的特色,本文的封面和题头图就是用的NovelAI模型,在输出结果平均可用性上感觉也比标准模型高,也就是出现奇怪图像的比例会低一些,而标准模型的相对来说的强项,以我目前的感觉是在画风多样性以及写实方面;感觉NovelAI模型表现风格集中在日漫和奇幻类CG上。

4G及以下显存显卡运行办法

此方法同样适用于一般用户需要生成大尺寸图片或大批量图片的情况

第一步: 用记事本编辑 webui-user.bat

第二步: 找到COMMANDLINE_ARGS= , 在后面输入参数

比如: COMMANDLINE_ARGS=–medvram

如果你是4GB显存想生成512×512 (或更大) 图片,

使用 –medvram 参数

如果你是2GB显存,

使用 –lowvram参数

如果用了上面参数遇到了Out of memory报错, 在上述参数后空一格加上 –always-batch-cond-uncond参数。(这个参数存疑,因为在AUTOMATIC1111版本github的WIKI下面,这个参数是取消 –medvram和–lowvram两个选项一个默认启动的隐性优化参数的,那个隐性优化参数可以让内存使用更少,因为我的显卡不需要用这些参数,因此没法验证)

你也可以弄个webui-user.bat副本,在副本上修改参数运行测试,保持原文件不动,修改示例如下图:

fdb5b0dd71495a809c357dfbc4353d67a76346e0-1.jpg@web-article-pic.avif-1
图上–opt-split-attention 参数也是一个减少内存使用的优化参数。

注意事项:

如果你的输出不是图片而是纯黑色或绿色,说明你的卡不支持半精度浮点数(已知16XX卡有此问题);你需要添加 –precision full –no-half 参数, 而且如果你使用.vae文件,它会占用更多显存,你还需要添加 –no-half-vae参数。(好像满足普通设置的卡生成图片尺寸设的太大批次里也是有概率出纯黑图,这个应该是资源不够造成的)

确保关闭浏览器硬件加速,如果出现out of memory报错,关闭任何可能占用显存的应用,另外如果你用了GFPGAN可能要去掉它。

 

局域网或者公网访问本地部署的Stable Diffusion

用记事本编辑webui-user.bat在COMMANDLINE_ARGS= 后面增加参数(修改示例参见上面低显存运行办法的图片),可以实现局域网或者公网访问搭建的Stable Diffusion,具体说明如下:

使用 –listen 参数,可以让让服务器监听网络连接。 这将允许本地网络上的设备访问 UI界面,如果您配置了端口转发,互联网上的计算机也可以访问。用此参数启动后,你可以按win+R键,输入CMD回车,打开命令提示符窗口,输入ipconfig命令回车,查看本机的局域网地址,比如192.168.1.XX,然后在局域网其他机器或者手机上的浏览器输入192.168.1.XX:7860(修改端口看下面说明)这个地址就能访问WebUI界面了,生成的图片照样会保存在本地部署的机器上。

使用 –share 参数,可以从公网访问你本地部署的Stable Diffusion。用这个参数启动完成后,在命令行窗口可以看到一个链接:xxx.app.gradio,其中XXX每次启动后是变化的,在浏览器用这个网址链接就可以在公网上用电脑或者手机访问你搭建的Stable Diffusion了,我是电信宽带,测试了用移动数据可以正常访问。另外这个链接是有有效期的,好像是72小时,命令行窗口有提示。

使用 –port xxxx 参数,让服务监听指定端口, xxxx 是你期望的端口。记住所有小于1024的端口都需要root/admin权限,因此建议使用大于1024的端口,默认端口为7860。

使用 –share –gradio-auth 用户名:密码  参数可以添加共享认证功能,可选的,你可以在命令上分别添加多组用户名和密码(用户:密码1, 用户2:密码2),命令里的符号记得用英文符号。

作者:等待floater https://www.bilibili.com/read/cv19123868/ 出处:bilibili