首页/NovelAI原版部署教程(ai作画)

NovelAI原版部署教程(ai作画)

doullse 2022-10-11 628 10/11

我也不知道从什么奇怪的地方找到的这个资源。我又想保存一下。

以下是windows部署教程

最近novelai的模型被曝了出来,所以快自己搭建一个免费的色图生成器

在colab上运行

HTTPS://COLAB.RESEARCH.GOOGLE.COM/DRIVE/1GK-R0LX0T_PK3KETVCMDS4JS8VXZSAKM?USP=SHARING

首先打开colab的GPU支持

然后鼠标指到每个代码段前面,点击运行即可

在本地运行

环境

首先确保你有一张10系及以上的Nvidia显卡,如果你是AMD的显卡,可能需要在linux下进行操作

16G内存

需要磁盘空间 15G 左右(大概

16系显卡有点特殊,请注意下面教程中的说明

下面的教程使用的是windows

资源

模型资源

magnet:?xt=urn:btih:5bde442da86265b670a3e5ea3163afad2c6f8ecc

只需要下载一个模型即可
模型在 stableckpt 目录下

能用到的模型有两个:
animefull-final-pruned:4G小模型(如果你的显存小于等于4G, 下这个)
animefull-latest:7G大模型(如果显存大于等于6G, 用这个, 顺便把小模型的config.yaml也下载下来,有用)

模型文件夹里有两个文件(都要下载):
config.yaml:模型的配置文件
model.ckpt:模型

大模型的效果比较好

CUDA

https://developer.nvidia.com/cuda-downloads下载后安装

PYTHON 3.10

https://www.python.org/downloads/release/python-3107

翻到页面最下面的文件列表,一般用最后一个

安装时起始页面有两个勾都勾上

GIT

https://git-scm.com/

WEBUI

https://github.com/AUTOMATIC1111/stable-diffusion-webui

使用 git clone 下载,或直接网页下载zip包 (推荐用 git clone 下载,方便后续更新)之后每次运行前都可以拉去一下更新 git pull

准备

上述资源准备好后

1. 放置模型文件 MODEL.CKPT

来到 stable-diffusion-webui 项目目录中(后面的操作如果没有特殊说明都在这个项目中完成)
把模型文件 model.ckpt 放到 models\Stable-diffusion 目录中 (看清楚是models目录, 不是modules目录)

2. 初始化运行

!!! 如果你的显卡是16系显卡,请进行下面的操作 !!!

在项目根目录找到 webui-user.bat 并编辑
在 set COMMANDLINE_ARGS= 后面加上 --precision full --no-half 参数
完整webui-user.bat如下

@echo off

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

call webui.bat

在项目根目录找到 webui-user.bat 运行 (! 不要使用管理员运行 !)
运行会安装必要的依赖,但没有进度条
如果你的网络顺畅那么下面那些问题应该都不会有

如果太长时间未相应或你想看进度可以手动安装依赖(但必须先运行一遍 webui-user.bat,卡住后 ctrl+c 退出)

手动安装依赖
如果手动安装失败,那就老老实实用 webui-user.bat 吧
请确保你项目根目录下有 venv 文件夹, 没有就去执行一下 webui-user.bat (不用执行完,等他安装卡住时退出即可
在根目录下运行cmd
执行命令 ./venv/Scripts/pip.exe install -r ./requirements.txt
一定要用项目环境中的pip
安装完成后再次运行 webui-user.bat

python依赖安装完成后如果出现 git clone xxx 报错,可手动安装github依赖库

手动安装github依赖库
主要是下面这个github库比较大
https://github.com/CompVis/taming-transformers

在项目根目录找到 repositories 文件夹,没有就自己建一个
把上面那个库放到这里,git clone或直接下载zip解压(zip解压后记得把目录名中的master删掉
安装完成后再次运行 webui-user.bat

python依赖与github库依赖都下载完后还会下载1个多G的数据

如果一切正常最后会看到一个URL: http://127.0.0.1:7860
先不要着急去体验,现在模型还发挥不出他应有的实力,先 ctrl+c中止运行,然后继续下面的步骤

3. 放置模型配置文件 CONFIG.YAML

把模型对应的 config.yaml 放置到 repositories\stable-diffusion\configs\stable-diffusion 目录下
替换原来的 v1-inference.yaml (把你的配置改名成这个
如果你没有 repositories 这个目录,那么就说明你上面项目初始化没做完

!!! 注意 !!!
如果你是小模型就直接替换
如果你用的大模型且你的显存小于等于6G,请使用小模型的config (否则可能会爆显存
如果你的显存大于等于8G可以尝试使用大模型的config (如果不行的话就换小模型的config

再去根目录运行 webui-user.bat 启动,然后就可以愉快的玩耍了

4. 使用

页面中的参数大部分默认就行,你可以调整一下输出图片高度(但要量力而行,否则可能爆显存

Prompt 输入框就是你输入tag的地方,每个tag间用逗号隔开

Negative prompt 建议使用下面这组tag,可以优化输出品质

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,bad feet

Sampling Steps 建议 20-50 即可

Width ,Height 输出图片宽高(量力而行)

Highres. fix 可以勾上(输出可能会好些

Batch count 批量输出数量

CFG Scale 7-11

Seed 种子,可以用于生成根之前类似的图片(如果你生成一张还不错的图片,但细节还不够好,可以用他的种子继续生成类似的图片)
seed在生成的图片下边那一串英文的最后一行中间

生成的图片默认保存在项目根目录下的 outputs 目录中,不用点网页上那个保存

设置里最下边有个 Ignore last layers of CLIP model 滑条可以调到 2

其他

此教程中的很多内容来自网络以及群友(感谢

https://rentry.org/voldy
官网:https://novelai.net

以下是linux部署教程

22/10/08更新,部署了一下原版网页,点击登录即可玩,显卡数量有限人多了可能会爆炸或者很慢,耐心等等,不行就f5

https://ai.nya.la/

22/10/08更新:替换失效的奶牛快传链接到onedrive

硬件需求:

一台拥有一张至少有11G 显存的NVIDIA GPU的linux系统的x86设备。

软件需求:

NVIDIA驱动(CUDA 11.6 Toolkit)

Docker 19+

nvidia-container-toolkit

准备工作:

  1. 安装docker

该命令国内访问较慢,可以查国内镜像安装

curl -fsSL https://get.docker.com | bash

2. 安装nvidia-container-toolkit

Ubuntu, Debian:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

sudo systemctl restart docker

CentOS/RHEL

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

sudo yum install -y nvidia-container-toolkit

sudo systemctl restart docker

3. 安装显卡驱动

这个略过

4. 确认显卡驱动已经安装好, nvidia-smi可以看到显卡

 

NovelAI原版部署教程(ai作画)
ai

5. 确认nvidia-container-toolkit安装成功

docker run --help | grep -i gpus

NovelAI原版部署教程(ai作画)

6. 下载NovelAI模型相关文件

https://sanae1-my.sharepoint.cn/:u:/g/personal/kaze_sanae1_partner_onmschina_cn/Eezd5aJPk9xHmb5iVcXb768Bm5AUEHp2DM9biozM-54y9w?e=T6DaPd

7. 解压NovelAI模型相关文件

tar -zxvf novelai.tar.gz

NovelAI原版部署教程(ai作画)

8. 下载docker镜像相关文件

https://sanae1-my.sharepoint.cn/:u:/g/personal/kaze_sanae1_partner_onmschina_cn/ESe-AjlXEhNDvnwOyZtBjKkBnLa69b8qTYi2dGzJmKq5IA?e=EQol8q

9. 导入Docker镜像

docker load -i novelaidocker.tar

NovelAI原版部署教程(ai作画)

10. 运行Docker

(如果希望包含nsfw内容,则把-e MODEL_PATH="/root/stableckpt/animesfw-latest" 改成 -e MODEL_PATH="/root/stableckpt/animefull-latest")

解压的novelai位置替换为你实际解压NovelAI模型相关文件出来的novelai文件夹的位置,如/root/novelai

docker run --gpus all -d -p 80:80 -v 解压的NovelAI位置:/root -e DTYPE="float32" -e AMP="1" -e MODEL="stable-diffusion" -e DEV="True" -e CLIP_CONTEXTS=3  -e MODEL_PATH="/root/stableckpt/animesfw-latest" -e MODULE_PATH="/root/stableckpt/modules" -e TRANSFORMERS_CACHE="/root/transformer_cache" -e SENTRY_URL="" -e ENABLE_EMA="1" -e VAE_PATH="/root/stableckpt/animevae.pt" -e BASEDFORMER="1" -e PENULTIMATE="1" novelai:latest gunicorn main:app --workers 1 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:80

11. 查看容器状态

查询出容器ID

docker ps

NovelAI原版部署教程(ai作画)

docker logs [Container ID]

NovelAI原版部署教程(ai作画)

出现“Application startup complete.”即代表程序已经就绪

docker attach [Container ID]

attach进入docker可以看到当前任务实时的生成进度

NovelAI原版部署教程(ai作画)

11. 请求API

参考代码,具体参照leak的前端后端项目,以及其中的sd-private\hydra-node-http\main.py

prompt中masterpiece, best quality, 开头对应原版web Add Quality Tags选项,不建议删除,后面直接跟自己prompt即可

uc部分对应web Undesired Content,建议保留默认

sampler是采样方法,可选plms/ddim/k_euler/k_euler_ancestral/k_heun/k_dpm_2/k_dpm_2_ancestral/k_lms

seed是种子,自己随机一个整数数字,不然一直会出一样的结果。

n_samples代表要生成几张图片

import requests

import json

import base64

import random

endpoint = "http://10.10.12.67/generate"

data = {"prompt": "masterpiece, best quality, brown red hair,blue eyes,twin tails,holding cat", "seed": random.randint(0, 2**32)

,"n_samples":1,"sampler":"ddim","width":512,"height":768,"scale":11,"steps":28,"uc":"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"}

req = requests.post(endpoint, json=data).json()

output = req["output"]

for x in output:

  img = base64.b64decode(x)

  with open("output-" + str(output.index(x)) + ".png", "wb") as f:

    f.write(img)

生成的效果图示例

NovelAI原版部署教程(ai作画)
1girl,apron,arm up,black dress,blue eyes,dress,frilled dress,hand up,indoors,long hair,looking at viewer,maid,maid apron,maid headdress,mop,petals,puffy short sleeves,puffy sleeves,short sleeves,silver hair,smile,solo,very long hair,white apron,wrist cuffs
- THE END -

doullse

10月11日17:48

最后修改:2022年10月11日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论