Skip to content

feat(store): NovelAIGen 升级至 v2.1.0 — 八命令全端点网关与中转站支持 - #7

Open
infinite-vector wants to merge 1 commit into
lioensky:mainfrom
infinite-vector:feat/novelaigen-v2-gateway
Open

feat(store): NovelAIGen 升级至 v2.1.0 — 八命令全端点网关与中转站支持#7
infinite-vector wants to merge 1 commit into
lioensky:mainfrom
infinite-vector:feat/novelaigen-v2-gateway

Conversation

@infinite-vector

@infinite-vector infinite-vector commented Aug 29, 2026

Copy link
Copy Markdown

概述

将插件商店中的 NovelAIGen 从 v1.0.0 升级至 v2.1.0。原版仅支持文生图单一命令;
本版覆盖 NovelAI 的全部六个端点共八条命令,并新增多渠道容错与第三方中转站支持。

原作者署名 VCP-Assistant 完整保留,本次重构以追加形式记入 author 字段。

元数据变化

字段 原值 新值
version 1.0.0 2.1.0
displayName NovelAI 图片生成器 NovelAI 图像生成器 (全能力网关)
author VCP-Assistant VCP-Assistant; infinite-vector

新增能力

命令覆盖:文生图、图生图、局部重绘(infill)、图片放大、Director 工具
(emotion / colorize / lineart / sketch / declutter / bg-removal)、Vibe 编码、
标签建议、订阅查询。

多角色提示词:支持 V4 起引入的 v4_prompt 三层结构,最多 6 个角色,
每个角色可带独立的负面提示词与画面坐标。支持 source# / target# / mutual#
角色交互语法。

模型三维解析:按版本 × 分级 × 用途解析模型标识符。inpaint 会自动切换到对应的
-inpainting checkpoint(这是独立训练的权重,不是运行时开关);无对应变体时沿
降级链选择,并在返回结果中显式告知实际使用的模型。

多渠道与能力位:渠道语法为 URL|KEY|MODELS|CAPS|PATH_PREFIX。按能力位过滤后
洗牌遍历,单渠道失败自动切换下一个,全部失败时聚合报错并逐行列出原因(含 URL 与
模型名,不含密钥)。429/500/502/503/504 按指数退避重试。

中转站支持:部分第三方站点在 NovelAI 原生路由前加路径前缀(如 /native)。
新增 NOVELAI_PATH_PREFIX 配置项与渠道语法第五段。前缀留空时拼接结果与不带前缀
完全相同,官方直连用户无需改动配置。subscription 命令按渠道是否有前缀分流——
中转站通常与图像 API 同域,官方账户 API 在独立域名。

响应解析:ZIP、JSON、单图三种形态分流处理。JSON 分支包含四级图片提取
(images[] / data[] / 结构化 content[] / 全文 data URI 扫描),适配不同站点的
响应封装差异。MessagePack 响应会给出明确提示而非输出乱码。

安全:调试日志脱敏(base64 替换为长度标记,token/key/authorization 替换为
占位符);图片落盘前做路径逃逸校验;错误聚合信息不含密钥。

已实测

以下能力经真实 API 调用验证(渠道为 nai.rinko.ai,走 /native 前缀):

  • 文生图:v3 / v4 / v4.5 / v5 四代模型均出图成功
  • 图生图:strength 0.65 下姿态保真与风格注入正常
  • 多角色坐标:2 角色与 3 角色场景,坐标分离生效,角色特征无交叉污染
  • 角色交互语法:source# / target# 标注下攻防姿态正确呈现
  • 分辨率:512x768、768x512、832x1216、1216x832、1536x1024 均通过
  • 路径前缀拼接、模型三维解析、ZIP 解包、图片落盘与 URL 构造
  • 订阅查询(含中转站同域前缀分流)
  • 错误路径:400 / 402 / 504 的语义化提示与多渠道聚合报错格式

未验证:官方直连路径未做真实调用。前缀机制设计为空前缀时与原拼接方式
逐字等价(url + "" + endpoint),但仅有源码层面的等价性论证。
inpaint、Vibe 编码、upscale、suggest_tags 四条命令亦未实测。

兼容性

  • 全部新增配置项默认值均为空或 false,不配置时行为与官方直连一致
  • 渠道语法第五段可省略,四段格式仍然有效
  • V5 别名从原本的报错状态改为可用(标识符来源为中转站 /v1/models 实证,
    官方直连是否接受同一 ID 未验证;如遇拒绝可用 MODEL_ALIASES 覆盖)
  • inpainting 内置映射表出于保守未包含 nai-diffusion-4-5-full 的变体——
    该变体仅在中转站模型列表中出现,若内置会让官方用户从"降级可用"退化为
    "直接报错"。需要时通过 INPAINT_MODELS 配置添加

依赖

axios 1.7.9 / uuid 11.0.5 / yauzl 3.2.0 / https-proxy-agent 7.0.6 /
http-proxy-agent 7.0.2。版本全部写死,无范围符。

检查

  • node --check NovelAIGen.js 通过
  • plugin-manifest.json / package.json JSON 解析通过
  • ZIP 内容已确认不含 config.env
  • 四处配置对齐(源码默认值 / configSchema / config.env.example / README)

主要拿着某中转站小小测试了一番,官方的各种没有测试。而且novelai还挺日新月异的,难免过时或小错谬

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant