Repository: koishijs/novelai-bot
File: src/config.ts (TypeScript)

Code before:
        }),
        allowAnlas: Schema.union([
          Schema.const(true).description('允许'),
          Schema.const(false).description('禁止'),
          Schema.natural().description('权限等级').default(1),
        ]).default(true).description('是否允许使用点数。禁用后部分功能 (图片增强和手动设置某些参数) 将无法使用。'),
      }),
    ]),
    Schema.object({
      type: Schema.const('naifu'),
      token: Schema.string().description('授权令牌。').role('secret'),
      endpoint: Schema.string().description('API 服务器地址。').required(),
      headers: Schema.dict(String).description('要附加的额外请求头。'),
    }),
    Schema.object({
      type: Schema.const('sd-webui'),
      endpoint: Schema.string().description('API 服务器地址。').required(),
      headers: Schema.dict(String).description('要附加的额外请求头。'),
    }),
  ]),

  Schema.union([
    Schema.object({
      type: Schema.const('sd-webui'),
      sampler: sampler.createSchema(sampler.sd),
      upscaler: Schema.union(sdUpscalers.map((up) => Schema.const(up))).description('默认的放大算法。').default('Lanczos'),
    }).description('参数设置'),
    Schema.object({
      type: Schema.const('naifu'),
      sampler: sampler.createSchema(sampler.nai),
    }).description('参数设置'),
    Schema.object({
      model: Schema.union(models).description('默认的生成模型。').default('nai'),
      sampler: sampler.createSchema(sampler.nai),
    }).description('参数设置'),
  ] as const),

  Schema.object({
    orient: Schema.union(orients).description('默认的图片方向。').default('portrait'),
    maxSteps: Schema.natural().description('允许的最大迭代步数。').default(0),
    maxResolution: Schema.natural().description('生成图片的最大尺寸。').default(0),
  }),

  PromptConfig,

  Schema.object({
    output: Schema.union([
      Schema.const('minimal').description('只发送图片'),
      Schema.const('default').description('发送图片和关键信息'),
      Schema.const('verbose').description('发送全部信息'),
    ]).description('输出方式。').default('default'),

Review comment (suggestion):
```suggestion
      upscaler: Schema.union(upscalers).description('默认的放大算法。').default('Lanczos'),
```

Array of primitives will be cast into const.

Code after:
        }),
        allowAnlas: Schema.union([
          Schema.const(true).description('允许'),
          Schema.const(false).description('禁止'),
          Schema.natural().description('权限等级').default(1),
        ]).default(true).description('是否允许使用点数。禁用后部分功能 (图片增强和手动设置某些参数) 将无法使用。'),
      }),
    ]),
    Schema.object({
      type: Schema.const('naifu'),
      token: Schema.string().description('授权令牌。').role('secret'),
      endpoint: Schema.string().description('API 服务器地址。').required(),
      headers: Schema.dict(String).description('要附加的额外请求头。'),
    }),
    Schema.object({
      type: Schema.const('sd-webui'),
      endpoint: Schema.string().description('API 服务器地址。').required(),
      headers: Schema.dict(String).description('要附加的额外请求头。'),
    }),
  ]),

  Schema.union([
    Schema.object({
      type: Schema.const('sd-webui'),
      sampler: sampler.createSchema(sampler.sd),
      upscaler: Schema.union(upscalers).description('默认的放大算法。').default('Lanczos'),
    }).description('参数设置'),
    Schema.object({
      type: Schema.const('naifu'),
      sampler: sampler.createSchema(sampler.nai),
    }).description('参数设置'),
    Schema.object({
      model: Schema.union(models).description('默认的生成模型。').default('nai'),
      sampler: sampler.createSchema(sampler.nai),
    }).description('参数设置'),
  ] as const),

  Schema.object({
    orient: Schema.union(orients).description('默认的图片方向。').default('portrait'),
    maxSteps: Schema.natural().description('允许的最大迭代步数。').default(0),
    maxResolution: Schema.natural().description('生成图片的最大尺寸。').default(0),
  }),

  PromptConfig,

  Schema.object({
    output: Schema.union([
      Schema.const('minimal').description('只发送图片'),
      Schema.const('default').description('发送图片和关键信息'),
      Schema.const('verbose').description('发送全部信息'),
    ]).description('输出方式。').default('default'),