novelai-bot/readme.md

199 lines
5.0 KiB
Markdown
Raw Normal View History

2022-10-05 23:12:51 +08:00
# koishi-plugin-novelai
[![npm](https://img.shields.io/npm/v/koishi-plugin-novelai?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-novelai)
2022-10-07 17:36:21 +08:00
基于 [NovelAI](https://novelai.net/) 的画图插件。已实现功能:
2022-10-07 17:11:44 +08:00
- [x] 绘制图片
- [x] 更改模型、采样器、图片尺寸
- [x] 高级请求语法
- [x] 自定义违禁词表
- [x] 发送一段时间后自动撤回
- [x] 连接到自建私服
- [ ] 图片增强功能
- [ ] img2img
得益于 Koishi 的插件化机制,只需配合其他插件即可轻松实现:
- 多平台支持 (QQ、Discord、Telegram、开黑啦等)
- 速率限制 (限制每个用户每天可以调用的次数和每次调用的间隔)
- 上下文管理 (限制在哪些群聊中哪些用户可以访问)
- 多语言支持 (为使用不同语言的用户提供对应的回复)
**所以所以快去给 [Koishi](https://github.com/koishijs/koishi) 点个 star 吧!**
2022-10-07 20:56:50 +08:00
## 快速搭建
2022-10-07 17:36:21 +08:00
给没有使用过 Koishi 的新人提供一份简单的快速搭建指南:
2022-10-08 00:23:16 +08:00
> **Warning** \
> 在此之前,你需要一个**拥有有效付费计划的 NovelAI 账号**,本插件只使用 NovelAI 提供的接口。 \
> 付费计划请自行前往 [NovelAI](https://novelai.net/) 了解。
1. 前往[这里](https://github.com/koishijs/koishi-desktop/releases)下载 Koishi 桌面版
2. 启动桌面版,你将会看到一个控制台界面
3. 点击左侧的「插件市场」搜索「novelai」并点击「安装」
4. 点击左侧的「插件配置」选择「novelai」插件填写你的[授权令牌](#token),并点击右上角的「启用」按钮
5. 现在你已经可以在「沙盒」中使用画图功能了!
2022-10-07 17:36:21 +08:00
如果想进一步在 QQ 中使用,可继续进行下列操作:
1. 准备一个 QQ 号 (等级不要过低,否则可能被风控)
2022-10-07 23:10:37 +08:00
2. 点击左侧的「插件配置」选择「onebot」插件完成以下配置
- 在「selfId」填写你的 QQ 号
- 在「password」填写你的密码
- 在「protocol」选择 `ws-reverse`
- 开启「gocqhttp.enable」选项
3. 点击右上角的「启用」按钮
4. 现在你可以在 QQ 上中使用画图功能了!
2022-10-07 17:36:21 +08:00
使用示例:
| ![example-0](./public/example-0.jpg) | ![example-1](./public/example-1.jpg) |
|:-:|:-:|
2022-10-07 00:48:30 +08:00
## 使用方法
### 绘制图片
输入「约稿」+ 关键词进行图片绘制。关键词需要为英文,多个关键词之间用逗号分隔。例如:
```
约稿 koishi
```
2022-10-07 00:54:05 +08:00
### 切换生成模型
2022-10-07 00:48:30 +08:00
2022-10-07 00:54:05 +08:00
可以用 `-m``--model` 切换生成模型,可选值包括:
2022-10-07 00:48:30 +08:00
2022-10-07 00:54:05 +08:00
- `safe`:较安全的图片
- `nai`:自由度较高的图片 (默认)
- `furry`:福瑞控特攻
2022-10-07 00:48:30 +08:00
```
2022-10-07 00:54:05 +08:00
约稿 -m furry koishi
2022-10-07 00:48:30 +08:00
```
2022-10-07 00:54:05 +08:00
### 更改图片方向
2022-10-07 00:48:30 +08:00
2022-10-07 00:54:05 +08:00
可以用 `-o``--orient` 更改图片方向,可选值包括:
2022-10-07 00:48:30 +08:00
2022-10-07 00:54:05 +08:00
- `portrait`768×512 (默认)
- `square`640×640
- `landscape`512×768
2022-10-07 00:48:30 +08:00
```
2022-10-07 00:54:05 +08:00
约稿 -o landscape koishi
2022-10-07 00:48:30 +08:00
```
### 设置采样器
可以用 `-s``--sampler` 设置采样器,可选值包括:
2022-10-07 00:54:05 +08:00
- `k_euler_ancestral` (默认)
2022-10-07 00:48:30 +08:00
- `k_euler`
- `k_lms`
- `plms`
- `ddim`
一般推荐使用 `k_euler_ancestral`,具体有啥区别我也不知道 (欢迎在 issue 中讨论)。
### 调整影响因子
使用半角方括号 `[]` 包裹关键词以弱化该关键词的影响,使用半角花括号 `{}` 包裹关键词以强化该关键词的影响。例如:
```
2022-10-07 17:11:44 +08:00
约稿 [tears], {spread legs}
2022-10-07 00:48:30 +08:00
```
### 要素混合
使用 `|` 分隔多个关键词以混合多个要素。例如:
```
约稿 cat | frog
```
你将得到一只缝合怪 (字面意义上)。
2022-10-07 00:54:05 +08:00
## 配置项
### token
- 类型:`string`
授权令牌 (必填)。获取方式如下:
1. 在网页中登录你的 NovelAI 账号
2. 打开控制台 (F12),并切换到控制台 (Console) 标签页
3. 输入下面的代码并按下回车运行
```js
console.log(JSON.parse(localStorage.session).auth_token)
```
4. 输出的字符串就是你的授权令牌
### model
- 类型:`'safe' | 'nai' | 'furry'`
- 默认值:`'nai'`
默认的生成模型。
### orient
- 类型:`'portrait' | 'square' | 'landscape'`
- 默认值:`'portrait'`
默认的图片方向。
### sampler
- 类型:`'k_euler_ancestral' | 'k_euler' | 'k_lms' | 'plms' | 'ddim'`
- 默认值:`'k_euler_ancestral'`
2022-10-07 14:56:20 +08:00
默认的采样器。
### anatomy
- 类型:`boolean`
- 默认值:`true`
默认情况下是否过滤不良构图。
### baseTags
- 类型: `string`
- 默认值: `` (空字符串)
默认的附加标签。可以自定义一些常用的标签,例如 `best quality`, `masterpiece` 等。
2022-10-07 14:56:20 +08:00
### forbidden
- 类型:`string`
- 默认值:`''`
违禁词列表。含有违禁词的请求将被拒绝。
2022-10-07 17:09:15 +08:00
### endpoint
- 类型:`string`
2022-10-07 20:56:50 +08:00
- 默认值:`'https://api.novelai.net'`
2022-10-07 17:09:15 +08:00
API 服务器地址。如果你通过泄露的模型搭建了私服,可以将此项设置为你的服务器地址。
2022-10-07 00:54:05 +08:00
### requestTimeout
- 类型:`number`
- 默认值:`30000`
当请求超过这个时间时会中止并提示超时。
### recallTimeout
- 类型:`number`
- 默认值:`0`
图片发送后自动撤回的时间 (设置为 `0` 禁用此功能)。