Skip to content

Releases: savinglighting/dsh-sd-bridge-guard

v0.7.0 — 设置面板配置入口 + 环境预检 + 资源清单化拉取

Choose a tag to compare

@savinglighting savinglighting released this 13 Oct 04:10

0.7.0(设置入口 + 环境预检 + 资源清单化拉取)

对着评论区反馈做的四件事:设置里找不到配置项、装机环境缺东西、模型拉取对象过时、缺常见 LoRA。

  • 设置面板配置入口(修「设置里没有这个插件设置内容」):sd-bridge.js 新增 registerSettings——运行时动态 import('@deepseek-ai/schemastery') 构造 schema(零静态依赖,schemastery 缺失则跳过注册、工具照常可用),settings.register('sd-bridge', schema) 注册到 设置 → 插件 → sd-bridge,DEFAULTS 全部 13 个字段可编辑(每个带中文说明)。scope.watch 实时并回 cfg,工具调用现读 cfg,改完下一个调用即生效、无需重启。优先级:DEFAULTS < 设置面板 < cordis.patch.yml 显式覆盖(patch 层指定的键被冻结,面板不覆盖)。
  • 环境预检段 Test-Prereqs(缺啥补啥,先于一切下载):磁盘 ≥15GB 提前拦 → 镜像探活(失败提示换 -Mirror "")→ git(缺则自举 MinGit)→ Python 3.10(占位符则静默装 3.10.6)→ VC++ 2015-2022 x64 运行库(查注册表 VC\Runtimes\x64,缺则下官方 vc_redist.x64.exe 静默装;torch/A1111 硬依赖,缺了首轮启动报错极迷惑)。每项失败只报一条错 + 一行提示即 exit 1,最后打一张「✓ 就绪清单」。-NoPrereq / -SkipVC / -SkipDiskCheck 可分别跳过。
  • 模型/VAE 拉取对象换成本机实测组合(清单化):-Models 逗号多选(awpainting 默认 / revanimated / anythingv5 / majicmix / darksushi),-Vaes(mse 默认 / animevae)。全部 5 个 checkpoint + 2 个 VAE 的 sha256 已与本机出图正常的文件逐字节比对(HF lfs oid = sha256:AWPainting 3d1b3c42…、ReVAnimated v1.1 d725be5d…、anything-v5 7f96a1a9…、majicMIX v7 7c819b6d…、dark sushi brighterPruned 099e0754…、animevae f921fb3f…)。清单键写错会列出全部可用键。
  • 常见 LoRA/Embedding 拉取:-Loras 默认 add_detail,easynegative,badhandv4(细节增强 LoRA 38MB + 负面嵌入 24KB + 手部修复嵌入 18KB,均 HF 镜像直链 + sha256 校验);LoRA 落 models\Lora、Embedding 落 models\embeddings(A1111 各自扫描目录)。-SkipLora 跳过、none 清空。你本地那批国内站 LoRA(国风山水/赛博朋克/电商摄影等)不进清单——直链不稳,README 写了手动放置说明。
  • -Upgrade 升级复验:已存在文件做 sha 复验,不符就重拉;清单条目带 Supersedes(如 ReVAnimated v10 → v1.1)时旧版在、新版缺就补拉新版(旧版保留)。
  • 资源清单汇总:跑完打印「[类型] 文件 — ✓ 已下载 / ✓ 已存在 / ✗ 原因」一张表,失败项提示重跑自动续传。
  • 文档去旧插件化:README/cordis.patch.yml/源码头注释删除「替换原 dsh-sd-bridge」「与原插件同 id」等声明(原版从未发布);package.json 仓库地址从 YOUR-USER 占位改为 savinglighting。
  • 踩坑新增:编辑 .ps1 会丢 UTF-8 BOM(PS5.1 无 BOM 按 GBK 读 → 语法错),改完必须补回 EF BB BF——本次实测踩中,靠 [Parser]::ParseFile 检查抓出。
  • 踩坑新增:符号链接插件裸 import 依赖会落空——插件以 profile node_modules 符号链接指向工作区时,Node 按 realpath 解析依赖,import('@deepseek-ai/schemastery') 必然失败 → 设置注册被静默跳过(「注册了但面板还是没有」的隐藏根因)。tryLoadConfigSchema 增加途径②:扫 ~/.dsh/profiles/*/node_modules/@deepseek-ai/schemastery/lib/index.mjs 按绝对路径导入。
  • 新增 test-settings.mjs:schema 注册(ns = sd-bridge、13 字段全在 dict 上)+ 面板改动实时并回 cfg + patch 显式键不被面板覆盖 + 越界钳制(denoising 0-1、idleStop ≥0、startupTimeout ≥30s)。
  • 新增 test-install-catalog.mjs:BOM 断言 + 三张清单(键/sha256/HF 源,含 AWPainting 与 animevae 的已验证哈希)+ 预检五项与单条退出 + -Models/-Loras 默认值 + 临时目录干跑(预检打印、记录无 BOM)+ 非法键 exit 1 并列出可用键。
  • 发布整理:README 与源码头注释的工具计数从「五件套」更正为「六件套」并补上 sd_inpaint(0.6.0 新增蒙版重绘后文案未同步);README 示例图与 LICENSE 徽章改用绝对地址,在 npm 包页面同样能渲染;package.json 的 files 补 CHANGELOG.md,新增 scripts(npm test = 四条不出图检查,npm run acceptance = 真实出图验收);sd-direct.ps1 / install-sd.ps1 行尾统一为 CRLF(与 .gitattributes 的 *.ps1 text eol=crlf 声明一致),UTF-8 BOM 保持不变、[Parser]::ParseFile 复核 SYNTAX OK。