mirror of
https://github.com/koishijs/novelai-bot
synced 2025-01-08 11:17:32 +08:00
feat: support options.steps
and options.scale
This commit is contained in:
parent
b4fc4c2fb9
commit
e223065737
@ -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": [
|
||||
|
38
readme.md
38
readme.md
@ -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
|
||||
```
|
||||
|
||||
## 配置项
|
||||
|
||||
|
18
src/index.ts
18
src/index.ts
@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,8 @@ commands:
|
||||
anatomy.true: 过滤不合理构图
|
||||
anatomy.false: 允许不合理构图
|
||||
seed: 设置随机种子
|
||||
steps: 设置迭代步数
|
||||
scale: 设置对输入的服从度
|
||||
|
||||
messages:
|
||||
expect-prompt: 请输入标签。
|
||||
|
Loading…
Reference in New Issue
Block a user