Bundle
dsh-plugin-novelai
NovelAI Diffusion V4.5 Full image generation for DeepSeek Harness: text-to-image, Danbooru tag lookup, and image-to-prompt reverse engineering.
- Source
- ysysz0343-web
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
# dsh-plugin-novelai > **像聊天一样生图,把想象直接说成画面。** 告别枯燥的提示词工程——描述你脑海里的画面,AI 自动按专业规则写好 NovelAI V4.5 提示词并出图,不用再手搓 Danbooru tags。 NovelAI Diffusion V4.5 Full 生图插件 for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)。 在对话里描述你想要的图片,AI 会按内置的 NovelAI 提示词设计规则(参考并改进了 ChatChatBar 的 `NOVELAI_IMAGE_PROMPT_SYSTEM`)写好提示词,然后调用 `nai_generate_image` 工具真正生成。生成的 PNG 保存到本地文件,工具结果只含文本,纯文本模型适配器不会收到图片内容块。 ## 安装 ```sh # 从 GitHub(生产推荐) dsh plugin --profile web add github:ysysz0343-web/dsh-plugin-novelai # 从 npm dsh plugin --profile web add @scope/dsh-plugin-novelai # 本地开发:用 file: 前缀(复制安装)。裸路径会被 pnpm 当作 link: 软链, # 软链跟随真实路径,导致 @deepseek-ai/* peer 依赖无法通过 profiles/node_modules 回退解析。 dsh plugin --profile web add file:./path/to/dsh-plugin-novelai ``` > 仓库需公开;`dsh-plugin` topic 是第三方插件目录(deepseek-harness-plugin.com)收录的要求,非官方硬性要求。 > 本插件是纯 JavaScript(无 TypeScript 构建步骤),git 安装直接可用、**无需任何构建授权**(不同于需要 `prepare` 脚本的 TypeScript 插件)。 > 安装后部分版本需要重启 Harness(`dsh web`)才生效。 验证: ```sh dsh plugins list ``` ## 配置 NovelAI Token 三种方式(优先级从高到低,任选其一): 1. **直接在对话里把 API 发给 AI** —— 最简单:把 `pst-xxxx` 粘贴到对话里,AI 生成时会自动带上; 2. 在 `cordis.patch.yml` 的 `config.token` 里配置(一劳永逸); 3. 配置环境变量 `NOVELAI_API_KEY`,或写入 `$DSH_HOME/.credentials.yaml`(DSH 原生密钥库,推荐,比 env 更持久安全)。 ## 使用方法 配置好 Token 后,直接在对话里说,例如: > 帮我生成一张 nai4.5f 图:雨夜里银发少女撑着红伞站在霓虹窄巷,湿漉漉的裙摆,侧后方视角 AI 会设计好 `base_caption` / `characters` / `size_preset`,调用 `nai_generate_image`,图片保存到会话工作区的 `nai-images` 目录(默认),工具结果里会返回文件路径。 设计提示词时,AI 会先用 `nai_tag_suggest` 查询 Danbooru 官方 tag(角色/动作/体位/镜头/环境等,支持中文/英文/拼音)来规范化提示词,避免凭印象拼写错 tag。 ### 工具 | 工具 | 说明 | | --- | --- | | `nai_generate_image` | 按设计规则生成 NovelAI V4.5 Full 图片 | | `nai_tag_suggest` | 查询 Danbooru tag 建议(中文/英文/拼音),用于规范化提示词 | | `nai_reverse_prompt` | 图片提示词反推:读本地图片,用识图 LLM 描述并按 NAI 规范反推出提示词 | ### 图片提示词反推(需配置识图 LLM) `nai_reverse_prompt` 读取一张本地图片,调用你配置的**识图 LLM**(任意 OpenAI 兼容的多模态端点)描述画面并按 NAI 规范反推出提示词。在 `settings.yaml` 里填(热加载,改完即生效): ```yaml novelai-image: visionBaseUrl: http://127.0.0.1:8080/v1 # base URL(本地 llama.cpp 或在线服务) visionApiKey: "" # API Key(本地可留空) visionModel: Qwen3.8-27B-Uncensored-noMTP-Q4_K_M.gguf # 模型名 ``` > 任意 OpenAI 兼容端点都行:本地 llama.cpp、SiliconFlow、gptsapi、OpenAI 等。 用法:`反推 E:\path\to\image.png 的提示词`,得到提示词后可再让 AI 用它生成同风格图。 ### `nai_generate_image` 参数 | 参数 | 类型 | 说明 | | --- | --- | --- | | `base_caption` | string (必填) | 整体画面 caption,以人数开头(1girl / 2girls / 1boy, 1girl) | | `characters` | array | 每个角色的 caption(外观标签,最多 6 个),可选 `center` 坐标 | | `size_preset` | string | `PORTRAIT`=832x1216 / `SQUARE`=1024x1024 / `HORIZONTAL`=1216x832 | | `negative_prompt` | string | 负向提示词,留空用内置默认 | | `seed` | number | 随机种子,留空随机 | | `batch_size` | number | 生成张数 1-4,默认 1 | | `token` | string | 可选,临时 Token 覆盖 | | `proxy` | string | 可选,HTTP 代理(默认 `http://127.0.0.1:2080`;`none`/空 = 直连) | ## 实现说明 - 端点 `POST https://image.novelai.net/ai/generate-image-stream`,模型 `nai-diffusion-4-5-full`,请求体逐字段对齐 ChatChatBar 项目的 V4 实现(`params_version:3`、28 steps、scale 8、`k_euler_ancestral`、Karras、`v4_prompt`/`v4_negative_prompt` 等)。 - 响应是 MessagePack 二进制流(4 字节大端长度前缀帧),插件内置纯 JS 解码器解析 `intermediate` / `final` / `error`。 - 请求走 Windows 自带 `curl.exe`(`-x` 支持代理),因为 DSH 的 `web.fetch` 只支持 GET 文本。 - Token 不落盘;插件进程内不持久化任何凭据。 ## 安全提示 插件会调用外部 API(`image.novelai.net`)并使用你的 NovelAI Token。安装来自 GitHub 的插件前请先检查源码。 ## License MIT
Install
dsh plugin --profile web add github:ysysz0343-web/dsh-plugin-novelai
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-plugin-novelai from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.