feat: support options.steps and options.scale

This commit is contained in:
Shigma 2022-10-09 04:37:06 +08:00
parent b4fc4c2fb9
commit e223065737
No known key found for this signature in database
GPG Key ID: 21C89B0B92907E14
4 changed files with 48 additions and 12 deletions

View File

@ -1,7 +1,7 @@
{
"name": "koishi-plugin-novelai",
"description": "Generate images by NovelAI",
"version": "1.4.2",
"version": "1.5.2",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
"files": [

View File

@ -51,9 +51,7 @@
| ![example-0](./public/example-0.jpg) | ![example-1](./public/example-1.jpg) |
|:-:|:-:|
## 使用方法
### 绘制图片
## 基本用法
输入「约稿」+ 关键词进行图片绘制。关键词需要为英文,多个关键词之间用逗号分隔。例如:
@ -61,6 +59,8 @@
约稿 koishi
```
## 高级功能
### 切换生成模型
可以用 `-m``--model` 切换生成模型,可选值包括:
@ -129,10 +129,36 @@
这时会得到一个更像猫的猫狗。
### Seed 种子
### 随机种子
AI会使用种子来生成噪音然后进一步生成你需要的图片每次随机生成时都会有一个唯一的种子。使用相同的种子可以让AI尝试使用相同的路数来生成图片。
**注意**!这并不意味着使用相同的种子会输出相同的图片,只是会有更多的相似之处。
AI 会使用种子来生成噪音然后进一步生成你需要的图片,每次随机生成时都会有一个唯一的种子。使用 `-x``--seed` 并传入相同的种子可以让 AI 尝试使用相同的路数来生成图片。
```
约稿 -x 1234567890 koishi
```
> **Warning** \
> 注意:这并不意味着使用相同的种子会输出相同的图片,只是会有更多的相似之处。
### 迭代步数
更多的迭代步数**可能**会有更好的生成效果,但是一定会导致生成时间变长。
默认情况下的迭代步数为 28 (传入图片时为 50)。可以使用 `-t``--steps` 手动控制迭代步数。
```
约稿 -t 50 koishi
```
### 对输入的服从度
服从度较低时 AI 有较大的自由发挥空间,服从度较高时 AI 则更倾向于遵守你的输入。
默认情况下的服从度为 12 (传入图片时为 11)。可以使用 `-c``--scale` 手动控制迭代步数。
```
约稿 -c 10 koishi
```
## 配置项

View File

@ -92,14 +92,18 @@ export function apply(ctx: Context, config: Config) {
forbidden = config.forbidden.trim().toLowerCase().split(/\W+/g).filter(Boolean)
}, { immediate: true })
const hidden = () => !config.allowAnlas
const cmd = ctx.command('novelai <prompts:text>')
.shortcut('画画', { fuzzy: true })
.shortcut('约稿', { fuzzy: true })
.option('enhance', '-e')
.option('enhance', '-e', { hidden })
.option('model', '-m <model>', { type: models })
.option('orient', '-o <orient>', { type: orients })
.option('sampler', '-s <sampler>', { type: samplers })
.option('seed', '-x <seed:number>')
.option('steps', '-t <step:number>', { hidden })
.option('scale', '-c <scale:number>', { hidden })
.option('anatomy', '-a, --strict-anatomy', { value: true })
.option('anatomy', '-A, --loose-anatomy', { value: false })
.action(async ({ session, options }, input) => {
@ -121,6 +125,10 @@ export function apply(ctx: Context, config: Config) {
if (!input.trim() && !config.basePrompt) {
return session.text('.expect-prompt')
}
} else {
delete options.enhance
delete options.steps
delete options.scale
}
input = input.toLowerCase().replace(/[,]/g, ', ').replace(/\s+/g, ' ')
@ -168,8 +176,8 @@ export function apply(ctx: Context, config: Config) {
const size = getImageSize(image)
Object.assign(parameters, {
image: Buffer.from(image).toString('base64'),
scale: 11,
steps: 50,
scale: options.scale ?? 11,
steps: options.steps ?? 50,
})
if (options.enhance) {
Object.assign(parameters, {
@ -181,8 +189,8 @@ export function apply(ctx: Context, config: Config) {
}
} else {
Object.assign(parameters, {
scale: 12,
steps: 28,
scale: options.scale ?? 12,
steps: options.steps ?? 28,
})
}

View File

@ -14,6 +14,8 @@ commands:
anatomy.true: 过滤不合理构图
anatomy.false: 允许不合理构图
seed: 设置随机种子
steps: 设置迭代步数
scale: 设置对输入的服从度
messages:
expect-prompt: 请输入标签。